首页 > 其他分享 >Spring 中的拦截器、过滤器有什么区别,有什么关系吗

Spring 中的拦截器、过滤器有什么区别,有什么关系吗

时间:2023-11-24 22:22:55浏览次数:27  
标签:拦截器 请求 Spring MVC 过滤器 Servlet

在Spring框架中,拦截器(Interceptor)和过滤器(Filter)是两个不同的概念,它们在框架中的作用和实现方式略有不同。

  1. 拦截器(Interceptor)

    • 拦截器是Spring框架提供的一种机制,用于拦截HTTP请求的处理过程。在Spring MVC中,拦截器是基于HandlerInterceptor接口实现的,它可以在请求的处理过程中进行预处理和后处理。
    • 拦截器可以对请求进行更细粒度的控制,如在请求处理之前或之后进行日志记录、权限校验、修改请求参数等操作。它与Spring MVC的控制器(Controller)直接相关,可以在请求到达Controller之前、之后或者渲染视图之前进行拦截和处理。
  2. 过滤器(Filter)

    • 过滤器是Servlet规范中的一部分,它是在Java EE(现在的Jakarta EE)中定义的。过滤器是基于javax.servlet.Filter接口实现的,它可以在请求进入Servlet之前或响应离开Servlet之后对请求和响应进行过滤和处理。
    • 过滤器工作在Servlet容器级别,与具体的框架无关,可以用于拦截任何Web请求。过滤器可以对请求进行检查、修改请求头、响应内容等操作。

关系与区别:

  • 关系:拦截器和过滤器都用于对请求进行处理和拦截,但拦截器是Spring MVC框架中的一部分,主要用于拦截控制器的方法调用,而过滤器是Servlet规范中的一部分,作用于Servlet容器级别,可以用于任何Java Web应用。
  • 区别:主要区别在于实现接口不同、作用范围不同以及拦截器对于Spring MVC生命周期的钩子更细粒度。

总体而言,拦截器更适合用于Spring MVC应用中对Controller进行拦截处理,而过滤器更通用,可以用于所有Servlet请求的拦截和处理。

标签:拦截器,请求,Spring,MVC,过滤器,Servlet
From: https://www.cnblogs.com/monster1799/p/17854917.html

相关文章

  • springcloud学生选课系统
    开发技术:jdk1.8,mysql5.7,idea,nodejs,vscodespringcloudspringbootmybatisvueelementui功能介绍:学生:登录,统计分析,选课(查看课程及选择),我的成绩老师:登录,统计分析,课程管理:课程信息维护成绩管理:成绩信息发布管理员:登录统计分析:统计成绩学生管理:学生增删改查老师管理:老师增删改查班级管......
  • 10.配置优先级,bean的管理,SpringBoot原理
    配置优先级,bean的管理,SpringBoot原理配置优先级:优先级(低->高):application.ymlapplication.ymlapplication.propertiesjava系统属性(-Dxxx=xxx)命令行参数(--xxx=xxx)例子-设置springboot项目端口号:java系统属性:-Dserver.port=9000命令行参数:--server.por......
  • Spring工具类-路径匹配(AntPathMatcher)
     1.介绍Spring(SpringBoot)框架的路径解析都是按照Ant的风格。Spring中的具体实现:org.springframework.util.AntPathMatcher?匹配1个字符/dir/app?匹配:/dir/app1、/dir/app2不匹配:/dir/app、/dir/app12、index/*匹配0到多个字符/dir/app*......
  • 使用druid自定义拦截器
         使用druid自定义的拦截器StatFilter,是可以通过日志进行慢sql打印的。但是如果想要把慢sql放入DB,或者通过钉钉告警的方式进行实时打印,则需要实现自定义的拦截器。     第一步:重新自定义拦截器    packagecom.example.demo.filter;importcom.a......
  • 基于springboot,vue的教务管理系统源码 学生信息管理系统
    项目源码获取方式放在文章末尾处项目技术数据库:Mysql5.7数据表:9张开发语言:Java(jdk1.8)开发工具:idea前端技术:Vue后端技术:SpringBoot 项目源码获取方式放在文章末尾处功能简介该项目是一个教务管理系统,角色分为管理员,教师,学生三个角色,具体功能菜单如下:管理员端    登录    ......
  • 2.web(HTTP,Tomcat,SpringBootWeb)
    web(HTTP,Tomcat,SpringBootWeb)HTTP:概念:HyperTextTransferProtocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则;特点;基于TCP协议:面向连接,安全;基于请求-响应模型的:一次请求对应一次响应;HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响......
  • 基于springboot的医院管理系统
    项目源码获取方式放在文章末尾处项目技术数据库:Mysql5.7数据表:36张开发语言:Java(jdk1.8)开发工具:idea前端技术:HTML+CSS后端技术:SpringBoot 项目源码获取方式放在文章末尾处功能简介该项目是一个医院管理系统,可自行配置用户角色以及字典信息,具体功能菜单如下:   登录    后......
  • [SpringBoot][Maven]关于maven pom文件的packaging属性
    关于mavenpom文件的packaging属性前几天在调试源码运行程序的时候,因为将项目中pom文件的packaging属性用错导致源码包无法引入使用而报Bean注入错误,在此进行总结整理记录。packaging是maven的pom.xml中的一个标签,用于指定maven项目的输出格式,也就是打包类型,使用方式为:<packagi......
  • Spring_2023_11_24_2 Spring整合mybatis--Spring中的事务管理(注解形式)
    Spring整合mybatis--Spring中的事务管理(注解形式)application.xml<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:tx="http://www.springframework.org/schema/tx&quo......
  • Spring Boot应用中Tomcat建议配置
    在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。Tomcat是Apache基金下的一个轻量级的Servlet容器,支持Servlet和JSP。Tomcat服务器本身具有Web服务器的功能,可以作为独立的Web服务器来使用。一、SpringBoot应用......