Struts的運行過程
(1)在Web容器啓動時候,ActionServlet被初始化,加載struts-config.xml配置文件。
(2)當客戶端瀏覽器發起請求到ActionServlet時,ActionServlet首先對請求進行一系列處理:
根據請求的路徑和配置信息找到對應的Action Bean 和Form Bean 。例如:當提交表單發送http://localhost:8080/cal/add.do請求到服務器的時候,ActionServlet就會根據Struts配置信息查找path屬性爲”/add”的Action Bean,於是找到AddAction;並得知該Action的name屬性爲”addForm”,於是找到AddForm的實例(如果不存在就創建)。
(3)在確定將要調用的Action Bean和對應的Form Bean 後,就將請求中包含的值填充到Form Bean 中(Action可以不關聯任何ActionForm,所以這一步是可選的)。在調用Action的execute方法前,ActionServlet還需要準備好ActionMapping參數,ActionMapping中包含了該Action的配置信息。
(4)然後Struts將請求分發至相應的Action Bean 處理,ActionMapping參數,ActionForm參數,request和response都作爲參數傳給處理請求的Action Bean的execute方法
(5)Action 調用業務邏輯方法,得到返回值,並返回ActionForword對象。
(6)控制權重新回到ActionServlet,ActionServlet根據Action返回的ActionForward對象轉發到相應的JSP頁面。
(7)處理結果返回給瀏覽器。