J2EE Web 架構經歷了 Model 1(JSP 大雜燴)到 Model 2(MVC)的蛻變。本文系統梳理四層模型、架構基線價值,並深度剖析 Struts、JATO、JSF、WAF 四大主流框架的 MVC 實現機制、優缺點與改進建議,為技術選型提供決策參考。
| 框架 | 核心特色 | 優勢 | 劣勢 | 改進建議 |
|---|---|---|---|---|
| Struts | ActionServlet 前端控制器 + ActionForm + struts-config.xml | 開源成熟、大型應用支援好、集中導航定義 | 非標準、Taglib 複雜、ActionForm 與 HTML Form 緊耦合 | 引入 XML 數據交換,鬆耦合 ActionForm |
| JATO | iPlanet 血統、頁面為中心、事件驅動、ViewBean 階層 | 適用中超大型、RAD 開發體驗、核心/組件/擴展分層 | 非標準、無工具支援、無集中導航定義 | XML 數據傳遞 + 集中導航 |
| JSF | UI 組件模型、狀態管理、事件路由、導航規則、標籤庫 | 標準規範、工具支援佳、專注 UI 層、可整合 Struts/JATO | 發布較晚(2002 年底)、僅涵蓋表現層 | 作為 UI 層補充融入現有架構 |
| WAF | Sun 藍皮書範例、ScreenDefinition/Mapping 雙 XML、雙 Servlet 控制 | 導航明確、擴展空間大、HTTP/EJB Action 雙層處理適合多步驟業務 | 源碼混亂、無正式 Model、View 概念弱、無 Model-to-View | 作為框架骨幹,自行注入 XML 數據交換層 |
大型專案優先 Struts/JATO;追求標準與工具鏈选 JSF;需高度定制且團隊能力強可基於 WAF 二次開發。核心原則:架構服務於業務,切勿為框架而框架。