【发布时间】:2016-05-15 15:09:19
【问题描述】:
我想制作一个扩展 javax.filter 的自定义过滤器,当 404 是返回静态 html 页面的响应状态时。但它不起作用,我想知道为什么。 这是我的过滤器:
@WebFilter("/*")
public class PageNotFoundFilter implements Filter {
@Override
public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain filterChain)
throws IOException, ServletException {
HttpServletResponse httpResponse = (HttpServletResponse) response;
if (httpResponse.getStatus() == 404) {
httpResponse.sendRedirect("pages/PageNotFound.html");
}
filterChain.doFilter(request, response);
}
但是什么都没有发生,为什么?
注意:我不想使用:
<error-page>
<error-code>404</error-code>
<location>/pages/PageNotFound.html</location>
</error-page>
但过滤
【问题讨论】:
-
你能发布你的 web.xml 吗?
-
您是否调试或放置了日志语句以查看您的过滤器是否被调用?
-
我没有 web.xml
标签: java servlets filter http-status-code-404