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的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。

 

posted @ 2020-02-10 11:11  panchanggui  阅读(1263)  评论(0编辑  收藏  举报