验证多个Filter过滤一个资源时执行顺序

本文探讨了在Web应用中,当多个Filter过滤同一个资源时,它们的执行顺序是如何确定的。通过实例演示了如何在Filter的doFilter()方法中添加输出语句来观察执行流程,最终揭示了执行顺序遵循的规律。

当有多个Filter过滤一个资源时,执行顺序到底是怎样?

如下测试:

   定义两个Filter,FirstFilter,SecondFilter,它们过滤同一个index.jsp页面,并且SecondFilter的映射写在FirstFilter后面

   并在两个Filter的doFilter()方法中加上输出语句:

      例如FirstFilter的doFilter方法:

@Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        System.out.println("FirstFilter doFilter begin--------------------1");
        chain.doFilter(request, response);
        System.out.println("FirstFilter doFilter end  --------------------2");
    }

同理SecondFilter,标上3,4

在index.jsp页面中写Java代码输出5:<% System.out.println("index.jsp--------------------------------------5");%>

启动tomcat后,访问index.jsp,控制台输出如下:

FirstFilter doFilter begin--------------------1
SecondFilter doFilter begin---------------------3
index.jsp--------------------------------------5
SecondFilter doFilter end  ---------------------4
FirstFilter doFilter end  --------------------2

从上面结果看来,不难看出执行顺序了

转载于:https://www.cnblogs.com/javamilan/p/4266219.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值