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

Spring过滤器和拦截器的区别

📑前言

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

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

请求的执行流程

在这里插入图片描述

过滤器(Filter):

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

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

拦截器

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

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

过滤器和拦截器的区别:

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

📑文章末尾

在这里插入图片描述


http://www.kler.cn/a/132080.html

相关文章:

  • 金融数字化是什么?如何进行金融数字化转型?
  • 【docker】Docker网络与iptables
  • 轻地图+数据闭环加速落地,觉非科技获多家头部车企定点
  • 【51单片机系列】C51基础
  • redis安装(Windows和linux)
  • CentOS Linux release 7.9.2009 (Core)中安装配置Tomcat
  • Redis实战篇(1)
  • Spring Boot使用EhCache完成一个缓存集群
  • ElementUI及ElementUI Plus Axure RP高保真交互元件库及模板库
  • 二十九、W5100S/W5500+RP2040树莓派Pico<Web socket Server>
  • 第四代智能井盖传感器,万宾科技助力城市安全
  • Java,集合框架,关于Collection接口
  • 【开源】基于JAVA的高校宿舍调配管理系统
  • 【C++11】多线程库 {thread线程库,mutex互斥锁库,condition_variable条件变量库,atomic原子操作库}
  • U盘如何自定义图标?
  • 为React Ant-Design Table增加字段设置 | 京东云技术团队
  • C#调用C++ dll教程
  • C 语言字符串
  • Hive效率优化记录
  • SystemVerilog学习 (10)——线程控制