前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >谈谈拦截器和过滤器的区别

谈谈拦截器和过滤器的区别

作者头像
IT学习日记
发布2022-09-13 16:06:30
5070
发布2022-09-13 16:06:30
举报
文章被收录于专栏:IT知识进阶学习IT知识进阶学习

前言

  在平常开发或者面试中,经常听到拦截器和过滤器的词语,因为两者有许多地方有相似之处,很容易给大家造成误解下面,下面就来谈谈两者具体是什么吧。

拦截器和过滤器的区别

过滤器(Filter):

  过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上。过滤器可附加到一个或多个servlet或JSP页面上,并且可以检查进入这些资源的请求信息。

拦截器(Interceptor):

  在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。

相似之处:

  1、两者都是AOP编程思想的一个落地实现。

  2、两者都可以实现权限鉴定,日志记录等。

区别:

  1、过滤器时基于函数回调,拦截器是基于反射。

  2、过滤器依赖于Servlet容器,而拦截器不依赖于Servlet容器,它是spring框架支持的,所以它可以使用spring中的任何资源、对象如数据源、事务管理等。

  3、拦截器可以获取IOC容器中的各个bean,而过滤器就不行,在拦截器里注入一个service,可以调用业务逻辑。

  4、使用细节、范围不一样,过滤器知识在Servlet前后起作用,而拦截器能够在方法前后、异常抛出前后等地方使用,它具有更大的弹性。

  5、拦截器是被包裹在过滤器之中的,具体图形如下(图来源于网络,侵删):

image.png
image.png
image.png
image.png

每日科普小知识-一二三方包的区别

  一方包(也称一方库)、二方包(也称二方库)、三方包(也称三方库)说明:

  一方包:本工程中的各模块的相互依赖

  二方包:公司内部的依赖库,一般指公司内部的其他项目发布的jar包

   三方包:公司之外的开源库, 比如apache、ibm、google等发布的依赖

写在最后

  经验就是一个积累的过程,没有谁能够一步登天,所以脚踏实地才是成功的秘诀。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/06/24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 拦截器和过滤器的区别
  • 每日科普小知识-一二三方包的区别
  • 写在最后
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档