圖2.3簡單描述了struts的工作原理。它把struts框架處理客戶請求的整個過程細分為八個步驟,下面就來詳細分析這些步驟。
1. 讀取配置(初始化moduleconfig物件)
採用struts框架的web應用,在web應用啟動時就會載入並初始化actionservlet,在actionservlet初始化moduleconfig的時候,呼叫initmoduleconfigfactory()初始化配置工廠,然後由配置工廠通過initmoduleconfig("", config)獲得moduleconfig物件。
通過moduleconfig物件呼叫下列方法去初始化相關模組。
initmodulemessageresources(moduleconfig);
initmoduledatasources(moduleconfig);
initmoduleplugins(moduleconfig);
這些方法的功能就是:容器在載入struts應用程式時,會先載入web.xml中與struts相關的一些配置引數,找到struts-config.xml檔案,然後通過迴圈來讀取此檔案和解析裡面的內容,並初始化相關物件。
2. 使用者請求
使用者提交表單或呼叫url向web應用程式伺服器提交乙個請求,請求的資料用http協議上傳給web伺服器。
3. 填充formbean
填充formbean的過程包括例項化、復位、填充資料、校驗、儲存等操作。根據*.do請求從actionconfig中找出對應該請求的action子類,如有對應的action且這個action有乙個相應的actionform,則actionform被例項化並用http請求的資料填充其屬性,並儲存在servletcontext中,這樣它們就可以被其他action物件或jsp呼叫。如果沒有對應的action,控制器則直接**給jsp或靜態頁面。
4. **請求
控制器根據配置資訊actionconfig將請求派發到具體的action,與請求相應的formbean將一併傳給這個action物件。
5. 處理業務
action一般只包含乙個execute()方法,它負責執行相應的業務邏輯。執行完畢後返回乙個actionforward物件,控制器通過該actionforward物件進行**工作。
6. 返回響應
action根據業務處理的不同結果返回乙個響應物件給總控制器,該目標響應物件對應乙個具體的jsp頁面或另乙個action。
7. 查詢響應
總控制器根據業務功能action返回的目標響應物件找到對應的資源物件,通常是乙個具體的jsp頁面。
8. 響應使用者
目標響應物件將結果展現給使用者目標響應物件,即具體的jsp頁面,這樣客戶就得到響應的結果。
Struts工作原理
struts的完整工作流程 1 在web.xml中為actionservlet配置乙個對映路徑,一般都為 do。2 當乙個jsp頁面執行時,如果使用的是html標籤定義的表單,則會根據action指定的路徑與struts.config.xml檔案中的路徑相匹配,如果匹配失敗,則程式報錯。3 在執行乙...
Struts工作原理
上圖 於struts2官方站點,是struts2的整體結構。乙個請求在struts2框架中的處理大概分為以下幾個步驟 客戶端初始化乙個指向servlet容器 例如tomcat 的請求 這個請求經過一系列的過濾器 filter 這些過濾器中有乙個叫做actioncontextcleanup的可選過濾器...
struts工作原理
struts工作原理 當使用者發起請求是 action 會先到達web.xml執行前端控制器 strutsprepareandexecute 執行後會預設到達struts.xml配置檔案中找到相對應的 package包,在相對應的包中找到對應的名稱的action,解析得到class,並例項化該類。同...