【Struts2基礎】——核心與工作原理

簡介


       Struts2是Struts的下一代產品。實際上Struts1.x與Struts2並沒有什麼血緣關係,Struts2的體系結構與Struts1的體系結構差別巨大。Struts2以WebWork爲核心,採用攔截器的機制來處理用戶的請求,這樣的設計也使得業務邏輯控制器能夠與ServletAPI完全脫離開。


       Struts2是Struts社區和WebWork社區的共同成果,可以說Struts2是WebWork的升級版,它採用的是WebWork的核心。Struts2雖然面世晚,但並不能決定它是一款不成熟的產品,相反,構建在WebWork基礎之上的Struts2,是一個運行穩定、性能優異、設計成熟的WEB框架。


體系結構




工作機制


從上圖可以看出,一個請求在Struts2框架中的處理大致分爲以下幾個步驟:


1、客戶端初始化一個指向Servlet容器(如Tomcat)的請求

2、這個請求經過一系列的過濾器(Filter)

3、接着FilterDispatcher被調用,FilterDispatcher詢問ActionMapper來決定這個請求是否需要調用某個Action

4、如果ActionMapper決定需要調用某個Action,FilterDispatcher把請求的處理交給ActionProxy

5、ActionProxy通過Configuration Manager詢問框架的配置文件,找到需要調用的Action類

6、ActionProxy創建一個ActionInvocation的實例

7、ActionInvocation實例使用命名模式來調用,在調用Action的過程前後,涉及到相關攔截器(Intercepter)的調用

8、一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應的返回結果。

9、ActionProxy取得轉向的視圖名稱對象Result完成轉向

10、生成response對象完成本次請求




發佈了122 篇原創文章 · 獲贊 28 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章