SpringMVC拦截器:
创建拦截器必须声明HandlerInterceptor接口
public class MyInterceptor1 implements HandlerInterceptor{ /** * 在执行 Handler 之前执行,用于身份校验,权限认证 * * 返回 true 表示放行 * 返回 false 表示拦截 */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("preHandle1"); System.out.println(request.getRequestURL()); return true; } /** * 在执行Handler时返回ModelAndView之前执行 * 如果想要向页面提供一些公共数据或者一些公用的配置信息,可以考虑使用这里的modelAndView对象 */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("postHandle1"); } /** * 在执行Handler之后执行,用于日志,系统性能分析 */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("afterCompletion1"); } }
<!-- 配置拦截器 --> <mvc:interceptors> <!-- 多个拦截器顺序执行 --> <mvc:interceptor>
<!-- 拦截所有请求 --> <mvc:mapping path="/**" />
<!-- 排除静态资源 --> <mvc:exclude-mapping path="/lib/**"/> <bean class="com.roxy.springmvc.interceptor.MyInterceptor1"></bean> </mvc:interceptor> <mvc:interceptor> <mvc:mapping path="/**" /> <mvc:exclude-mapping path="/lib/**"/> <bean class="com.roxy.springmvc.interceptor.MyInterceptor2"></bean> </mvc:interceptor> </mvc:interceptors>