Spring过滤器和拦截器的区别

📑前言

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

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

请求的执行流程

过滤器(Filter):

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

执行流程:

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

拦截器

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

执行流程:

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

过滤器和拦截器的区别:

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

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

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

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

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

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

📑文章末尾

相关推荐
ohoy6 分钟前
RedisTemplate 使用之Zset
java·开发语言·redis
独断万古他化9 分钟前
【Spring 核心: IoC&DI】从原理到注解使用、注入方式全攻略
java·后端·spring·java-ee
likuolei9 分钟前
Spring AI框架完整指南
人工智能·python·spring
毕设源码_郑学姐9 分钟前
计算机毕业设计springboot基于HTML5的酒店预订管理系统 基于Spring Boot框架的HTML5酒店预订管理平台设计与实现 HTML5与Spring Boot技术驱动的酒店预订管理系统开
spring boot·后端·课程设计
梵得儿SHI9 分钟前
(第四篇)Spring AI 核心技术攻坚:多轮对话与记忆机制,打造有上下文的 AI
java·人工智能·spring·springai生态·上下文丢失问题·三类记忆·智能客服实战案
希忘auto11 分钟前
SpringBoot之统一数据返回格式
java·spring
不吃香菜学java12 分钟前
spring-依赖注入
java·spring boot·后端·spring·ssm
ja哇13 分钟前
Spring AOP 详细讲解
java·后端·spring
南部余额13 分钟前
Spring Boot 整合 MinIO:封装常用工具类简化文件上传、启动项目初始化桶
java·spring boot·后端·文件上传·工具类·minio·minioutils
海南java第二人14 分钟前
Spring Bean生命周期深度剖析:从创建到销毁的完整旅程
java·后端·spring