系列十二、过滤器 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
相关推荐
JAVA面经实录9173 小时前
Java企业级工程化·终极完整版背诵手册(无遗漏、全覆盖、面试+落地通用)
java·开发语言·面试
许彰午5 小时前
CacheSQL(二):主从复制——OpLog 环形缓冲区与故障自动恢复
java·数据库·缓存
Bat U6 小时前
JavaEE|多线程初阶(七)
java·开发语言
掌心向暖RPA自动化9 小时前
如何获取网页某个元素在屏幕可见部分的中心坐标影刀RPA懒加载坐标定位技巧
java·javascript·自动化·rpa·影刀rpa
日取其半万世不竭9 小时前
Minecraft Java版社区服务器搭建教程(Linux,适合新手)
java·linux·服务器
TeamDev9 小时前
JxBrowser 9.0.0 版本发布啦!
java·前端·混合应用·jxbrowser·浏览器控件·跨平台渲染·原声输入
AI人工智能+电脑小能手10 小时前
【大白话说Java面试题】【Java基础篇】第24题:Java面向对象有哪些特征
java·开发语言·后端·面试
AI人工智能+电脑小能手10 小时前
【大白话说Java面试题】【Java基础篇】第25题:JDK1.8的新特性有哪些
java·开发语言·后端·面试
likerhood10 小时前
SLF4J: Failed to load class “StaticLoggerBinder“ 解决
java·log4j·maven
早日退休!!!11 小时前
大模型推理瓶颈七层分析模型
java·服务器·数据库