Использование фильтра для обслуживания определенной страницы? - PullRequest
0 голосов
/ 24 мая 2010

Я использую класс, который реализует фильтр для моего 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" просто находится в моем каталоге верхнего уровня. Фильтр работает нормально, если я ввожу URL, например:

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 в подпапке foo или boo, но я действительно всегда хочу, чтобы он просто находился по адресу:

http://www.mysite.com/mypage.jsp

как я могу это сделать?

Спасибо

1 Ответ

0 голосов
/ 24 мая 2010

Сделайте путь диспетчера запросов абсолютным - используйте «/mypage.jsp» вместо «mypage.jsp». Затем ресурс разрешается из корня контекста веб-приложения.

...