更新時間:2022-05-19 來源:黑馬程序員 瀏覽量:
為了更好地學習Struts2框架,下面分析一下Struts2的基本執行流程,如下圖所示。
Struts2的執行流程圖
Struts2的流程圖中,一個請求在Struts2框架中的處理可以分為以下幾個步驟:
(1)客戶端瀏覽器發送一個請求(HttpServletRequest)。
(2)程序會調用StrutsPrepareAndExecuteFilter,然后詢問ActionMapper這個請求是否需要調用某個Action。
(3)如果ActionMapper決定需要調用某個Action,StrutsPrepareAndExecuteFilter會把請求的處理交給ActionProxy。
(4)ActionProxy通過配置管理器(Configuration Manager)從配置文件(struts.xml)中讀取框架的配置信息,從而找到需要調用的Action類。
(5)ActionProxy會創建一個ActionInvocation的實例。
(6)ActionInvocation使用命名模式來調用Action,在調用Action前,會依次調用所有配置的攔截器(Intercepter1、Intercepter2、…)。
(7)一旦Action執行完,返回結果字符串,ActionInvocation就會負責查找結果字符串。對應的Result,然后執行這個Result。通常情況下Result會調用一些模板(JSP等)來呈現頁面。
(8)產生的Result信息返回給ActionInvocation,此過程中攔截器會被再次執行(順序與Action執行之前相反)。
(9)產生一個HttpServletResponse的響應行為,通過StrutsPrepareAndExecuteFilter反饋給客戶端。