多个过滤器的执行顺序

多个过滤器的执行顺序

一个目标资源可以指定多个过滤器,过滤器的执行顺序是在web.xml文件中的部署顺序。

我们演示一下:
我们建立两个filter:
AFilter:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
	System.out.println("filter start...这里是AFilter");
	chain.doFilter(request, response);
}

BFilter:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
	System.out.println("filter start...这里是BFilter");
	chain.doFilter(request, response);
}

web.xml中进行的配置,我们把AFilter放在上面,BFilter放在下面:

<filter>
	<display-name>Afilter</display-name>
	<filter-name>Afilter</filter-name>
	<filter-class>com.veeja.web.filter.Afilter</filter-class>
</filter>
<filter-mapping>
	<filter-name>Afilter</filter-name>
	<url-pattern>/index.jsp</url-pattern>
</filter-mapping>


<filter>
	<display-name>BFilter</display-name>
	<filter-name>BFilter</filter-name>
	<filter-class>com.veeja.web.filter.BFilter</filter-class>
</filter>
<filter-mapping>
	<filter-name>BFilter</filter-name>
	<url-pattern>/index.jsp</url-pattern>
</filter-mapping>

我们现在访问一下index.jsp,看一下过滤器执行的顺序是怎么样的:
在这里插入图片描述
我们可以看到,先访问的是AFilter,再访问的是BFilter。

接下来我们变更一下Filter的顺序,我们把BFilter的filter-mapping放在AFilter的上面:
在这里插入图片描述
我们现在访问一下index.jsp,看一下过滤器执行的顺序:
在这里插入图片描述
我们可以看到,这次先执行的是BFilter,后执行的是AFliter。
也就是说,过滤器的执行顺序,取决于过滤器在xml中的部署顺序,而且仅仅取决于xml中filter-mapping的顺序。


以上就是全部内容,谢谢你的阅读。

如有纰漏,请不吝指出,不胜感激。

如果你不沉下心来认真练习,所有的阅读都是白费的。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值