Struts學習

Struts2-概述
struts2 是strut的下一代產品,它是1代和webwork的技術基礎的合併,全新的 Struts 2 與 Struts 1 差別巨大,但是相對於 WebWork,Struts 2 的變化很小。
Struts 2並不是一門完全獨立的技術,而是建立在其他 Web 技術之上的一個 MVC 框架。Struts 2 以WebWork 爲核心,採用攔截器的機制來處理用戶的請求,這種設計使得業務邏輯控制器能夠與 Servlet API 完全脫離開,所以 Struts 2 可以理解爲 WebWork 的更新產品。實際上,WebWork 和 Struts 社區已經合二爲一,即現在的 Struts 2 社區。(備註:和Tomcat一樣,它們都是Apache公司的研究成果
Struts的MVC模式
在 Struts 2 中,
V:視圖層對應視圖組件,通常是指 JSP 頁面,也適用於 Velocity、FreeMarker等其他視圖顯示技術。
M:模型層對應業務邏輯組件,它通常用於實現業務邏輯及與底層數據庫的交互等。
C:系統核心控制器爲 Struts 2 框架提供的 StrutsPrepareAndExecuteFilter,它是一個起過濾作用的類,能根據請求自動調用相應的 Action。而業務邏輯控制器是開發者自定義的一系列Action,在 Action 中負責調用相應的業務邏輯組件,來完成調用處理。
所以,我們一般把Action歸爲模型層,但是它是屬於模型層的控制器

這裏寫圖片描述
線程安全的工作模式
每次請求都會創建一個新的Action對象,與Servlet是不同的
Servlet的生命週期–單例模式
Action:每次發送一個請求,就會創建一個新的Action 多例
實現Action的三種方式 第一種是普通類,public String execute(){} 第二種是implements Action 第三種是extends ActionSupport