官术网_书友最值得收藏!

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就是通過一系列的攔截器來工作的。關于攔截器會在后面的章節中詳細介紹。

主站蜘蛛池模板: 浮梁县| 凌海市| 尉犁县| 会理县| 兰溪市| 孝昌县| 丹凤县| 曲松县| 南漳县| 罗定市| 贡觉县| 普宁市| 开封县| 信阳市| 德保县| 咸宁市| 汉中市| 井陉县| 汉阴县| 台山市| 右玉县| 镇康县| 金门县| 阿尔山市| 漳平市| 凤冈县| 兰西县| 宣恩县| 龙陵县| 宝坻区| 确山县| 平顶山市| 高台县| 苏尼特右旗| 澄迈县| 特克斯县| 武宁县| 常宁市| 航空| 南郑县| 和田县|