系列十二、过滤器 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
相关推荐
zxd0203114 分钟前
DevOps + CI/CD:从理念到 Jenkins 实战落地
java·开发语言
qq_白羊座5 分钟前
GitLab CI + Jenkins 双流水线模式Jenkins 端实现
java·开发语言
填满你的记忆7 分钟前
《RAG 完整工作流程详解》
java·ai·agent·rag
Kurisu5758 分钟前
深度解析:Go 语言 GMP 调度器模型与内核线程探测
java·数据库·golang
架构源启8 分钟前
Spring AI进阶系列(11) Spring AI Multi-Agent 协作系统:辩论、投票与共识机制实战
java·人工智能·spring
一条泥憨鱼13 分钟前
深入理解Java反射(超详细)
java·开发语言·spring·mybatis·反射
J-query20 分钟前
修改AndroidStudio的Boot Java Runtime for the IDE后,AndroidStudio启动就报错
java·开发语言·ide·android studio
Han.miracle22 分钟前
Java HashMap 与 ConcurrentHashMap 核心原理总结:从 Hash 冲突到 LongAdder
java·算法·哈希算法
Gauss松鼠会25 分钟前
GaussDB(DWS) SQL性能问题案例集
java·数据库·经验分享·spring boot·后端·sql·gaussdb
NiceCloud喜云35 分钟前
Anthropic 发布 Project Glasswing:未公开模型 Mythos 已挖出 10000+ 漏洞,含 OpenBSD 27 年老 bug
android·java·数据库·c++·python·docker·bug