Spring过滤器和拦截器的区别
作者:mmseoamin日期:2023-12-18

📑前言

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

🎬作者简介:大家好,我是青衿🥇

☁️博客首页:CSDN主页放风讲故事

🌄每日一句:努力一点,优秀一点

目录

文章目录

  • 📑前言
  • **目录**
      • 请求的执行流程
      • 过滤器(Filter):
      • 拦截器
      • 过滤器和拦截器的区别:
      • 📑文章末尾

        请求的执行流程

        Spring过滤器和拦截器的区别,在这里插入图片描述,第1张

        过滤器(Filter):

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

        执行流程:

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

        拦截器

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

        执行流程:

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

        过滤器和拦截器的区别:

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

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

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

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

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

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

        📑文章末尾

        Spring过滤器和拦截器的区别,在这里插入图片描述,第2张