SpringMVC中的拦截器

过滤器与拦截器的区别:
过滤器在 url-pattern 中配置了/*之后,可以对所有要访问的资源拦截。
拦截器它是只会拦截访问的controller中的方法,如果访问的是 jsp,html,css,image 或者 js 是不会进行拦 截的

拦截器的处理方案:
1:编写拦截器类

 自定义拦截器
 public class MyInterceptor implements HandlerInterceptor {

/**
 * 预处理方法:controller方法执行前
 *return true 放行,执行下一个拦截器,如果没有,就执行controller中的方法
 *return: false 不放行
 * @param request
 * @param response
 * @param handler
 * @return
 * @throws Exception
 */
@Override
public boolean preHandle(HttpServletRequest request,
                         HttpServletResponse response,
                         Object handler) throws Exception {
    System.out.println("执行前......testInterceptor....");
    return true;
}

/**
 * 后处理方法,controller方法执行后,success.jsp执行之前
 *
 *
 * @param request
 * @param response
 * @param handler
 * @param modelAndView
 * @throws Exception
 */
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    System.out.println("执行后......testInterceptor....");
}


/**
 *
 *success.jsp页面执行后,该方法会执行
 *
 *
 * @param request
 * @param response
 * @param handler
 * @param ex
 * @throws Exception
 */
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    System.out.println("success.jsp执行后...");
      }
  }

2:在springmvc.xml中配置自定义拦截器

posted @ 2020-07-12 22:30  jock_javaEE  阅读(108)  评论(0编辑  收藏  举报