教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Java培訓:Struts2的執(zhí)行流程分析

更新時間:2022年06月27日23時21分 來源:傳智教育 瀏覽次數(shù):

通過Struts2的入門開發(fā)案例可對Struts2框架的使用有了一個初步的了解。為了更好地學習Struts2框架,下面分析一下Struts2的基本執(zhí)行流程,如圖所示。

在圖1-10所示的流程圖中,一個請求在Struts2框架中的處理可以分為以下幾個步驟:

(1)客戶端瀏覽器發(fā)送一個請求(HttpServletRequest)。

(2)程序會調(diào)用StrutsPrepareAndExecuteFilter,然后詢問ActionMapper這個請求是否需要調(diào)用某個Action。

(3)如果ActionMapper決定需要調(diào)用某個Action,StrutsPrepareAndExecuteFilter會把請求的處理交給ActionProxy。

  (4)ActionProxy通過配置管理器(Configuration Manager)從配置文件(struts.xml)中讀取框架的配置信息,從而找到需要調(diào)用的Action類。

(5)ActionProxy 會創(chuàng)建一個ActionInvocation的實例。

(6)ActionInvocation使用命名模式來調(diào)用Action,在調(diào)用Action前,會依次調(diào)用所有配置的攔截器(Intercepter1、Intercepter2、…)。

(7)一旦Action執(zhí)行完,返回結(jié)果字符串,ActionInvocation就會負責查找結(jié)果字符串。

Struts2的執(zhí)行流程分析

圖1-10 Struts2的執(zhí)行流程圖

對應(yīng)的Result,然后執(zhí)行這個Result。通常情況下Result會調(diào)用一些模板(JSP等)來呈現(xiàn)頁面。

(8)產(chǎn)生的Result信息返回給ActionInvocation,此過程中攔截器會被再次執(zhí)行(順序與Action執(zhí)行之前相反)。

(9)產(chǎn)生一個HttpServletResponse的響應(yīng)行為,通過 StrutsPrepareAndExecuteFilter反饋給客戶端。



0 分享到:
和我們在線交談!