首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

JBuilder 2005 Struts 深度體驗:MVC 架構與流程解析

     編輯:Java 程式設計入門

Struts 與 Model 2

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

Struts MVC 實現流程

圖 1 MVC 和 J2EE 技術

圖 2 Struts MVC 實現

  1. 框架初始化:總控制器 ActionServlet(一 Servlet)於 Web 容器啟動時自動載入,讀取 struts-config.xml,初始化各模組的 ModuleConfig 物件,將 Action 映射、表單 Bean、轉向等配置儲存於對應集合。初始化完成後,攔截所有以 .do 結尾的 URL 請求。
  2. 客戶端發送 HTTP 請求:用戶提交表單或呼叫 URL,資料經 HTTP 協定傳送至 Web 伺服器。
  3. 總控制器攔截並實例化 Form Bean:控制器從 ActionConfig 找出對應的 Action 子類;若無對應 Action,直接轉發至 JSP 或靜態頁。若有對應 Action 且擁有 ActionForm,實例化並填充 HTTP 請求資料,存入 Servlet Context(request 或 session),供其他 Action 或 JSP 使用。可選呼叫 validate() 進行資料驗證,若 ActionErrors 不為空,直接返回入口頁面。
  4. 控制器轉交具體 Action 處理:依配置將請求切換至具體 Action,Form Bean 一併傳給 execute() 方法。
  5. Action 執行業務邏輯:Action 通常僅含 execute 方法,負責執行業務邏輯及必要資料檢查,完成後返回 ActionForward 物件供控制器轉發。
  6. Action 返回目標響應物件:根據業務處理結果返回目標響應物件(對應具體 JSP 頁面或另一 Action)。
  7. 總控制器轉發 HTTP 請求:依 ActionForward 將請求轉發至目標響應物件(通常為 JSP)。
  8. 目標響應物件呈現結果:JSP 將結果頁面展現給用戶。

活動圖補充

圖 3 Struts 接受並返回響應的中間過程

理解從 HTTP 請求經 Struts 框架到 HTTP 響應的完整流程,是掌握 Struts 的關鍵。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved