首页 > 编程语言 > SpringMVC拦截器运行原理及配置详解
2020
10-09

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中配置自定义拦截器

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。

编程技巧