Filter, Interceptor, Validator, Aop 执行顺序

顺序如下

1 filter
2.1 interceptor-pre
3 valid参数校验
4.1 aop-pre
5 业务方法
4.2 aop-post(校验失败,异常时_不执行)
2.2 interceptor-post(校验失败,异常时_不执行)
6 全局异常捕获
2.3 interceptor-afterCompletion(校验失败,异常时_任然执行)
============================================

filter 过滤器 https://www.cnblogs.com/huanzi-qch/p/11239167.html
filter: post拿不到参数? POST的请求是在请求体body中,而POST请求中的body参数是以流形式存在的 https://blog.csdn.net/qq_40866897/article/details/111404480

Interceptor 拦截器 https://blog.csdn.net/worilb/article/details/114194446

https://www.cnblogs.com/eoooxy/p/6566347.html
  ①拦截器是基于Java的反射机制的,而过滤器是基于函数回调。
  ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
  ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
  ④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
  ⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
  ⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。
===================
WebRequestInterceptor与HandlerInterceptor的异同?https://www.cnblogs.com/zhangww/p/13596039.html

WebRequestInterceptor的入参WebRequest是包装了HttpServletRequest 和HttpServletResponse的,通过WebRequest获取Request中的信息更简便。
2.WebRequestInterceptor的preHandle是没有返回值的,说明该方法中的逻辑并不影响后续的方法执行,所以这个接口实现就是为了获取Request中的信息,或者预设一些参数供后续流程使用。
3.HandlerInterceptor的功能更强大也更基础,可以在preHandle方法中就直接拒绝请求进入controller方法。

————————————————
版权声明:本文为CSDN博主「zx1323」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zx1323/article/details/116999582

posted @ 2022-09-09 13:32  1156740846  阅读(129)  评论(0编辑  收藏  举报