Filter过滤器链(多个过滤器)

当有多个过滤器的时候,执行顺序很重要,在注解开发中,其执行顺序跟其类名的字符串有关,小的先执行,这里演示,一个是AFilter另一个是BFilter,如果是web.xml配置,那就是配置在上面的先执行

搞清楚了谁先执行,下面看看多个过滤器是怎么执行的,过滤器的执行是先去,把所有路过的过滤器都执行一遍,然后再回来再执行一遍所有的过滤器

package com.zhiying.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter("/*")
public class AFilter implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        System.out.println("过滤器A被执行了");
        chain.doFilter(request,response);
        System.out.println("过滤器A回来了");
    }
}
package com.zhiying.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter("/*")
public class BFilter implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        System.out.println("过滤器B被执行了");
        chain.doFilter(request,response);
        System.out.println("过滤器B回来了");
    }
}

可以看出,是先执行了过滤器A,再执行的过滤器B

发布了376 篇原创文章 · 获赞 242 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/HeZhiYing_/article/details/104061226