近年來,基于mvc(model-view-controller)模型的struts框架越來越受到web系統開發者的青睞。struts是建立在當前動態網站設計領域中jsp、servlet、xml等相關開發技術基礎之上的一種主流開發架構,具有組件模塊化、靈活性和重用性的優點,同時極大地簡化了web應用程序的開發。它合理地將用戶表示邏輯、業務邏輯和控制邏輯分離,使得開發過程變得簡潔清晰,并提高了軟件的可維護性和可重用性。
struts框架
1、struts體系結構
struts是一種基于mvc經典設計模式的開放源代碼的應用框架,也是目前中比較成熟的一種框架。通過把servlet、jsp、javabean、自定義標簽和信息資源整合到一個統一的框架中,為提供了具有高可配置性的mvc開發模式。
struts體系結構實現了mvc設計模式的概念,它將model、view和controller分別映射到web應用中的組件。model由代表系統狀態和商業邏輯action來構建,view是由jsp和struts提供的自定義標簽來實現,controller負責控制流程,由actionservlet和actionmapping來完成。
2、主要組件介紹
下面我們就從分別從視圖、控制、模型和struts的配置文件struts-config.xml來介紹struts的體系結構。
(1)視圖:主要由jsp建立,struts自身包含了一組可擴展的自定義標簽庫(tag1 ib),可以簡化創建用戶界面的過程。
(2)模型:模型主要是表示一個系統的狀態和業務邏輯。在struts中,系統的狀態主要由actiomform bean體現,對于業務邏輯通常由javabean或ejb組件來實現。
(3)控制器:控制器主要由actionservlet類和action類來實現,actionservlet類是struts框架中的核心組件,主要負責接收http請求信息。根據配置文件struts-config.xml的配置信息,把請求轉發合適的action對象。action類負責調用模型的方法,更新模型的狀態,并幫助控制應用程序的流程。
(4)配置文件struts-config.xml:當actionservlet接收http請求信息時,如何決定把用戶請求轉發給哪個action對象呢?這就需要一些描述用戶請求路徑和action映射關系的配置信息。在struts中.這些配置映射信息都存儲在特定的xml 文件struts—config.xml中,在該配置文件中,每一個action的映射信息都通過一個(action)元素來配置。這些配置信息在系統啟動時會被讀入內存,供struts在運行期間使用,在內存中,每一個(action)元素都對應一個actionmapping類的實例。
基于struts框架bbs系統實現
bbs論壇是電子商務網站中一種常見的功能,它為上網用戶提供了一個自由的討論區。用戶可以根據需要在論壇上發表文章,提出問題并表達自己的觀點,俗稱發帖子或灌水。與此同時,上網用戶也可以在論壇中瀏覽其他人發表文章,并能對該文章進行回復。故一個典型的bbs系統一般應提供如下功能:①會員管理,②討論區文章查閱,③發表新文章,④后臺管理。
運用struts框架實現bbs,首先把應用分解為模型、視圖和控制器來實現,這樣就將業務邏輯和表現層分開,提高軟件可擴展性和良好的邏輯性,改變了傳統設計模式。然后運用struts-config.xml配置文件將三者組裝起來,協調它們完成相應的功能。下面將以bbs中用戶登陸為例按照mvc架構來詳述實現過程。
1、創建視圖組件
在視圖中主要包括兩個組件:用戶登錄頁面bbslogin.jsp,是struts的輸入顯示頁面;登錄失敗頁面wrong.jsp;是用戶登錄失敗后顯示的頁面。它們都保存在web應用目錄bbs下。
2、創建模型組件
模型組件文件userinfo.java是處理業務邏輯的javabean, 封裝了與論壇用戶相關的所有信息,同時也定義了所有與論壇用戶信息處理相關的方法。例如檢查用戶身份的方法以及查找、刪除、編輯、存儲用戶信息等。通過action類派生的子類loginaction訪問userinfo.java實現對業務邏輯的處理。如果模型組建處理的業務比較復雜可以使用ejb或其他j2ee組件來實現。注意業務邏輯層對應的類所在的包應該部署在bbs/web-inf/classes下。
3、創建控制器組件
控制器組件作為整個struts架構的控制中心,包括了actionservlet、action bean、actionform bean、以及相關配置文件web.xml、struts-config.xml及資源包。actionservlet類是框架自帶的,是整個struts框架的控制樞紐,通常不需要擴展。
⑴ 聲明及定義loginactionform.java
該javabean用于收取用戶登錄頁面提交的表單數據。注意actionformbean中屬性名稱一定要對應用戶表示層jsp頁面中的表單元素名稱及超鏈接參數名。
⑵ 聲明及定義loginaction.java
loginaction負責處理客戶端提交請求,其主要功能是依據接收到的不同請求,通過loginactionform中得到對應的提交表單數據,調用業務邏輯層中對應的userinfo.java進行處理。最終將結果傳給用戶表示層jsp頁面,顯示在用戶面前。
⑶ 配置文件定義
web.xml主要實現了對actionservlet進行配置,同時還必須聲明web表示層中所使用的struts標簽庫。針對本應用struts-config.xml配置如下:
|
結束語
從某種意思上講,struts技術只實現了web層的應用框架,但它是一個具有良好擴展性和不斷完善的框架,結合j2ee核心設計模式,可構建出相當穩定的基于mvc應用框架,利用這樣應用框架不但能縮短開發時間,還能夠實現框架和代碼的重用,是未來web應用開發的主流技術。
新聞熱點
疑難解答