簡單介紹:
Struts框架是流行廣泛的一個MVC開源實現,而Struts2是Struts框架的新一代產品,是將Struts1和WebWork兩種技術進行兼容、合併的全新的MVC框架。Struts2框架充分發揮了Struts1和WebWork這兩種技術的優勢,拋棄原來Struts1的缺點,使得Web開發更加容易。
Struts2是以WebWork爲核心,採用攔截器機制對用戶的請求進行處理,是webwork的升級
使用優點:
無需與Servlet api整合,更易測試
優雅請求參數封裝
靈活的視圖技術
豐富的表達式語言
機動,靈活,簡單的配置
線程安全的控制器(Action)相對struts1而言
霸氣的插件:和其他框架鏈接的插口
框架架構:
內建多個攔截器攔截棧, Struts2是以WebWork爲核心,採用攔截器機制對用戶的請求進行處理
使用步驟:
步驟:
(1)客戶端瀏覽器發送HTTP請求到Web應用
(2)Web容器將請求傳遞到標準ActionContextCleanUp過濾器以消除屬性,而不讓後續過濾器清楚,以延長Action中屬性(包括自定義屬性)的生命週期。ActionContextCleanUp作用
(3)再經過如stimesh等其他過濾器後,請求傳遞給StrutsPrepareAndExecuteFilter核心控制器
(4)StrutsPrepareAndExecuteFilter調用ActionMapper(Action映射器)確定調用哪個Action,再將控制權轉移給ActionProxy代理
(5)ActionProxy代理調用配置管理器ConfigurationManager從配置文件struts.xml中讀取配置信息,然後創建ActionInvocation對象
(6)ActionInvocation在調用攔截器鏈中的攔截器後再調用Action,根據Action返回的結果字符串查找對應的Result
(7)Result調用視圖模板,再以相反的順序執行攔截器鏈,返回HTTP響應
(8)HTTP響應以相反的順序返回給核心控制器StrutsPrepareAndExecuteFilter以及其他web.xml中定義的過濾器,最終返回給客戶端。
目錄