Я использую класс, который реализует Filter для моего jsp-материала. Это выглядит следующим образом:Использование фильтра для отображения определенной страницы?
public class MyFilter implements Filter
{
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
request.getRequestDispatcher("mypage.jsp").forward(request, response);
}
}
Так мишень, «mypage.jsp», просто сидит в моем каталоге верхнего уровня. Фильтр работает отлично, если я вхожу URLs как:
http://www.mysite.com/foo
http://www.mysite.com/boo
но если я вхожу слэш, я получаю 404:
http://www.mysite.com/foo/
http://www.mysite.com/boo/
HTTP ERROR: 404
/foo/mypage.jsp
RequestURI=/foo/mypage.jsp
это кажется, если я введу слэш, то фильтр думает, что я хочу, чтобы искать mypage.jsp в подкаталоге обув или бу, но я действительно всегда хочу, чтобы просто найти его по адресу:
http://www.mysite.com/mypage.jsp
, как я могу это сделать?
Спасибо
Спасибо, что сработало! Я обнаружил, что мои файлы css и другие относительные ресурсы не могут быть решены, мне пришлось обновлять их пути в mypage.jsp, чтобы также использовать переднюю косую черту перед контуром, например «csspath =/mypage.css», а не «csspath = mypage» .css ", это нормально? Спасибо! – user246114
Я рад, что он работает, но я не уверен, что это хорошая идея. Почему вы хотите разрешить пользователю вводить любой произвольный URL-адрес, который сопоставляется с корнем? – mdma
Ну, я хочу поддержать что-то вроде twitter, где www.mysite/username обрабатывается одной страницей jsp, которая просто создает для них страницу. Я не могу создать настоящую папку для каждого пользователя, поэтому подумал, что этот тип «перезаписи URL» будет работать? Спасибо – user246114