拦截器概述
Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。
要使用Spring MVC中的拦截器,就需要对拦截器类进行定义和配置。
定义。
1.通过实现HandlerInterceptor接口,或继承HandlerInterceptor接口的实现类(如HandlerInterceptorAdapter)来定义。
2.通过实现WebRequestInterceptor接口,或继承WebRequestInterceptor接口的实现类来定义。
拦截器的配置
开发拦截器就像开发servlet或者filter一样,都需要在配置文件进行配置,配置代码如下:
-配置自定义的拦截器-
mvc:interceptors
拦截器1
mvc:interceptor
配置拦截器的作用路径
<mvc:mapping path= “/user/"/>拦截的路径规则
定义在<mvc:interceptor下面的表示匹配指定路径的请求才进行拦截
</mvc:interceptor>
<拦截器2
mvc:interceptor
<mvc:mapping path="/user/”/>拦截的路径规则
</mvc:interceptor>
</mvc:interceptors>
拦截器的执行流程
1.程序先执行preHandle()方法,如果该方法的返回值为true,则程序会继续向下执行处理器中的方法,否则将不再向下执行。
2.在业务处理器(即控制器Controller类)处理完请求后,会执行postHandle()方法,然后会通过DispatcherServlet向客户端返回响应。
3.在DispatcherServlet处理完请求后,才会执行afterCompletion()方法。