springMVC 攔截器源碼解析

來源:互聯網
上載者:User

標籤:dha   tin   tran   適配器   逆序   response   app   mvc   process   

直接上源碼

//doDispatch方法  //1、處理器攔截器的預先處理(正序執行)  HandlerInterceptor[] interceptors = mappedHandler.getInterceptors();  if (interceptors != null) {      for (int i = 0; i < interceptors.length; i++) {      HandlerInterceptor interceptor = interceptors[i];          if (!interceptor.preHandle(processedRequest, response, mappedHandler.getHandler())) {              //1.1、失敗時觸發afterCompletion的調用              triggerAfterCompletion(mappedHandler, interceptorIndex, processedRequest, response, null);              return;          }          interceptorIndex = i;//1.2、記錄當前預先處理成功的索引  }  }  //2、處理器適配器調用我們的處理器  mv = ha.handle(processedRequest, response, mappedHandler.getHandler());  //當我們返回null或沒有返回邏輯視圖名時的預設視圖名翻譯(詳解4.15.5 RequestToViewNameTranslator)  if (mv != null && !mv.hasView()) {      mv.setViewName(getDefaultViewName(request));  }  //3、處理器攔截器的後處理(逆序)  if (interceptors != null) {  for (int i = interceptors.length - 1; i >= 0; i--) {        HandlerInterceptor interceptor = interceptors[i];        interceptor.postHandle(processedRequest, response, mappedHandler.getHandler(), mv);  }  }  //4、視圖的渲染  if (mv != null && !mv.wasCleared()) {  render(mv, processedRequest, response);      if (errorView) {          WebUtils.clearErrorRequestAttributes(request);  }  //5、觸發整個請求處理完畢回調方法afterCompletion  triggerAfterCompletion(mappedHandler, interceptorIndex, processedRequest, response, null); 

 

springMVC 攔截器源碼解析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.