Struts 基於 Model 2 實現,Model 2 是經典 MVC(Model、View、Control)模式在 Web 應用的變體,主要因 HTTP 無狀態性而演變。目的同 MVC:利用控制器分離模型與視圖,達到鬆散耦合,提升靈活性、復用性與可維護性。多數情況下可視 Model 2 與 MVC 等同。


ActionServlet(一 Servlet)於 Web 容器啟動時自動載入,讀取 struts-config.xml,初始化各模組的 ModuleConfig 物件,將 Action 映射、表單 Bean、轉向等配置儲存於對應集合。初始化完成後,攔截所有以 .do 結尾的 URL 請求。ActionConfig 找出對應的 Action 子類;若無對應 Action,直接轉發至 JSP 或靜態頁。若有對應 Action 且擁有 ActionForm,實例化並填充 HTTP 請求資料,存入 Servlet Context(request 或 session),供其他 Action 或 JSP 使用。可選呼叫 validate() 進行資料驗證,若 ActionErrors 不為空,直接返回入口頁面。execute() 方法。execute 方法,負責執行業務邏輯及必要資料檢查,完成後返回 ActionForward 物件供控制器轉發。ActionForward 將請求轉發至目標響應物件(通常為 JSP)。
理解從 HTTP 請求經 Struts 框架到 HTTP 響應的完整流程,是掌握 Struts 的關鍵。