第九章 spring aop 原始碼解析(二)
這一章來簡單的介紹一下springmvc的高階應用
過濾器(filter):對request請求起到過濾的作用,作用在servlet之前,如果配置為 /* 可以對所有的資源訪問(servlet、js/css靜態資源等)進行過濾處理
***(interceptor):是springmvc、struts等表現層框架自己的,不會攔截jsp/html/css/image的訪問等,只會攔截訪問的控制器⽅法(handler)。從配置的⻆度也能夠總結發現:serlvet、filter、listener是配置在web.xml中的,而interceptor是配置在表現層框架⾃⼰的配置⽂件中的
● 在handler業務邏輯執行之前攔截⼀次
● 在handler邏輯執行完畢但未跳轉頁面之前攔截⼀次
● 在跳轉頁面之後攔截⼀次
自定義***需要實現
handlerinterceptor
介面:需要在配置檔案中註冊一下:public
class
myintercepter01
implements
handlerinterceptor
/** * 會在handler方法業務邏輯執行之後尚未跳轉頁面時執行
* @param request
* @param response
* @param handler
* @param modelandview 封裝了檢視和資料,此時尚未跳轉頁面呢,你可以在這裡針對返回的資料和檢視資訊進行修改
/** * 頁面已經跳轉渲染完畢之後執行
* @param request
* @param response
* @param handler
* @param ex 可以在這裡捕獲異常
}
需要注意的是如果配置多個***,存在執行順序的問題:<
!--攔截所有handler--
>
<
!--配置當前***的url攔截規則,*
*代表當前目錄下及其子目錄下的所有url--
>
"/**"
/>
<
!>
"/demo/**"
/>
="com.grs.study.interceptor.myintercepter01"
/>
<
/mvc:interceptor>
"/**"
/>
="com.grs.study.interceptor.myintercepter02"
/>
<
/mvc:interceptor>
<
/mvc:interceptors>
頁面:
multipart 檔案上傳<
/h2>
SpringMVC 原始碼分析
springmvc之 springmvc的引數匹配原始碼分析 使用 modelattribute 進行引數注入 springmvc方法返回值詳解 原始碼流程 public class implements configuration componentscan com enableaspectjau...
Spring MVC 的原始碼分析 1
總結 外部容器通過 傳給spring mvc初始化,這個初始化我們是以分散重寫初始化邏輯進入spring ioc 初始化,然後在返回到spring mvc自己的上下文九大元件初始化 spring mvc 底層是設計原理是 前端控制模式 我們拿著總結和上面這張圖去看具體實現過程,不然在細節過程,我們很...
Spring MVC 的原始碼分析 2
spring mvc 如何在servlet容器中處理業務的?我們依次檢視原始碼中三個方法的具體內容 1 requestmethod.patch都包含那些列舉型別呢?public enum requestmethod 2 processrequest方法是如何進行分流的呢?3 當所有的method方法...