当调度程序为FORWARD以及调度程序为REQUEST时,如何应用Filter?

我有一个简单的filter:

public class TestFilter implements Filter { public void init(FilterConfig filterConfig) throws ServletException { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("before"); chain.doFilter(request, response); System.out.println("after"); } public void destroy() { } } 

它是web.xml中的第一个filter,它具有以下两个映射之一:

  cookie-test-filter /* REQUEST  

要么

  cookie-test-filter /* FORWARD  

在这两种情况下,我都看到了输出:

 before before after after 

(我也尝试过INCLUDE作为调度程序,以确保一切正常 – INCLUDE没有输出)。

这个filter之后有第三方filter和servlet,我想知道:他们应该怎么做才能在两种情况下应用我的filter?

尝试使用带有REQUESTFORWARD调度程序的单个条目

  cookie-test-filter /* REQUEST FORWARD  

希望这能解决你遇到的问题。