從一個高水平角度看,Struts2 是一個MVC拉動的(或MVC2)框架,Struts2 的模型-視圖-控制器模式是通過以下五個核心部分進行實現(xiàn)的:
- 操作(Actions)
- 攔截器(Interceptors)
- 值棧(Value Stack)/OGNL
- 結果(Result)/結果類型
- 視圖技術
而Struts2 與傳統(tǒng)的MVC框架略有不同,因為它由Action扮演模型的角色,而不是控制器,雖然這樣會有一些重疊。
上圖描述了Struts2 高級系統(tǒng)架構下的模型、視圖及控制器??刂破魇峭ㄟ^Struts2 分派servlet過濾器以及攔截器進行實現(xiàn),模型是通過Actions進行實現(xiàn),而視圖則是結果類型和結果的結合。值棧和OGNL提供共同的路線、鏈接以及與其他組件之間的集成。
除了上述部分,還有許多組件相關的信息。web應用程序組件、Actions組件、攔截器組件、結果組件等等。
這些是Struts2 MVC模式的體系結構概述,在隨后的章節(jié)中,我們將詳細了解各個部分。
請求生命周期
通過上述圖片的描述,我們可以依照下面幾點解釋在Struts2 中用戶的請求生命周期:
- 用戶發(fā)送一個資源需求的請求到服務器(例如:頁面)。
- 核心控制器查看請求后確定適當?shù)膭幼鳌?/li>
- 使用驗證、文件上傳等配置攔截器功能。
- 執(zhí)行選擇的動作來完成請求的操作。
- 另外,如果需要的話,配置的攔截器可做任何后期處理。
- 最后,由視圖顯示結果并返回給用戶。
更多建議: