基於Struts技術的Web應用設計與實現

來源:互聯網
上載者:User
web|設計    摘要 Struts是目前Web開發中比較成熟的一種架構,本文闡述了基於MVC模型的Web應用軟體開發架構struts的體繫結構及主要組成組件,並結合一個執行個體討論如何設計基於struts架構的應用,同時也分析了使用struts架構開發web應用的優勢。

   關鍵詞 Struts;模型;視圖;控制器

  近年來,基於MVC(Model-View-Controller)模型的Struts架構越來越受到web系統開發人員的青睞。Struts是建立在當前動態網站設計領域中JSP、Servlet、XML等相關開發技術基礎之上的一種主流開發架構,具有組件模組化、靈活性和重用性的優點,同時極大地簡化了Web應用程式的開發。它合理地將使用者表示邏輯、商務邏輯和控制邏輯分離,使得開發過程變得簡潔清晰,並提高了軟體的可維護性和可重用性。

   


  Struts架構
  
  1、Struts體繫結構

  Struts是一種基於MVC經典設計模式的開放原始碼的應用程式框架,也是目前Web開發中比較成熟的一種架構。通過把Servlet、JSP、JavaBean、自訂標籤和資訊資源整合到一個統一的架構中,為Web開發提供了具有高可配置性的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,首先把應用分解為模型、視圖和控制器來實現,這樣就將商務邏輯和表現層分開,提高軟體可擴充性和良好的邏輯性,改變了傳統Web開發設計模式。然後運用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配置如下。

<form-beans>
<form-bean name="loginForm" type="bbs.LoginForm"/>
</form-beans>
<global-forwards>
<forward name="LoginSuccessed" path="/bbsMain.jsp"/>
<forward name="LoginFailed" path="/wrong.jsp"/>
</global-forwards>
<action-mappings>
<action path="/login" type="bbs.LoginAction" name="loginForm" scope="session" input="/bbsLogin.jsp" />
</action-mappings>
  結束語

  從某種意思上講,Struts技術只實現了Web層的應用程式框架,但它是一個具有良好擴充性和不斷完善的架構,結合J2EE核心設計模式,可構建出相當穩定的基於MVC應用程式框架,利用這樣應用程式框架不但能縮短開發時間,還能夠實現架構和代碼的重用,是未來web應用開發的主流技術。

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。