
早期 Web 開發常在 JSP/ASP 中嵌入 SQL,適合小系統但維護/重用困難。改良版為每張表建立類封裝 SQL,實現語句封裝與表級重用,但缺乏邏輯層抽象,多表操作仍感吃力。


傳統 MVC 適用於單用戶、數據量小、模型駐留內存的工具軟件 (CASE/CAD)。Web 應用特徵 (數據量大、多用戶並發、多模型實例) 使其不再適用。

在 MVC 基礎上:Model 不再保持屬性狀態,新增 Data 層 連接數據庫。Model 成為無狀態邏輯處理器,Data 層負責持久化,適配 Web 多用戶並發場景。

JICPD (JSP_IC_COMMAND_PO_DATA) 有機結合 JSP、Servlet、JavaBean、JDBC:
| 組件 | 技術 | 職責 |
|---|---|---|
| JSP | JSP/HTML/Applet/JavaScript | 用戶界面:所有輸入輸出、動態生成 HTML 響應 |
| IC (Interaction Controller) | Servlet | 樞紐層:解析 HTTP 請求→分發 Command、接收 Command 結果→轉發特定 JSP 響應 |
| Command | JavaBean | 業務邏輯核心:封裝穩定業務規則、響應 IC 調用、協調 PO 操作數據 |
| PO (Persistent Object) | 特殊 Java Class | 應用與數據庫橋梁:封裝 Command 所需基本數據庫操作 |
| DataBean | JavaBean | 參數傳遞容器:抽象模塊間傳遞的參數為對象 |

JICPD 缺陷:Command 與 DataBean 分離,開發者無法看到完整對象模型。好的 OO 模型應同時指導數據庫設計、Command 組織、數據與邏輯關係表達。
改進:增加 Model 層,將 Command 與 DataBean 封裝其中,形成 JIMPD (JSP_IC_MODEL_PO_DATA) 架構,補齊 OO 完整性。
| MVCD 概念層 | JICPD 實現 | JIMPD 實現 |
|---|---|---|
| View | JSP | JSP |
| Controller | IC (Servlet) | IC (Servlet) |
| Model | Command (JavaBean) | Model (封裝 Command + DataBean) |
| Data | PO + DataBean | PO + DataBean |
從 JICPD 到 JIMPD,體現了將技術實現向領域模型對齊的架構演進思路。