- Java EE實用教程
- 鄭阿奇編著
- 481字
- 2018-12-30 08:34:16
2.4 Struts 2項目的運行流程
下面根據上一節項目的運行流程情況,講解Struts 2項目的運行流程,如圖2.11所示。

圖2.11 項目運行流程
其運行流程如下所述。
(1)瀏覽器請求“http://localhost:8080/Struts2/login.jsp”,發送到Web應用服務器。
(2)容器接收到了Web服務器對JSP頁面中login.action的請求,根據web.xml中的配置,服務器將包含有.action后綴的請求轉到“org.apache.struts2.dispatcher.FilterDispatcher”類進行處理。調用這個“FilterDispatcher”類,進入Struts 2的流程中。
(3)框架在struts.xml配置文件中查找名為“login”的action對應的類。框架初始化該Action(對數據進行了封裝,并把數據放入值棧中)并且執行該Action類的execute方法(如果配置文件中指定了特定方法則會執行對應的方法,默認執行execute方法),該方法可以做一些數據處理等操作,然后返回(上節項目返回“success”)。
(4)框架檢查配置以查看當返回成功時對應的頁面??蚣芨嬖V容器來獲得請求返回的結果頁面welcome.jsp,在該頁面中用EL表達式輸出存在值棧中的值。(這里也可以用Struts 2提供的標簽來輸出)
在Struts 2框架中,Action類的調用是通過代理類ActionProxy來完成的,代理類再創建一個ActionInvocation對象,來調用程序員自定義的Action類,在調用之前會先根據配置加載Action相關的所有Interceptor(攔截器)。Struts 2就是通過一系列的攔截器來工作的。關于攔截器會在后面的章節中詳細介紹。