Spring MVC拦截器的配置和使用

配置拦截器

在web工厂中通过interceptors标签配置

配置servlet.xml主配文件:

Spring MVC拦截器的配置和使用
默认拦截所有请求,可以使用interceptor标签拦截指定请求

定义拦截器

方法Ⅰ:实现HandlerInterceptor接口

拦截器类:

  • 必须实现HandlerInterceptor接口;
  • 实现接口中的三个方法:preHandle、postHandle、afterCompletion

Spring MVC拦截器的配置和使用

方法Ⅱ:继承适配器

适配器HandlerInterceptorAdapter空实现了HandlerInterceptor接口中的所有方法,因此,只需重写需要使用的方法

Spring MVC拦截器的配置和使用

拦截器的执行流程

Spring MVC请求分派器拿到请求:

  1. 先将请求交给对应的拦截器,自动执行拦截器对象中的preHandle方法
  2. preHandle方法的返回值类型为boolean类型,如果返回false,请求终止。如果返回true,请求下传,传给下一个拦截器,最后将请求传给对应的后端控制器;

后端控制器返回处理结果和转向信息(ModelAndView):

  1. 调用拦截器的postHandle方法,获取ModelAndView,对结果信息和转向信息做进一步的处理;
  2. 处理完毕后,ModelAndView下传给下一个拦截器,最后将处理结果回传给请求分派器;

视图定位器组合转向信息,视图渲染完毕:

  • 将请求结果传给浏览器之前,调用拦截器的afterCompletion方法,一般用于释放资源。

说明:本文仅用作学习笔记,无其他用途,如有冒犯可联系本人删除