Struts2架構和訪問流程

Struts2架構

這裏寫圖片描述

  1. 所有的請求先經過strutsPrepareAndExecuteFilter核心過濾器,核心過濾器把請求交給ActionMapper。

  2. ActionMapper判斷每次請求的目的地,請求要到達的Action和Method等信息,然後把這些信息封裝到ActionMapping對象,返回給核心過濾器Filter。

  3. Filter根據Actionmapping對象,判斷本次請求是否需要Struts2處理。需要處理,把ActionMapping轉交給ActionProxy。

  4. ActionProxy拿到ActionMapping先在ConfigurationManager(配置文件管理器)中讀取配置文件src/struts.xml。然後把讀取信息返回給ActionProxy。

  5. ActionProxy創建一個Action和Interceptors集合交給ActionInvocation。

  6. ActionInvocation遞歸調用20個默認的攔截器,如果所有攔截器都放行再調用Action,返回執行結果String給配置文件,把這個結果交給相應的Result,Result根據結果轉發或者重定向到action或jsp頁面。然後再執行攔截器的後處理方法,最終響應到瀏覽器。如果攔截器不放行,則跳過Action直接到達Result處理。

.
.
.

查看源碼
這裏寫圖片描述


Struts2本質就是攔截器:

  1. 攔截器幫我們封裝了很多功能。
  2. 可插拔式設計,可以自定義。
  3. AOP思想,縱向重複代碼橫向抽取。

訪問流程

這裏寫圖片描述

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