1. 程式人生 > >菜鳥學習Struts——總結

菜鳥學習Struts——總結

一、原理


       客戶端請求到ActionSeverlet,ActionSeverlet負責截URL進行分發分發到每一個Action上,Action負責和Model打交道然後把相關資訊返回到ActionSeverlet ,ActionSeverlet在返回到jsp。
二、總結。

       Struts體系結構實現了MVC設計模式的概念,它將Model、View和Controller分別對映到Web應用中的元件。Controller負責控制流程,由ActionServlet負責讀取struts-config.xml,並使用ActionMapping來查詢對應的Action;Model由ActionForm來構建;View是由JSP和Struts提供的自定義標籤來實現。

Struts有五個核心類:

ActionSvervlet:

       用來接收使用者請求和狀態改變,以及發出檢視選擇。當ActionServlet接收到HTTP Request的時候,

呼叫process()方法,將Request()轉發給RequestProcessor來處理。

       在一般情況下,我們不需要自己實現或者修改ActionServlet類,僅僅通過在web.xml中進行配置直接

使用就可以了。在某些情況下,我們可以自己擴充套件ActionServlet類,從ActionServlet繼承,實現自己的

ActionServlet。

ActionMapping:

      ActionMapping是ActionConfig的子類,實質上是對struts-config.xml的一個對映,從中可以取得所有配

置資訊。

Action:

       控制器的一部分,用於模型互動,執行狀態改變或狀態查詢,高數ActionServlet下一個選擇的檢視。

       Action類是實現整個體系的核心部分,它在客戶請求、介面表示和業務邏輯之間起到一個橋樑的作用。

每一個Action是用來執行一個業務操作。

ActionForward:

       ActionForward是對struts-config.cml配置的mapping元素的forward屬性的包裝。在Action的excute方法

中返回一個ActionForward類。ActionForward把配置檔案中forward部分的資訊包裝起來,減少了應用程式

和物理資源資訊之間的耦合性。

ActionForm:

         用來儲存使用者表單資訊,它的所有屬性應該滿足get和set對應。對於一些複雜的系統可以採用

DynaActionForm來構造動態的Form。

       以上是Struts的核心類,通過我查閱資料下面讓我們從使用者操作的角度來理解當一個ActionServlet接收到一個客戶請求時的流程,如下圖:


三、感受。
         通過Struts的學習對Struts有了一個基本的瞭解,對Struts的基本原理有了一定的掌握,還有對Struts框架中的標籤庫,scope屬性,ActionForm、國際化的應用有了一個初步的瞭解。一開始學習的時候沒啥感覺。等學完以後才發現學習這個框架與學習Javascript和JQuery有點相似,JQuery是javascript的一個封裝好的框架,說框架說的其實有點太專業說白了就是javascript的函式庫別人封裝好的就像我們自己封裝的SQLHelper一樣。而Struts呢是Java封裝的一個函式庫。Struts為我們封裝優化了MVC,使得MVC使用起來更高效,更快捷。就像JQuery一樣。JQuery幫我們封裝了Javascript讓我們使用起來更加方便。