拦截器Interceptor和过滤器Filter的区别

本人之前面试的时候被问到“请你说说过滤器和拦截器有什么区别”,但是由于没复习好,所以回答的并不是很好。所以今天就想着整理这篇文章介绍一下两者的区别,文章内容不多,但是方便复习和记忆~

过滤器和拦截器的区别如下:

  1. 生效原理不同:拦截器Interceptor基于Java的反射机制;而过滤器Filter基于函数回调。
  2. 执行时机不同:拦截器在servlet和controller之间执行;而过滤器是在请求进入tomcat容器之后,进入servlet之前执行的。在请求结束过后进行返回时,是在servlet处理之后,返回前端之前执行的。  

  3. 规范不同:拦截器是在Spring容器内的,由Spring框架支持的;而过滤器是在Servlet规范中定义的,是Servlet容器支持的。
  4. 可以使用的资源不同:拦截器作为Spring的组件之一,归Spring管理,配置在Spring的文件中,因此可以使用Spring里的任何资源,例如:Service对象、事务管理、数据源等,只需要通过IOC注入即可;而Filter做不到这点。
  5. 深度不同:拦截器能深入到方法执行前后、异常抛出前后等起作用,具有更大的灵活性;而Filter只在Servlet前后起作用。
  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值