posts - 188,comments - 176,trackbacks - 0

          Struts-MVC:





             1.框架初始化

            Struts框架總控制器(ActionServlet)完成所有初始化工作。總控制器是一個Servlet,它通過web.xml配置成自動啟動的Servlet,讀取配置文件(struts-config.xml)的配置信息,為不同的Struts模塊初始化相應的ModuleConfig對象。配置文件中的Action映射定義都保存在ActionConfig集合中,配置文件中其他配置信息分別保存在ControlConfig集合、FormBeanConfig集合、ForwardConfig集合和MessageResourcesConfig等集合中。

            要特別指出的是,初始化動作在Web容器啟動時自動完成,初始化完成后,它將通過URL匹配映射截獲所有以.do結尾的URL請求。

            2.客戶端發送一個HTTP請求

            用戶通過提交表單或調用URL向Web應用程序器提交一個請求,請求的數據用HTTP協議上傳給Web服務器。

            3.總控制器接截獲這個請求并實例化Form Bean

            控制器接收HTTP請求,并從ActionConfig中找出對應該請求的Action子類,如果沒有對應的Action,控制器直接將請求轉發給JSP或者靜態頁面。如果有對應的Action且這個Action有一個相應的Action Form,ActionForm被實例化并用HTTP請求的數據填充其屬性,然后保存在Servlet Context中(request或session中),這樣它們就可以被其它Action對象或者JSP調用。

            此外,還可以在ActionForm填充數據后還可以調用validate()進行數據有效性自檢,并且可以返回一個包含所有錯誤信息的ActionErrors對象,如果ActionErrors不空,總控制器直接將請求返回到入口頁面。

            4.控制器將請求轉交給具體的Action處理

            控制器根據配置信息將請求切換到具體的Action,這個Form Bean也一并傳給這個Action的execute()方法。

            5.Action完成具體的業務邏輯操作

            Action很簡單,一般只包含一個execute方法,它負責執行相應的業務邏輯,如果需要,它也可能進行相應的數據檢查。執行完成之后,返回一個ActionForward對象,控制器通過該ActionForward對象來進行轉發工作。

            6.Action返回目標響應對象給總控制器

            Action根據業務處理的不同結果返回一個目標響應對象給總控制器,這個目標響應對象對應一個具體的JSP頁面或另外一個Action。
            
            7.總控制器將HTTP請求轉換到目標響應對象中。

            總控制器根據業務功能Action返回的目標響應對象,將HTTP請求轉換到這個目標響應對象中,一般情況下,它是一個具體的JSP頁面。

            8.目標響應對象將結果展現給用戶
            
            目標響應對象(JSP)將結果頁面展現給用戶。

            客戶端發送一個HTTP請求,通過Struts框架最后獲得一個HTTP響應,這一過程非常重要,它是理解Struts框架的重點。圖 2描述了Struts框架的結構,而圖 3通過一個活動圖更具體描述接受請求直至返回響應的整個過程:




          轉CSDN

          posted on 2007-05-24 11:29 cheng 閱讀(419) 評論(0)  編輯  收藏 所屬分類: Struts
          主站蜘蛛池模板: 崇文区| 远安县| 武威市| 花莲市| 陆良县| 仁怀市| 二手房| 东丽区| 临汾市| 乌什县| 上思县| 临高县| 铜梁县| 铜鼓县| 龙胜| 行唐县| 区。| 灵川县| 商丘市| 任丘市| 理塘县| 长海县| 溆浦县| 维西| 兰溪市| 于田县| 双城市| 武宣县| 青海省| 文水县| 杨浦区| 新建县| 佛冈县| 黑水县| 贡觉县| 江孜县| 稻城县| 桂平市| 九江市| 句容市| 宝兴县|