拦截器和过滤器的区别

拦截器和过滤器的区别

过滤器

首先说的过滤器,我们配置过滤器的地方是web.xml文件配置,因为过滤器他依赖于servlet容器,在实现上,基于函数回调,它可以对几乎所有的请求进行过滤,都是缺点就是只能再去爱容器中初始化一次,使用过滤器的目的,是用来做一些过滤的操作,获取我们想要的数据,比如:在Javaweb中,对传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后在传入servlet或者Controller进行业务逻辑操作,通常用的场景就是:过滤器中修改字符编码,过滤器中修改HttpServletRequest的一些参数(XSSFilter(自定义过的过滤器)),如过滤低俗文字等等。

 

2.拦截器

拦截器的配置一般再去爱SpringMVC的配置文件中,使用Interceptors标签。

拦截器,他依赖于web框架,在springMVC中就是依赖于SpringMVC框架。在实现上,基于Java的反射机制,属于面向切面编程(AOP)的一种应用,就是service或者一个方法前,调用一个方法或者在方法后,调用一个方法,如动态代理就是拦截器的简单实现,在调用方法前打印请求参数,也可以调用方法后,调用结果。由于拦截器基于web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用。都是缺点实只能对controller请求进行拦截,对其他的的一些比如直接访问几台资源请求则没有办法进行拦截。

 

相同点:

1.都有优先处理请求的权利,都可以决定是否将请求转移到请求的实际处理的控制器处。

2.可以对请求发送过来的参数数据的检查和修改。

不同点:

1.拦截器可以做前置处理也可以做后置处理,也可以做完成处理,控制的更加细化。过滤器负责请求处理前面的过滤处理

2.过滤器是servlet规范里面的组件,拦截器是框架Spring里面的组件。

3.过滤器优先执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值