Spring过滤器和拦截器的区别

📑前言

本文主要Spring过滤器和拦截器的区别的问题,如果有什么需要改进的地方还请大佬指出⛺️

🎬作者简介:大家好,我是青衿🥇
☁️博客首页:CSDN主页放风讲故事
🌄每日一句:努力一点,优秀一点

请求的执行流程

过滤器(Filter):

过滤器是Servlet规范中定义的一种组件,可以用于在请求进入Web应用程序之前或响应离开Web应用程序之前对请求进行预处理或后处理。过滤器的应用方式是通过在web.xml或Servlet注解中配置。

执行流程:

请求进入Web容器 → 过滤器预处理请求 → 请求传递给下一个过滤器或目标Servlet

拦截器

拦截器是Spring框架提供的一种组件,可以用于在请求进入控制器(Controller)之前或渲染视图之前执行自定义逻辑。拦截器的应用方式是通过实现HandlerInterceptor。

执行流程:

请求进入DispatcherServlet → 拦截器预处理请求 → 请求传递给下一个拦截器或控制器 → 控制器处理请求 → 渲染视图 → 拦截器后处理响应。

过滤器和拦截器的区别:

 原理实现上:过滤器基于回调实现,而拦截器基于动态代理。

 控制粒度上:过滤器和拦截器都能够实现对请求的拦截功能,但是在拦截的粒度上有较大的差异,拦截器对访问控制的粒度更细。

 使用场景上:拦截器往往用于权限检查、日志记录等,过滤器主要用于过滤请求中无效参数,安全校验。

 原理实现上:过滤器基于回调实现,而拦截器基于动态代理。

 控制粒度上:过滤器和拦截器都能够实现对请求的拦截功能,但是在拦截的粒度上有较大的差异,拦截器对访问控制的粒度更细。

 使用场景上:拦截器往往用于权限检查、日志记录等,过滤器主要用于过滤请求中无效参数,安全校验。

📑文章末尾

相关推荐
艾醒10 分钟前
大模型面试题剖析:大模型微调与训练硬件成本计算
人工智能·后端·算法
Dioass11 分钟前
Java面向对象中你大概率会踩的五大隐形陷阱
java
自由生长202414 分钟前
每日知识-设计模式-状态机模式
后端
用户2986985301419 分钟前
如何使用 Spire.Doc 在 C# 中创建、写入和读取 Word 文档?
后端
一叶飘零_sweeeet24 分钟前
在分布式环境下正确使用MyBatis二级缓存
java·分布式·mybatis
林太白44 分钟前
项目中的层级模块到底如何做接口
前端·后端·node.js
肥仔哥哥19301 小时前
基于OpenCv做照片分析(Java)
java·人工智能·opencv·图像原理
一枚小小程序员哈1 小时前
基于Android的车位预售预租APP/基于Android的车位租赁系统APP/基于Android的车位管理系统APP
android·spring boot·后端·struts·spring·java-ee·maven
没有bug.的程序员1 小时前
JVM 学习与提升路线总结:从入门到精通的系统化指南
java·jvm·学习·提升
用户30742971671581 小时前
Spring AI实战:基于ElevenLabs 实现文本转语音的实时音频流
java·spring boot·ai编程