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),將結果頁面展現給用戶。