У меня есть набор страниц JSP, и я хочу скрыть расширение.jsp (после небольшого исследования. кажется, это хорошо для SEO ).
Одно решение, с которым я столкнулся, было следующим:
mypage
/some-page.jsp
mypage
/some-page
И хотя это работает, я считаю, что мне нужно настроить это сопоставление для каждой страницы jsp на моем сайте.
Я наткнулся на другое решение, опубликованное здесь (Удобный URL-адрес):Скрытые функции JSP/Servlet
... который использует простой сервлет для пересылки запроса.В моем web.xml у меня есть следующее, и он работает нормально:
MyServletName
myservlets.PrettyUrlServlet
MyServletName
/myservlet/*
Теперь проблема в том, что я не хочу нажимать на URL-адрес :www.mydomain.com/myservlet/some -страница
Я хочу использовать URL-адрес :www.mydomain.com/some -page
Поэтому я изменил шаблон URL-адреса -на "/ *"
MyServletName
myservlets.PrettyUrlServlet
MyServletName
/*
Но это вызывает бесконечный цикл :
Exception in thread "http-bio-8080-exec-1" java.lang.StackOverflowError
at org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:219)
at org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:228)
.
.
at org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:228)
at org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:228)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
at myservlets.PrettyUrlServlet.doGet(PrettyUrlServlet.java:22)
, который Я не знаю, как исправить. Любые идеи?