首页 > 其他分享 >springmv的过滤器和拦截器的区别是什么

springmv的过滤器和拦截器的区别是什么

时间:2024-10-17 21:44:26浏览次数:8  
标签:拦截器 Filter Controller 过滤器 执行 servlet springmv

一个请求进来的时候,先交给web服务器提供的过滤器,例如springboot项目,提供的服务器也就是内置的tomcat,过滤器处理完成以后,然后会来到servlet,有一个dispatcherServlet会调用拦截器,再由dispatcherServlet分发给对应的Controller,处理完请求后,会原路返回,再回到拦截器,再回到过滤器,最终响应给客户端
image

请求->Tomcat->Filter->Servlet->Interceptor->Controller->Deal-Controller->Interceptor->Servlet->Filter->Tomcat->给客户端返回

过滤器Filter

  1. 过滤器会先执行,他是servlet的一部分,更接近于底层,会在servlet请求之前和响应之后进行处理进行执行
  2. 实现方式:依赖servlet提供的Filter接口,多个过滤器可以根据配置,来确定他们执行的顺序
  3. 用法区别:过滤器通常会用于实现必要的基础设施工作,如编码处理,视图响应,请求参数处理,URL重定向等

拦截器Interceptor

  1. 拦截器会后执行,他是springmvc的一部分,更接近于业务层,会在Controller请求之前和处理之后进行执行
  2. 实现方式:依赖SpringMVC提供的handlerInterceptor接口,多个拦截器的执行顺序由Bean 的配置顺序来决定,可以通过@Order注解来改变执行顺序
  3. 用法区别:拦截器通常用于执行一些和业务相关,不是必须的一些工作,比如身份认证与授权,接口的性能检测,跨域处理,日志记录等

标签:拦截器,Filter,Controller,过滤器,执行,servlet,springmv
From: https://www.cnblogs.com/alvisClub/p/18473177

相关文章

  • SciTech-AV-Video-DVP(Digital Video Processing)-CV/CG-ffmpeg-libavfilter:数字过滤
    Thisdocumentdescribesfilters,sources,andsinksprovidedbythelibavfilterlibrary.FiltergraphSyntaxFiltersinthesamelinearchainareseparatedbycommas,distinctlinearchainsoffiltersareseparatedbysemicolons.Thepointswherethelin......
  • Spingboot 定时任务与过滤器,拦截器
     在boot环境中,一般来说,要实现定时任务,我们有两中方案,一种是使用Spring自带的定时任务处理器@Scheduled注解,另一种就是使用第三方框架Quartz,SpringBoot源自Spring+SpringMVC,因此天然具备这两个Spring中的定时任务实现策略,当然也支持Quartz1.定时任务@Sched......
  • SpringMVC
    目录SpringMVC概述SpringMVC主要组件SpringMVC和MVC的关系SpringMVC常用注解SpringMVC概述SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分。简化开......
  • Spring Cloud Gateway关键点全局Token过滤器,局部过滤器接口耗时,全链路跟踪TraceId日志
    一.全局Token过滤器在SpringCloudGateway中,实现全局过滤器的目的是对所有进入系统的请求或响应进行统一处理,比如添加日志、鉴权等。下面是如何创建一个全局过滤器的基本步骤:步骤1:创建过滤器类首先,你需要创建一个实现了GlobalFilter接口,创建一个全局token过滤器。@Slf......
  • 深入了解 Java 拦截器与过滤器
    在构建JavaWeb应用程序时,拦截器(Interceptor) 和 过滤器(Filter) 是两个重要的概念。它们在不同阶段拦截和处理HTTP请求和响应,帮助开发者对应用的处理流程进行更精细的控制。虽然它们在表面上看似相似,但拦截器和过滤器有着不同的架构设计和使用场景。本文将详细介绍它们的......
  • SpringMVC
    学习SpringMVC,我们只需要掌握以下3个功能:1.连接的功能︰将用户(浏览器)和Java程序连接起来,也就是访问一个地址能够调用到我们的Spring程序。2.获取参数的功能︰用户访问的时候会带一些参数,在程序中要想办法获取到参数。3.输出数据的功能︰执行了业务逻辑之后,要把程序执行的结果返回......
  • Gateway全局过滤器
    目录全局过滤器GlobalFilter案例定义全局过滤器,拦截并判断用户身份需求步骤自定义过滤器运行效果总结全局过滤器GlobalFilter全局过滤器的作用也是处理一切进入网关的请求和微服务响应,与GatewayFilter的作用一样。区别在于GatewayFilter通过配置定义,处理逻辑是......
  • Gateway过滤器执行顺序以及跨域问题
    执行顺序请求进入网关会碰到三类过滤器:当前路由的过滤器、DefaultFilter、GlobalFilter请求路由后,会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链(集合)中,排序后依次执行每个过滤器每一个过滤器都必须指定一个int类型的order值,order值越小,优先级越高,执......
  • 过滤器拦截器拦截了request后,controller的@RequestBody 无法获取request内容,报错 Requ
    SpringMVC的拦截器、过滤器、Controller之间的关系 众所周知所有的post请求中的body参数是已流形式存在的,而流数据只能读取一次(为啥看这里),如果在拦截器和过滤器中需要对post参数进行处理的话,就会报Requiredrequestbodyismissing异常。既然知道原因,那只要能将流保存起来......
  • 过滤器和拦截器的区别是什么?
    首先,过滤器和拦截器都可以在请求的过程中插入一手,也可以进行拦腰截断。请求过程:当一个请求进来,先交给Web服务器提供的过滤器,来到Servlet,同时会有一个叫做DispatcherServlet的Servlet进行执行,在DispatcherServlet中就会调用我们的拦截器,再由DispatcherServlet分发给对应的Contro......