早期 JSP 單獨處理請求、邏輯、顯示(Model 1),導致 Java 代碼與 HTML 混雜,難以維護。MVC 引入 Servlet 作為控制器、JavaBean/EJB 作為模型、JSP 作為視圖,實現關注點分離:
簡單、靜態、流程固定的應用仍可用 Model 1 或純 JSP。
Struts 提供 ActionServlet 作為核心控制器,配合 struts-config.xml 定義 ActionMapping:
Action 類別執行業務邏輯。ActionForm 自動封裝表單資料並驗證。ActionForward 決定下一個視圖(JSP/另一 Action)。開發者專注於撰寫 Action(控制流程)、ActionForm(資料綁定)、業務邏輯類(Model)與 JSP(View),框架自動處理請求分派、資料轉換、國際化、標籤庫等基礎設施。
ActionMapping 對應表(路徑 → Action → Forward)。採用 重構 手法逐步從 Model 1 遷移至 MVC,Martin Fowler 《重構》一書為佳參考。