Struts學習筆記:Struts Framework工作原理
首先說一下Framework的概念:人們用於解決相同或者相似型別問題的方案
特點:可重用行,可擴充套件性,可收縮性
基於請求響應模式的應用framework的邏輯結構:
1,控制層;
2,業務邏輯層;
3,資料邏輯層
Struts的概念和體系結構:
* 主要採用serlvet和Jsp技術實現的MVC模式
* 很好的一個控制層框架
關於struts其他的介紹就不多說了,先看一張流程圖
1,讀取配置(初始化ModuleConfig物件)
Struts框架總控制器(ActionServlet)是一個Servlet,在web.xml中配置成自動啟動的Servlet,讀取配置檔案(Struts-config.xml)的配置資訊,為不同的Struts模組初始化相應的ModuleConfig物件:
* ActionConfig
* ControlConfig
* FormBeanConfig
* FowardConfig
* MessageResourcesConfig
2,傳送請求
使用者提交表單或呼叫URL向Web應用程式器提交一個請求,請求的資料用Http協議上傳給web伺服器
3,填充Form(例項化,復位,填充資料,校驗,儲存)
(*.do)從ActionConfig中找出對應該請求的Action子類,如沒有對應的Action,控制器直接轉發給JSP或靜態頁面,如有對應的Action且這個Action有一個相應的ActionForm,ActionForm被例項化並用HTTP請求的資料填充其屬性,並且儲存在ServletContext中(request或者session),這樣它們就可以被其它Action物件或者JSP呼叫
4,派發請求
控制器根據配置資訊ActionConfig將請求派發到具體的Action,相應的FormBean一併傳給這個Action的execute()方法
5,處理業務
Action一般只包含一個execute()方法,它負責執行相應的業務邏輯(呼叫其他業務模組),完畢後返回一個ActionForward物件,控制器通過該ActionForward物件來進行轉發工作
6,返回響應
Action根據業務處理的不同結果返回一個目標響應物件給總控制器,該目標響應物件對應一個具體的JSP頁面或者另一個Action
7,查詢響應(翻譯響應)
總控制器根據業務功能Action返回的目標響應物件,找到對應的資源物件,通常是一個具體的JSP頁面
8,響應使用者
目標響應物件將結果展現給使用者目標響應物件(jsp),將結果頁面展現給使用者。