[置頂]通過一個簡單的登錄過程了解Struts的業務流程(Struts初學的請進)
(1)用戶的請求以HTTP方式傳輸到服務器上,接收請求的是ActionServlet。(2)ActionServlet接收到請求后,會查找struts-config.xml文件來確定服務器上是否有用戶請求的操作,此處用戶請求的操作應為登錄操作。如果沒有,則返回一個用戶請求無效的出錯信息。
(3)當ActionServlet找到用戶請求的Action后,首先將用戶輸入的表單參數打包成一個ActionForm對象,這個ActionForm對象其實也就是一個JavaBean,里面包含兩個字段,分別是用戶名和密碼。接著ActionServlet再根據struts-config.xml中的配置信息決定是否要執行ActionForm對象中的Validate方法。若Validate方法執行有錯,則返回;否則,繼續下一步。
(4)系統生成一個用戶所請求的Action的實例對象,將前面的ActionForm對象傳遞給它,運行它的execute()方法。這一步其實就是用戶登錄的控制器,在執行execute()方法時,可以調用后臺模型驗證登錄名和密碼是否正確等信息。
(5)execute()執行結束前會生成一個ActionForward類型的對象并將之返回給ActionServlet,該對象的作用是告訴ActionServlet下一步應該跳轉到哪里,假如后臺模型檢驗用戶名和密碼正確,則ActionForward就代表跳轉到一個登錄成功的界面。ActionServlet將對之進行分析,其實就相當于接收到一個新的請求,重復(2)~(5)的過程,直到將某個界面返回用戶為止。
以上就是Struts的基本工作流程,可以看出struts-config.xml在整個流程中起到了一個類似站點地圖的作用,它記錄了所有可能的請求跳轉。其實,在Web容器加載Struts應用程序后,struts-config.xml就被首先讀入內存成為一個ActionMapping對象,前面所說的查找struts-config.xml文件,實際上是查找ActionMapping對象。對于初學者來說可以不必深究其中的細節……
摘自清華大學出版社出版的《Struts-Web設計與開發大全》
posted @ 2008-04-04 23:27 伍興佳 閱讀(453) | 評論 (1) | 編輯 收藏