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>