Struts的結(jié)構(gòu)和處理流程簡介_第1頁
Struts的結(jié)構(gòu)和處理流程簡介_第2頁
Struts的結(jié)構(gòu)和處理流程簡介_第3頁
Struts的結(jié)構(gòu)和處理流程簡介_第4頁
Struts的結(jié)構(gòu)和處理流程簡介_第5頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

Struts的結(jié)構(gòu)和處理流程簡介Struts是Apache組織的一個項目,像其他的Apache組織的項目一樣,它也是開放源碼項目。Struts是一個比較好的MVC框架提供了對開發(fā)MVC系統(tǒng)的底層支持,它采用的主要技術是Servlet,JSP和customtaglibrary。獲取它的使用版本和具體信息可以查閱網(wǎng)站。Struts框架的基本構(gòu)成由下圖所示:

圖1strutsuml圖

作為一個MVC的框架,Struts對Model、View和Controller都提供了對應的實現(xiàn)組件,對應上面的UML圖,分別進行介紹,并且看看它們是如何結(jié)合在一起的。Controller:控制器的作用是從客戶端接受請求,并且選擇執(zhí)行相應的業(yè)務邏輯,然后把響應結(jié)果送回到客戶端。在Struts中Controller功能由圖中ActionServlet和ActionMapping對象構(gòu)成:核心是一個Servlet類型的對象ActionServlet,它用來接受客戶端的請求。ActionServlet包括一組基于配置的ActionMapping對象,每個ActionMapping對象實現(xiàn)了一個請求到一個具體的Model部分中Action處理器對象之間的映射。Model:MVC系統(tǒng)中的Model部分從概念上可以分為兩類--系統(tǒng)的內(nèi)部狀態(tài),和改變系統(tǒng)狀態(tài)的動作。Struts為Model部分提供了Action和ActionForm對象:所有的Action處理器對象都是開發(fā)者從Struts的Action類派生的子類。Action處理器對象封裝了具體的處理邏輯,調(diào)用業(yè)務邏輯模塊,并且把響應提交到合適的View組件以產(chǎn)生響應。Struts提供的ActionForm組件對象,它可以通過定義屬性描述客戶端表單數(shù)據(jù)。開發(fā)者可以從它派生子類對象,利用它和Struts提供的自定義標記庫結(jié)合可以實現(xiàn)對客戶端的表單數(shù)據(jù)的良好封裝和支持,Action處理器對象可以直接對它進行讀寫,而不再需要和request、response對象進行數(shù)據(jù)交互。通過ActionForm組件對象實現(xiàn)了對View和Model之間交互的支持。Struts通常建議使用一組JavaBean表示系統(tǒng)的內(nèi)部狀態(tài),根據(jù)系統(tǒng)的復雜度也可以使用像EntityEJB和SessionEJB等組件來實現(xiàn)系統(tǒng)狀態(tài)。Struts建議在實現(xiàn)時把"做什么"(Action)和"如何做"(業(yè)務邏輯)分離。這樣可以實現(xiàn)業(yè)務邏輯的重用。View:Struts應用中的View部分是通過JSP技術實現(xiàn)的。Struts提供了自定義的標記庫可以使用,通過這些自定義標記可以非常好地和系統(tǒng)的Model部分交互,通過使用這些自定義標記創(chuàng)建的JSP表單,可以實現(xiàn)和Model部分中的ActionForm的映射,完成對用戶數(shù)據(jù)的封裝,同時這些自定義標記還提供了像模板定制等多種顯示功能。Struts框架的處理流程清楚的體現(xiàn)了MVC系統(tǒng)的特點,簡單的Struts組件結(jié)構(gòu)如圖2所示。StrutsControllerActionServlet處理客戶請求,利用配置的ActionMapping對象把請求映射到Action處理器對象進行處理。Action處理對象訪問ActionForm中的數(shù)據(jù),處理和響應客戶請求,它還調(diào)用后臺的Bean組件,這些組件封裝了具體的業(yè)務邏輯。Action處理器對象根據(jù)處理結(jié)果通知Controller,Controller進行下一步的處理。

圖2Struts框架的組件結(jié)構(gòu)圖

利用Struts框架開發(fā)MVC系統(tǒng)要做的工作由于Struts已經(jīng)為我們提供了一個非常好的MVC框架,我們利用Struts開發(fā)MVC系統(tǒng)時可以大大加快開發(fā)的速度。在開發(fā)時可以采用的一個開發(fā)流程如下(引自資料3):收集和定義應用需求?;跀?shù)據(jù)采集和顯示的原則定義和開發(fā)"屏幕顯示"需求。為每一個"屏幕顯示"定義訪問路徑。定義ActionMappings建立到應用業(yè)務邏輯之間的聯(lián)系。開發(fā)滿足"屏幕顯示"需求的所有支持對象?;诿恳粋€"屏幕顯示"需求提供的數(shù)據(jù)屬性來創(chuàng)建對應的ActionForm對象開發(fā)被ActionMapping調(diào)用的Action對象。開發(fā)應用業(yè)務邏輯對象(Bean,EJB,等等)。對應ActionMapping設計的流程創(chuàng)建JSP頁面。建立合適的配置文件struts-config.xml,web.xml。開發(fā)/測試/部署具體在使用Struts框架時,對應各個部分的開發(fā)工作主要包括:Model部分:采用JavaBean和EJB組件,設計和實現(xiàn)系統(tǒng)的業(yè)務邏輯。根據(jù)不同的請求從Action派生具體Action處理對象。完成"做什么"的任務來調(diào)用由Bean構(gòu)成的業(yè)務組件。創(chuàng)建由ActionForm的派生類實現(xiàn)對客戶端表單數(shù)據(jù)的封裝。Controller部分:Struts為我們提供了核心控制部分的實現(xiàn)。我們只需要配置ActionMapping對象View部分:為了使用Model中的ActionForm對象,我們必須用Struts提供的自定義標記創(chuàng)建HTML表單。利用Struts提供的自定義標記庫編寫用戶界面把應用邏輯和顯示邏輯分離。Struts框架通過這些自定義標記建立了View和Model之間的聯(lián)系。Struts的自定義標記還提供了很多定制頁面的功能。同時需要編輯兩個配置文件:web.xml和struts-config.xml。通過它們配置Struts系統(tǒng)中的各個模塊之間的交互。下面對這兩個配置文件做一些介紹:web.xml文件的配置:web應用中的web.xml是第一個要配置的地方,它描述了系統(tǒng)的Controller對象。在web.xml中增加如下標記<servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>application</param-name>??????</servlet>說明:這個servlet對象就是Struts提供的Controller,還可以為它指定初始化參數(shù),比如對系統(tǒng)應用屬性的支持。<servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servelt-mapping>說明:實現(xiàn)客戶請求的url信息和服務器端具體處理的映射關系。<taglib><taglib-url>/WEB-INF/struts-bean.tld</taglib-url><taglib-location>/WEB-INF/struts-bean.tld</taglib-location></taglib>???????說明:添加對Struts提供的應用所使用的自定義標記庫的引用。struts-config.xml文件的配置:struts-config.xml是用于建立Controller和Model之間的關系的。它描述了Controller所使用的把請求對應到具體處理的法則,同時它還描述了客戶提供的數(shù)據(jù)與ActionForm組件的對應映射關系。在struts-config.xml中增加如下標記<form-beans><form-beanname="loginForm"type="loginForm"/></form-beans>說明:<form-bean>標記描述一個具體的ActionForm子類對象,通過它和JSP頁面中的自定標記的結(jié)合使用可以實現(xiàn)ActionForm和View之間的數(shù)據(jù)映射。<action-mappings><actionpath="/login"type="loginAction"name="loginForm"input="/login.jsp"???/></action-mapping

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論