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

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

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。