我想在过滤器结束后包含JSP页面。我有以下代码:包含来自Java EE过滤器的JSP文件
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws ServletException, IOException {
try {
chain.doFilter(request, response);
}
finally {
HttpServletRequest httpRequest = (HttpServletRequest) request;
RequestDispatcher dispatcher = httpRequest.getRequestDispatcher("/WEB-INF/logging/logAppender.jsp");
dispatcher.include(request, response); // This does not work!
dispatcher.include(request, response); // The second time it works?
}
}
很简单过滤器我认为。但是,正如你上面看到的,出于某种原因,包括第一次打电话没有做任何事情。我只是困惑和厌倦了调试。我曾尝试调用.flushBuffer(),getWriter()。flush(),各种close(),但仍然不明白。任何想法都会有帮助吗?
我将尝试创建一个死简单的Java应用程序,查看如上所述。如果没有,那么这个应用程序肯定有一些特别的东西。否则,一定还有其他事情正在进行。我想也许在这个链条的最后,响应已经发生了,所以它不起作用。 – 2011-06-08 23:23:21