天天看點

Struts2 ——3、Struts2的大緻處理流程

寫了一些例子,基本上對于Struts2應用的開發可以有個大概的了解,那麼下面可以針對這些應用總結一下Struts的處理流程了。

一個請求在Struts2架構中的處理大概分為以下幾個步驟:

1、用戶端初始化一個指向Servlet容器(例如Tomcat)的請求;

2、這個請求經過一系列的過濾器(Filter)(這些過濾器中有一個叫做ActionContextCleanUp的可選過濾器,這個過濾器對于Struts2和其他架構的內建很有幫助,例如:SiteMesh Plugin);

3、接着FilterDispatcher被調用,FilterDispatcher詢問ActionMapper來決定這個請求是否需要調用某個Action;

4、如果ActionMapper決定需要調用某個Action,FilterDispatcher把請求的處理交給ActionProxy;

5、ActionProxy通過Configuration Manager詢問架構的配置檔案,找到需要調用的Action類;

6、ActionProxy建立一個ActionInvocation的執行個體。

7、ActionInvocation執行個體使用命名模式來調用,在調用Action的過程前後,涉及到相關攔截器(Intercepter)的調用。

8、一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應的傳回結果。傳回結果通常是(但不總是,也可能是另外的一個Action鍊)一個需要被表示的JSP或者FreeMarker的模版。在表示的過程中可以使用Struts2 架構中繼承的标簽。在這個過程中需要涉及到ActionMapper。

當然這裡的内容還并不是都已經接觸到了,先了解一下,待後面用到的時候再回頭看一眼,就明了了。

Struts2 ——3、Struts2的大緻處理流程

這裡先簡單得帶過,後面會補充起來...最近的目标是盡快将這個Struts的各個點都涉及一遍,然後慢慢補充裡面不完善的地方。淺薄之處還請諒解,如果意見和建議,盡請提出來。