我正在使用一个为我的jsp实现Filter的类。它看起来像这样:
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”就位于我的顶级目录中。如果我输入的网址如下,过滤器工作正常:
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
似乎我输入了斜杠,然后过滤器认为我希望它在子文件夹foo或boo中查找mypage.jsp,但我真的总是希望它只是在以下位置找到它:
http://www.mysite.com/mypage.jsp
我该怎么做?
谢谢
答案 0 :(得分:0)
使请求调度程序路径绝对 - 使用“/mypage.jsp”而不是“mypage.jsp”。然后从webapp上下文的根目录解析资源。