Spring MVC应用 -- 过滤器

一:过滤器与拦截器

经常会有文章拿两者进行比较,说的云里雾里让人看不到春天在哪里。个人理解两者直白来讲就两点差距

  1. 使用上拦截器更加灵活,可以添加不拦截路径,过滤器只能配置实现拦截目标
  2. 实现上拦截器基于MVC容器属于MVC组件,过滤器基于Servlet容器属于WEB容器
二:过滤器实现
2.1 代码实现

首先继承过滤器抽象类OncePreRequestFilter,重写doFilter()即可。最后调用的doFilterInternal()方法可以理解为流程的继续。如果后续有过滤器则继续过滤,如果无过滤器则实现过滤方法逻辑
在这里插入图片描述

2.2 web.xml配置

web.xml文件上只需要配置相对应过滤器实现以及过滤路径即可,这一点与拦截器配置类似
在这里插入图片描述

三:执行顺序
3.1 多过滤器

当配置多个过滤器的时候可以看到最后的执行顺序就是按照web.xml文件中声明的顺序执行,这与拦截器类似
在这里插入图片描述

配置位置第一过滤器
配置位置第二过滤器
执行完毕控制层逻辑
3.2 过滤器与过滤方法

过滤器调用方法doFilter()之后会执行后面剩余的逻辑,但是注意这里不能再操作request与response,操作无效。所以这个可以认为是骚操作,要这么玩还不如使用拦截器实现
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值