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

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

时间:2024-10-17 21:44:26浏览次数:16  
标签:拦截器 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

相关文章

  • Spingboot 定时任务与过滤器,拦截器
     在boot环境中,一般来说,要实现定时任务,我们有两中方案,一种是使用Spring自带的定时任务处理器@Scheduled注解,另一种就是使用第三方框架Quartz,SpringBoot源自Spring+SpringMVC,因此天然具备这两个Spring中的定时任务实现策略,当然也支持Quartz1.定时任务@Sched......
  • Spring Cloud Gateway关键点全局Token过滤器,局部过滤器接口耗时,全链路跟踪TraceId日志
    一.全局Token过滤器在SpringCloudGateway中,实现全局过滤器的目的是对所有进入系统的请求或响应进行统一处理,比如添加日志、鉴权等。下面是如何创建一个全局过滤器的基本步骤:步骤1:创建过滤器类首先,你需要创建一个实现了GlobalFilter接口,创建一个全局token过滤器。@Slf......
  • Gateway全局过滤器
    目录全局过滤器GlobalFilter案例定义全局过滤器,拦截并判断用户身份需求步骤自定义过滤器运行效果总结全局过滤器GlobalFilter全局过滤器的作用也是处理一切进入网关的请求和微服务响应,与GatewayFilter的作用一样。区别在于GatewayFilter通过配置定义,处理逻辑是......
  • Gateway过滤器执行顺序以及跨域问题
    执行顺序请求进入网关会碰到三类过滤器:当前路由的过滤器、DefaultFilter、GlobalFilter请求路由后,会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链(集合)中,排序后依次执行每个过滤器每一个过滤器都必须指定一个int类型的order值,order值越小,优先级越高,执......
  • 过滤器和拦截器的区别是什么?
    首先,过滤器和拦截器都可以在请求的过程中插入一手,也可以进行拦腰截断。请求过程:当一个请求进来,先交给Web服务器提供的过滤器,来到Servlet,同时会有一个叫做DispatcherServlet的Servlet进行执行,在DispatcherServlet中就会调用我们的拦截器,再由DispatcherServlet分发给对应的Contro......