Struts2攔截器

Struts2核心功能的實現就是通過攔截器實現的。
攔截器:Struts2大多數核心功能是通過攔截器實現的,每個攔截器完成某項功能, 例:數據轉移、類型轉換、數據校驗。攔截器方法在Action執行之前或者Action執行之後執行去做一些處理操作,例如權限校驗等。
攔截器棧:
這裏寫圖片描述


攔截器工作原理:
這裏寫圖片描述
攔截器的執行過程是一個遞歸的過程,當Struts在執行一個action的時候,首先會在執行action之前執行一些攔截器,多個攔截器依次執行,例,首先執行Interceptor1的攔截方法,做一些處理操作,再次執行Interceptor2等。當所有攔截器執行完後,會執行action,調用action中的業務處理方法進行業務處理,該方法完成後返回一個字符串(Result),來進行視圖的匹配,而這個結果現在並沒有真正響應到客戶端,因爲在action執行完後還會需要將之前執行的攔截器反向再執行一遍,即執行Interceptor2,完成後再執行Interceptor1,當把所有攔截器反向執行完之後,此時纔會進行真正的響應。這實際就是一個遞歸的過程。

引申:web中的過濾器執行流程與攔截器工作原理幾乎一樣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章