1. 程式人生 > 程式設計 >SpringMVC攔截器執行原理及配置詳解

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,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,Exception ex) throws Exception {
  System.out.println("success.jsp執行後...");
   }
 }

2:在springmvc.xml中配置自定義攔截器

SpringMVC攔截器執行原理及配置詳解

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。