当前位置: 首页 > news >正文

Spring过滤器和拦截器的区别

📑前言

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

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

请求的执行流程

在这里插入图片描述

过滤器(Filter):

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

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

拦截器

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

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

过滤器和拦截器的区别:

 原理实现上:过滤器基于回调实现,而拦截器基于动态代理。
 控制粒度上:过滤器和拦截器都能够实现对请求的拦截功能,但是在拦截的粒度上有较大的差异,拦截器对访问控制的粒度更细。
 使用场景上:拦截器往往用于权限检查、日志记录等,过滤器主要用于过滤请求中无效参数,安全校验。
 原理实现上:过滤器基于回调实现,而拦截器基于动态代理。
 控制粒度上:过滤器和拦截器都能够实现对请求的拦截功能,但是在拦截的粒度上有较大的差异,拦截器对访问控制的粒度更细。
 使用场景上:拦截器往往用于权限检查、日志记录等,过滤器主要用于过滤请求中无效参数,安全校验。

📑文章末尾

在这里插入图片描述

http://www.lryc.cn/news/234020.html

相关文章:

  • HIS医疗项目
  • eclipse启动无法找到类(自定义监听器)
  • Ubuntu openssh-server 离线安装
  • servlet页面以及控制台输出中文乱码
  • 《向量数据库指南》——TruLens + Milvus Cloud构建RAG深入了解性能
  • vscode代码上传到gitlab
  • Spring Boot 项目的常用注解与依赖
  • 【C++11】多线程库 {thread线程库,mutex互斥锁库,condition_variable条件变量库,atomic原子操作库}
  • 智能导诊系统:基于机器学习和自然语言处理技术,可快速推荐合适的科室和医生
  • 如何防止图片抖动
  • 依赖注入方式
  • HTML 超链接 a 标签
  • 【cpolar】Ubuntu本地快速搭建web小游戏网站,公网用户远程访问
  • 数字化企业需要什么样的数据中心
  • el-table固定表头(设置height)出现内容过多时不能滚动问题
  • 从流程优化到经营提效,法大大电子签全面助力智慧零售升级
  • Jquery 通过class名称属性,匹配元素
  • 复杂数据统计与R语言程序设计实验二
  • python3:print()打印. 2023-11-18
  • ARM 版 Kylin V10 部署 KubeSphere 3.4.0 不完全指南
  • 二元分类模型评估方法
  • 专业数据标注公司:景联文科技领航数据标注行业,满足大模型时代新需求
  • .Net8 Blazor 尝鲜
  • Vue.js 页面加载时触发函数
  • Go 语言常用数据结构
  • 【数据结构】图的简介(图的逻辑结构)
  • 2342.数位和相等数对的最大和
  • 关于Spring Bean的一些总结
  • 6.2 List和Set接口
  • 2023数维杯国际赛数学建模D题完整论文分享!