标签:
本文中使用的是实现 HandlerInterceptor接口
1.自定义的拦截器:
/** * 拦截器 */ public class CustomerInterceptor implements HandlerInterceptor{ /** * HandlerInterceptor接口中定义了三个方法 * 执行顺序: * 1.preHandle: * 当请求过来时,会优先进入preHandle这个方法如果return true 请求放行,如果return false 请求立即终止 * 2.执行要拦截的controller * 3.postHandle: * 当preHandle方法放回为true,且controller执行完成后会进入postHandle这个方法 * 4.afterCompletion: * 当postHandle执行完成之后,执行afterCompletion方法 */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("----开始拦截----"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { if(modelAndView!=null){ modelAndView.addObject("date", new Date()); } System.out.println("------拦截后处理1-----"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("------拦截后处理2-----"); } }
2.springMvc配置文件中添加如下的配置:
<mvc:interceptor> 可以配置多个
当配置多个时,按照 <mvc:interceptor> 的配置顺序,先执行第一个拦截器的preHandle,等所有的 preHandle 执行完后,
在按照 <mvc:interceptor> 的配置顺序,先执行最后一个拦截器的 postHandle
<!-- 拦截器配置 --> <bean id="customerInterceptor" class="zpark.interceptor.CustomerInterceptor"/> <!-- 把拦截器加入到springMvc拦截体系中 --> <mvc:interceptors> <mvc:interceptor> <!-- 要拦截的路径 --> <mvc:mapping path="/json/**"/> <!-- 引用自定义的拦截器 --> <ref bean="customerInterceptor"/> </mvc:interceptor> </mvc:interceptors>
标签:
原文地址:http://www.cnblogs.com/liuconglin/p/5808531.html