springboot 过滤器、拦截器、消息转换器、切片执行顺序 及区别

request 请求 -->
1:过滤器 doFilter
2:拦截器 preHandle
3:消息转换器 readInternal
4:AOP before
5:Controller
6:Response
7:AOP after
8:消息转换器 writeInternal
9:拦截器 postHandle

过滤器:
可以拿到原始的Http请求和响应的信息,只能获得其请求和响应携带的参数,但是却拿不到真正处理请求的控制器和方法的信息
拦截器: 可以拿到原始Http请求和响应的信息 也可拿到请求的方法的信息
切片 :可拿到请求的方法的值 ,拿不到原始的Http的请求和响应的对象)

拦截器与过滤器的区别 :
拦截器是基于java的反射机制的,而过滤器是基于函数回调。
拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。

原文地址:https://www.cnblogs.com/panchanggui/p/12290192.html

时间: 2024-10-11 04:31:29

springboot 过滤器、拦截器、消息转换器、切片执行顺序 及区别的相关文章

SpringBoot 过滤器, 拦截器, 监听器 对比及使用场景

1. 过滤器 (实现 javax.servlet.Filter 接口) ① 过滤器是在web应用启动的时候初始化一次, 在web应用停止的时候销毁. ② 可以对请求的URL进行过滤, 对敏感词过滤, ③ 挡在拦截器的外层 ④ Filter 是 Servlet 规范的一部分 2. 拦截器 (实现 org.springframework.web.servlet.HandlerInterceptor 接口) ① 不依赖Spring容器, 可以使用 Spring 容器管理的Bean ② 拦截器通过动态代

自定义拦截器和Filter的执行顺序

自定义拦截器 Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必 须实现HandlerInterceptor接口 1.自定义实现类实现 HandlerInterceptor接口 2.在springmvc配置文件中配置相对应的拦截器 <mvc:interceptors> <!--配置自定义拦截器 ,所有的路径都拦截 --> <bean class="com.neuedu.springmvc.filter.My

拦截器(Interceptor)和过滤器(Filter)的执行顺序和区别

1.过滤器(Filter) 首先说一下Filter的使用地方,我们在配置web.xml时,总会配置下面一段设置字符编码,不然会导致乱码问题: <filter>   <filter-name>encoding</filter-name>   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>   <init-param> 

【springboot】过滤器、监听器、拦截器,Aspect切片

转自: https://blog.csdn.net/cp026la/article/details/86501019 简介: 本章介绍拦截器.过滤器.切片对请求拦截的使用与区别,以及监听器在 springboot1.5 中的简单使用 过滤器.拦截器.切片拦截请求的对比: 相同点: 都可以对请求进行拦截.不同点:1.过滤器对请求的拦截只能获取到原始的Request 和 Response 的信息.2.拦截器对请求的拦截可以获取原始的Request.Response和所有的controller及方法名

0002 - Spring MVC 拦截器源码简析:拦截器加载与执行

1.概述 Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以进行权限验证.记录请求信息的日志.判断用户是否登录等. 2.简单示例 2.1.继承 HandlerInterceptorAdapter 抽象类实现一个拦截器.代码如下: public class DemoInterceptor extends HandlerInterceptorAdapter { @Override    pu

springboot+springmvc拦截器做登录拦截

springboot+springmvc拦截器做登录拦截 LoginInterceptor 实现 HandlerInterceptor 接口,自定义拦截器处理方法 LoginConfiguration 实现 WebMvcConfigurer 接口,注册拦截器 ResourceBundle 加载 properties文件数据,配置不进行拦截的路径 LoginInterceptor package com.ytkj.smart_sand.system.interceptor; import com.

过滤器Filter_03_多个Filter的执行顺序

过滤器Filter_03_多个Filter的执行顺序 学习了:https://www.cnblogs.com/HigginCui/p/5772514.html 按照在web.xml中的顺序进行filter的调用: 原文地址:https://www.cnblogs.com/stono/p/9041038.html

27.Spring-Boot中拦截器中静态资源的处理(踩过坑)以及Spring mvc configuring拓展介绍

一.springboot中对静态资源的处理 默认情况下,springboot提供存放放置静态资源的文件夹: /static /public /resources /META-INF/resources 对于maven项目即就是存在src/main/resources 文件夹下. ? 如图:static文件夹就是springboot中默认的文件夹 在页面中这样写路径<link href="themes/bootstrap.min.css" rel="stylesheet&

springboot实现拦截器

你首先需要一个搭建好的springboot项目,具体怎么搭建我还没有相应的随笔可以交给你,可以自己上网上看一下,学习一下,之后我要是总结出来的话,这里面我会通知的 首先这个项目的目录结构是这样子的 首先在Controller里面写上你想要展示的内容 package com.example.springBoot; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web