1、实现原理不同

  • 过滤器和拦截器 底层实现方式大不相同,过滤器 是基于函数回调的,拦截器 则是基于Java的反射机制(动态代理)实现的。

2、使用范围不同

  • 我们看到过滤器 实现的是 javax.servlet.Filter 接口,而这个接口是在Servlet规范中定义的,也就是说过滤器Filter 的使用要依赖于Tomcat等容器,导致它只能在web程序中使用。
  • 拦截器(Interceptor) 它是一个Spring组件,并由Spring容器管理,并不依赖Tomcat等容器,是可以单独使用的。不仅能应用在web程序中,也可以用于Application、Swing等程序中。

3、触发时机不同

  • 过滤器Filter是在请求进入容器后,但在进入servlet之前进行预处理,请求结束是在servlet处理完以后。
  • 拦截器 Interceptor 是在请求进入servlet后,在进入Controller之前进行预处理的,Controller 中渲染了对应的视图之后请求结束。

4、拦截的请求范围不同

Filter 处理中
Interceptor 前置
Interceptor 处理中
Interceptor 后置
Filter 处理中
  • 过滤器Filter执行了两次,拦截器Interceptor只执行了一次。
  • 这是因为过滤器几乎可以对所有进入容器的请求起作用,
  • 而拦截器只会对Controller中请求或访问static目录下的资源请求起作用。

5. 拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。

面试篇-Spring 拦截器和过滤器的区别?相关推荐

  1. 详解拦截器和过滤器的区别

    拦截器和过滤器的区别 过滤器和拦截器的区别: ①拦截器是基于java的反射机制的,而过滤器是基于函数回调. ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器. ③拦截器只能对acti ...

  2. java 拦截器和过滤器的区别

    介绍 在 Java Web 应用程序中,拦截器和过滤器是两种不同的机制,用于在请求/响应处理过程中进行拦截和过滤.两者都可以用来在请求到达目标资源之前对其进行预处理.修改或拦截. 但是,拦截器和过滤器 ...

  3. 拦截器和过滤器的区别 -- 简单分析篇

    过滤器,是在Java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法u ...

  4. springboot拦截器和过滤器的区别与使用

    拦截器与过滤器的区别 spring的拦截器与servlet的filter有相似之处,比如二者都是AOP编程思想的体现,都能实现权限检查.日志记录等,不同的是: 适用范围不同:filter是servle ...

  5. 大剑无锋之拦截器和过滤器的区别【面试推荐】

    ①拦截器是基于java的反射机制的,而过滤器是基于函数回调. ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器. ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求 ...

  6. Spring 拦截器和过滤器中自动注入为 null 的原因及解决方案

    起因 开发过程中在过滤器(filter)中注入Bean出现空指针异常,通过查找资料了解空指针的原因,特此记录. 问题分析 由于其他bean在service,controller层注入一点问题也没有,开 ...

  7. Spring—拦截器和过滤器介绍

    文章目录 介绍 过滤器(Filter) 拦截器(Interceptor) 包含关系 比较 关注微信公众号:CodingTechWork,一起学习进步. 介绍 过滤器(Filter) 过滤器是Java ...

  8. 区分Java拦截器和过滤器

    今天带大家分析java拦截器和过滤器的区别,文中有非常详细的解释说明,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下 一.过滤器(filter) 过滤器处于客户端与Web资源(Serv ...

  9. 关于SSM框架设置拦截器和过滤器

    我们知道拦截器和过滤器都是在项目中起到拦截过滤请求的功能,所以可能在设置的时候会傻傻分不清.这里我们先来比较它们的区别. 过滤器Filter是JavaEE标准,在Servlet的规范中定义的,是Ser ...

  10. struts2中拦截器和过滤器的比较

    拦截器和过滤器的区别: 1.拦截器是基于java的反射机制的,而过滤器是基于函数回调 2.过滤器依赖与servlet容器,而拦截器不依赖与servlet容器 3.拦截器只能对action请求起作用,而 ...

最新文章

  1. ViewPager的使用小技巧
  2. C#窗体控件更新(五)
  3. 分享一个超棒的在线jQuery mobile原型设计开发工具 - codiqa
  4. django常用的模型字段类型和常用的查询
  5. 一款可视化的在线制作H5
  6. mysql面试题2020_2020年MySQL数据库面试题
  7. 解决WordPress无法上传媒体文件以及无法下载和安装主题与插件的问题
  8. Django REST框架--认证和权限
  9. python: web api、json 与 gzip、zlib库比较
  10. vue element插件this.$confirm用法(取消也可以发请求)
  11. flask中的jinjia2模板引擎详解1
  12. 10015---MySQL--innodb_flush_log_at_trx_commit参数
  13. 微信企业付款转账到微信
  14. win10无线显示未连接到服务器,win10突然无法连接到无线显示器
  15. 关于定义二维数组时为什么可以省略行,而不可以省略列
  16. 警告!来历不明的疫情邮件或许是黑客陷阱
  17. python文件相对路径是什么意思_python相对路径表示_什么是绝对路径和相对路径,举例说明...
  18. 微信小程序解决跳转时携带参数乱码的问题 ?
  19. 中国能不能写出操作系统?
  20. Aspects源码解析

热门文章

  1. 导航一体机端口测试软件,导航端口查看器
  2. 智能算法-模拟退火-粒子群-鱼群算法
  3. vs2008 sp1 regex
  4. 计算机四级网络工程师总结
  5. 【情商 为什么情商比智商更重要】阅读笔记
  6. LAMMPS学习总结2
  7. 私有云的Eucalyptus简介
  8. RestClient查询文档
  9. 可靠性试验(环境试验、机械试验、HALT试验等)
  10. unity3d补间动画DoTween