拦截器与过滤器的区别(自用)

1、底层原理不同

过滤器的底层是使用函数回调的方式进行实现。而拦截器是基于Java的动态代理进行实现。

2、使用范围不同:

过滤器(filter)是实现了javax.servlet.fiter这个接口。这个接口呢它是servlet容器来进行定义的。也就是说过滤器只能在servlet容器中进行使用即web应用程序。
拦截器(interceptor)是spring的一个组件,由spring容器进行管理。并不依赖Tomcat容器,是可以进行单独使用的。它不仅可以在servlet中进行使用还可以在application中使用。

3、触发的时机不同

过滤器是在请求进入容器后,但是在servlet之前进行处理。

拦截器是在servlet之后,在进入controller之前进行处理。

4、拦截的请求不同

过滤器它是在servlet之前及请求进入tomcat之后才进行过滤请求。那么它几乎可以对所有的请问进行一个过滤。

拦截器它是在servlet之后及controller之前进行拦截。他在执行之前会有前置处理器以及后置处理器的handlerMapping映射的一个过程。所以说拦截器它拦截的请求只是映射到controller上面的请求。

5、拦截器可以获取IOC容器的各个bean,而过滤器就不行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值