Spring MVC拦截器的配置和使用
配置拦截器
在web工厂中通过interceptors标签配置
配置servlet.xml主配文件:
默认拦截所有请求,可以使用interceptor标签拦截指定请求
定义拦截器
方法Ⅰ:实现HandlerInterceptor接口
拦截器类:
- 必须实现HandlerInterceptor接口;
- 实现接口中的三个方法:preHandle、postHandle、afterCompletion
方法Ⅱ:继承适配器
适配器HandlerInterceptorAdapter空实现了HandlerInterceptor接口中的所有方法,因此,只需重写需要使用的方法
拦截器的执行流程
Spring MVC请求分派器拿到请求:
- 先将请求交给对应的拦截器,自动执行拦截器对象中的preHandle方法;
- preHandle方法的返回值类型为boolean类型,如果返回false,请求终止。如果返回true,请求下传,传给下一个拦截器,最后将请求传给对应的后端控制器;
后端控制器返回处理结果和转向信息(ModelAndView):
- 调用拦截器的postHandle方法,获取ModelAndView,对结果信息和转向信息做进一步的处理;
- 处理完毕后,ModelAndView下传给下一个拦截器,最后将处理结果回传给请求分派器;
视图定位器组合转向信息,视图渲染完毕:
- 将请求结果传给浏览器之前,调用拦截器的afterCompletion方法,一般用于释放资源。
说明:本文仅用作学习笔记,无其他用途,如有冒犯可联系本人删除