过滤器和拦截器有什么区别?

过滤器(filter)是基于servlet容器回调实现的,可以拦截请求和响应的所有内容,包括静态资源和动态资源。

拦截器(Interceptor):基于Spring框架,只作用于Spring的上下文中。拦截器只能拦截请求到达Controller之前,或者响应返回视图之前的处理。

 

实现方式:

过滤器是基于servlet规范中的Filter接口实现的。

拦截器是基于Spring的HandlerInterceptor接口实现

触发时机:

过滤器是在servlet执行前后进行处理的。

 

拦截器是在到达controller之前或返回视图之前进行拦截的。

应用场景:

过滤器主要用于过滤请求和响应,例如字符编码处理、安全控制、日志记录等。

拦截器可以进行更复杂的业务逻辑处理,例如权限控制、日志记录、性能监控、事务控制等。

执行机制

过滤器由servlet容器回调完成。

拦截器通过动态代理(反射)的方式实现。

生命周期

过滤器在servlet容器管理,在servlet生命周期。

拦截器是SpringIOC容器管理,可以获取到spring容器的bean。

 

 

过滤器

拦截器

基于框架/容器

servlet容器

SpringMVC

实现接口

Filter

HandlerInterceptor

执行时机

servlet处理前后

controller执行/视图返回前

实现原理

函数回调

AOP动态代理(反射)

拦截情况

几乎可以拦截所有资源包括静态资源文件

一般只能拦截控制层,不能拦截静态资源

场景

字符编码、日志记录

权限控制、事务管

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/19824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git fatal: refusing to merge unrelated histories问题处理

情况介绍 我一开始在本地创建了仓库git init,有了一些提交。然后后面准备上传到github时,在github上创建了仓库,选了License,也就是说远程仓库也有了一个提交(即生成License的提交)。 在本地添加remote后…

易语言推箱子游戏(附带源码)

易语言推箱子游戏 易语言易语言的安装易语言功能特色易语言安装步骤易语言常见问题 导入游戏源码部分源码领取源码下期更新预报 易语言 易语言(EPL)是一门以中文作为程序代码编程语言,其以“易”著称,创始人为吴涛。易语言早期版…

linux同步搭建多台服务器

前言: 如果在安装服务器的过程中,需要安装多台服务器,同样的配置,同样的步骤就可以使用此方法,搭建集群同步安装 1.配置网卡 想要两台机器进行同步的话,必须网段是同样的,保持在同一网段并且能…

零基础学会asp.net做AI大模型网站/小程序之三:实战初体验(简单程序教学)

关注我,持续分享逻辑思维&管理思维&面试题; 可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导; 博主在互联网大厂深耕近二十年,从一线码农做起,到人工智能公司副总裁。希望把过往经验总结出来,帮助到更多同学。有兴趣可关注博主后加个人微信(平台规定文章…

Golang:使用Base64Captcha生成数字字母验证码实现安全校验

Base64Captcha可以在服务端生成验证码,以base64的格式返回 为了能看到生成的base64验证码图片,我们借助gin go get -u github.com/mojocn/base64Captcha go get -u github.com/gin-gonic/gin文档的示例看起来很复杂,下面,通过简…

中学生学人工智能系列:如何用AI学化学

经常有读者朋友给公众号《人工智能怎么学》留言咨询如何使用人工智能学习语文、数学、英语、化学等科目。这些都是中学教师、中学生朋友及其家长们普遍关注的问题。仅仅使用留言回复的方式,不可能对这些问题做出具体和透彻的解答,因此本公众号近期将推出…

3D视觉系统实现自动化上下料操作

在竞争激烈的汽车制造行业,提高生产效率、降低成本并保证产品质量是企业持续发展的关键。特别是在汽车制造过程中,各种零部件的上下料操作占据了大量的生产时间,因此如何实现这些操作的自动化、高效化成为了一个亟待解决的问题。 富唯智能3D视…

C++学习/复习9--string的使用/迭代器/查找遍历修改转换容量等函数与重载运算符(建议记常用的)/练习

一、string类概要 1.1string类对象常见构造 1.2string中的元素访问 范围for与迭代器 容器与迭代器 算法与迭代器 反向迭代器 const迭代器 1.3string中的插入与查找 1.4string中的的容量与大小 注意1:不同编译器的对某些函数底层实现在遵守STL标准的情况下具体方式…

用任务监听RTOS各任务的运行状态

使用rtos时内存对于单片机来说总是非常抠搜的。 任务分配多了浪费,少了跑不动。 最近看到这个监听任务还是很好用的。 废话不多说。开始操作 第一步在配置文件中打开这几个宏 #define configUSE_TRACE_FACILITY 1 /*为1时启用可视化跟踪调试*/ #define conf…

两整数之和 ---- 位运算

题目链接 题目: 分析: 题目中要求不能使用-, 考虑到我们的位运算异或^, 是无进位加法, 可以使用如果是无进位加法, 那么我们就要找到进位, 并进行计算, 进位只有1和1相加时才会产生进位1, 而0和1相加无进位, 进位为0, 那么我们就想到了&运算, 1&1 1, 0&1 0, 所…

07-操作元素(键盘和鼠标事件)

在前面的文章中重点介绍了一些元素的定位方法,定位到元素后,就需要操作元素了。本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件。 一、简单操作 点击按钮(鼠标左键):click()清空输入框&…

基础—SQL—DQL(数据查询语言)排序查询

一、引言 排序查询这里面涉及的关键字:ORDER BY。在我们日常的开发中,这个是很常见的,比如打开一个网购的商城,这里面可以找到一个销量的排序、综合的排序、价格的排序(升序、降序)等等。接下来就学习这一部…

mac电脑用谷歌浏览器对安卓手机H5页面进行inspect

1、mac上在谷歌浏览器上输入 chrome://inspect 并打开该页面。 2、连接安卓手机到Mac电脑:使用USB数据线将安卓手机连接到Mac电脑。 3、手机上打开要的h5页面 Webview下面选择要的页面,点击inspect,就能像谷歌浏览器页面打开下面的页面&#…

​​​​​​​Beyond Compare 3密钥被撤销的解决办法

首先,BCompare3的链接如下 链接:https://pan.baidu.com/s/1vuSxY0cVQCt0-8CpFzUhvg 提取码:8888 --来自百度网盘超级会员V7的分享 1.问题现象 激活之后在使用过程中有时候会出现密钥被撤销的警告,而且该工具无法使用&#xff…

【第11章】SpringBoot之devtools

文章目录 前言一、引入二、默认属性三、自动重启1.排除资源2.禁用重新启动 四、全局配置总结 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 一…

命令模式(行为型)

目录 一、前言 二、命令模式 三、总结 一、前言 命令模式(Command Pattern)是一种行为型设计模式,命令模式将一个请求封装为一个对象,从而可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以…

小角楼是怎样成为清廷御酒的?

执笔 | 扬 灵 编辑 | 古利特 “酒史千年远,酒花百代香,天府多佳酿,美酒驻平昌。” 对四川省巴中市平昌县而言,白酒是经济发展的重要产业之一,好山好水出好酒,优良的地质、水源、气候、土壤等条件以及悠久…

41.避免查询主表之外的表的一个字段导致需要的数据查询不到

两张表A(AId,BId),B(BId)在进行连表查询时,页面展示的数据一个字段来自C表,C表通过z字段AId与A表相关联(在新增的时候先有A表,再生成C表数据) SQL查询如下: select A.AId,A.name,…

重复的子字符串-力扣

使用kmp算法解此题,数组长度减去最长相同前后缀的长度相当于是第一个周期的长度,也就是一个周期的长度,如果这个周期可以被整除,就说明整个数组就是这个周期的循环。 class Solution { public:void getNext (int* next, const st…

算法(十一)贪婪算法

文章目录 算法简介算法概念算法举例 经典问题 -背包问题 算法简介 算法概念 贪婪算法(Greedy)是一种在每一步都采取当前状态下最好的或者最优的选择,从而希望导致结果也是全局最好或者最优的算法。贪婪算法是当下局部的最优判断&#xff0c…