架構基線的價值
確立架構基線能鎖定技術選型、精準提訓練需求、清晰角色分工、加速錯誤定位、奠定擴展根基。演進歷經三階段:
Model 1:JSP 大雜燴
單一 JSP 承攬請求參數、業務邏輯、Session 管理、頁面渲染。簡單但業務與表現耦合,大型專案不可維護。
Model 2:MVC 獨立控制器
引入前端控制器集中分派請求、安全驗證、日誌、視圖選擇。JSP/Servlet 專注渲染,業務邏輯下沉 JavaBean/EJB。奠定框架雛形。
多層架構:Client / Web / EJB / EIS 四層
Web 層聚焦表現,EJB 層提供事務/安全/訊息服務,EIS 層對接資料庫/舊系統。框架主要集中在 Web 層規範開發。
四大主流框架深度剖析
Apache Struts:開源 MVC 事實標準
- 核心:
ActionServlet 前端控制器 + struts-config.xml 映射 + ActionForm 表單資料綁定 + 標籤庫。
- MVC 映射:Action(控制)+ JavaBean(模型:Form/業務/狀態)+ JSP+標籤庫(視圖)。
- 優點:成熟、大型應用驗證、集中導航、開源社群活躍。
- 缺點:非官方標準、工具支援弱、標籤庫複雜、ActionForm 與 HTML Form 緊耦合。
- 改進建議:ActionForm 改為 XML 資料交換,鬆綁結構變更。
JATO (iPlanet):元件化、頁面中心、企業級就緒
- 三層架構:核心介面/協議、高層復用元件(水平/垂直)、擴展層對接非 J2EE 環境。
- 優點:適用範圍廣(介面+現成元件)、RAD 風格(頁面中心/事件)、大型應用支援好。
- 缺點:非標準、缺工具支援、無集中導航定義。
- 建議:導入 XML 資料傳遞 + 集中導航。
JSF (JavaServer Faces):標準化元件框架
- API + 標籤庫,專注 UI 元件狀態管理、事件、驗證、導航、國際化。
- 可作為 Struts/JATO 的 UI 層補充。規格 2002 年底發布,工具支援跟進中。
WAF (Web Application Framework):Sun 藍圖參考實作
- 雙 XML 配置:
Screendefinition.xml(畫面定義)+ Mapping.xml(動作→畫面流)。
- 雙 Servlet:
TemplateServlet(渲染)+ MainServlet(動作處理)。
- 兩級動作:
HTTPAction(Request 綁定)→ EJBAction(脫離 Request,支援跨頁面會話式業務,如購物車)。
- 優點:導航明確、擴展空間大。缺點:原始碼混亂、無正式 Model 層、無 Model-to-View 定義。
選型決策矩陣
| 專案屬性 | 推薦 |
| 團隊熟悉 Struts、維護既有系統 | Struts |
| 新專案、重視元件復用、標準化 | JSF 2.x+ |
| 企業級、需 RAD、頁面中心、大型團隊 | JATO (若仍維護) |
| 輕量、自訂框架骨架、靈活擴展 | WAF 風格自研 |