springmvc的自定义拦截器

    1. springmvc的自定义拦截器的介绍
  1. (1)需要实现一个接口 HandlerInterceptor.
  2. (2)有三个方法需要我们重写

preHandler(), 在目标方法执行之前被调用

postHandle(): 在目标方法执行后在被调用

afterCompletion(): 在所有的任务完毕后,再调用,比如页面渲染完毕后在调用.

springmvc的自定义拦截器

  • springmvc配置文件中,配置该自定义拦截器
  • springmvc的自定义拦截器

 

springmvc的自定义拦截器

springmvc的自定义拦截器

 

    1. 自定义拦截器的细节1-如果pre 方法  返回 false, 则不会再执行目标方法.
    2. 实际上可以在此响应请求返回给页面
    3. springmvc的自定义拦截器
    1. 细节2-postHandle 在目标方法被执行之后执行. 可以在方法中访问到目标方法返回的 ModelAndView 对象
    2. springmvc的自定义拦截器
    1. 细节3-可以在配置拦截器时,指定该拦截器对某个请求生效(某个目标方法),其它请求不生效
    2. springmvc的自定义拦截器
    3. 重新配置我们的自定义拦截器
    4. springmvc的自定义拦截器

      ? <mvc:exclude-mapping> 标签使用?

    5. 可以使用.
      1. 细节4-如果我们配置了多个(两个)拦截器,那么他的工作流程是如何?

        springmvc的自定义拦截器

springmvc的自定义拦截器

 

springmvc的自定义拦截器

执行的流程原理是拦截器栈.

springmvc的自定义拦截器

  1. 如果在第一个拦截器的preXxx方法返回false ,后面的代码统统不执行了
  2. 如果在第二个拦截器的prexxx方法返回false ,则会执行前一个拦截器的aftefxxx方法,再退出.