导航

Spring MVC 拦截器

Posted on 2017-10-10 19:43  耍流氓的兔兔  阅读(198)  评论(0编辑  收藏  举报

 

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>