SpringMvc也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义拦截器必须实现HandlerInterceptor接口
-preHandle():这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求request进行处理。如果程序员决定该拦截器对请求进行拦截后还要调用其它的拦截器,或是业务处理 器去进行处理,则返回true;如果程序员决定不再调用其它组件去处理请求,则返回false。
-postHandle():这个方法在业务处理器处理完请求后。
-afterCompletion():这个方法在DispatcheServlet完全处理完请求后被调用,可以在该方法中进行一些资源清理的工作。
<!--配置自定义拦截器--> <mvc:interceptors> <!--拦截所有资源--> <bean class="com.seven.interceptors.FirstInterceptor"></bean> <!--拦截指定的资源,当访问路径为“/xxx”时,才会被该拦截器拦截--> <mvc:interceptor> <mvc:mapping path="/xxx"/> <bean class="com.seven.interceptors.SecondInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>
其流程如下: