当调度程序为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?
尝试使用带有REQUEST和FORWARD调度程序的单个
条目
例
cookie-test-filter /* REQUEST FORWARD
希望这能解决你遇到的问题。