系列十二、过滤器 vs 拦截器

一、过滤器 vs 拦截器

1.1、区别

(1)触发时机不一样,过滤器是在请求进入容器后Servlet之前进行预处理的,请求结束返回也是,是在Servlet处理完后,返回给前端之前;

(2)过滤器可以对几乎所有的请求起作用,拦截器只能对action请求起作用;

(3)过滤器不能访问action的上下文,而拦截器可以;

(4)过滤器依赖于Servlet容器,拦截器不依赖;

(5)过滤器是基于函数回调,而拦截器是基于Java的反射机制;

二、应用场景

2.1、过滤器应用场景

(1)过滤敏感词汇;

(2)设置字符编码;

(3)URL级别的权限访问控制;

(4)压缩响应信息;

2.2、拦截器应用场景

(1)登录验证:判断用户是否登录;

(2)权限验证:判断用户是否有权限访问资源,如校验Token;

(3)日志记录:记录请求操作日志(用户的IP、访问时间等),以便统计请求访问量;

(4)处理Cookie、本地化、国际化、主题等;

(5)性能监控:监控请求处理时长;

(6)通用行为:读取cookie得到用户信息并将用户对象放入请求,从而方便后续流程使用,还有如提取Locale、Theme信息等,只要是多个处理器都需要的即可使用拦截器实现;

三、参考

html 复制代码
https://blog.csdn.net/weixin_44830949/article/details/127493342

https://zhuanlan.zhihu.com/p/484289805?utm_id=0
相关推荐
开开心心就好3 小时前
图片白底怎么去掉?抠图工具抠完背景透明
java·服务器·开发语言·pdf·ocr·散列表·启发式算法
东方芷兰4 小时前
Agent 技术摘要 05 —— BP、SaaS、B2B、C2B、B2C
java·笔记·python·语言模型·自然语言处理
Chen—LSN4 小时前
数据结构——拿捏复杂度
java·c语言·开发语言·数据结构·经验分享·笔记·算法
一条破秋裤4 小时前
Linux 线程同步:条件变量
java·linux·jvm
步行cgn4 小时前
Spring AOP 切面的先后顺序详解
java·spring
ym hyd 1114 小时前
宝宝早教服务系统源码 Java+SpringBoot+Vue3 前后分离
java·开发语言·spring boot
自强的小白5 小时前
微服务之间的依赖传递和调用(实体类的模块传递以及负载均衡的调用!)注册中心
java·微服务
她说彩礼65万5 小时前
C语言 单引号与双引号
java·服务器·c语言
知守观5 小时前
百万级数据导出OOM:POI的坑与EasyExcel的流式写入实战(附内存对比)
java·后端
anew___5 小时前
《从零手写操作系统 (19):Ext2文件系统实战——从内存到磁盘的跨越》
java·服务器·前端·数据库·算法