<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-86  評論-767  文章-3  trackbacks-3

    摘要 Web 系統(tǒng)設計中,隨著業(yè)務邏輯的越來越復雜,如何提高 Web 系統(tǒng)的執(zhí)行效率、可復用性、可擴展性、可維護性,降低構建和維護成本,一直是業(yè)界普遍關注的焦點。最近幾年來,基于可重用的 FrameWork 技術逐漸成為業(yè)界研究和應用的新趨勢。其中, Craig McClanahan 2000 5 月份提出的 Jakarta Struts FrameWork ,將目前最流行的兩種 Server 端技術 --JSP Servlet 集合在一起,實現(xiàn)了 MVC 架構,提供了一種快速高效的構建 Web 應用程序的方法。 Struts 自從誕生之日起,就獲得了 Apache Jakarta 開源社區(qū)的普遍關注。本文作者所在的小組,在 LPMT 中,運用 Struts 技術,快速構建了一個結構清晰、可復用、可擴展的 Web 系統(tǒng)。本文從 MVC 架構設計、 WebForm 技術實現(xiàn)、代碼復用等方面,對 Struts LPMT 中的應用作一個總結。

    ?????? 本論文分四部分,共七章。

    第一部分為第一章,介紹什么是系統(tǒng)開發(fā)框架以及應用系統(tǒng)開發(fā)框架對軟件開發(fā)的意義。第二部分為第二章,介紹 Struts MVC 架構的相關技術要點。第三部分為第三章,介紹 LPMT 的構建背景和系統(tǒng)概況。第四部分為第四、五、六、七章,介紹 Struts LPMT 中的應用,包括 MVC 架構設計、 WebForm 技術實現(xiàn)、代碼復用等。

    ?

    關鍵詞 MVC? 架構 ? Struts? 軟件復用 ? WebForm


    Abstract During web system design,as more and more complex the business becomes,people is always focusing on how to enhance the system’s efficiency,reusable ability,extensible ability and reduce the cost of system.In the past few years,one of the research and develop trends of the field is reuse-based framework technology.One of them is the Jakarta Struts,which was conceived by Craig McClanahan in May of 2000, combining two of the most popular server?side Java technologies—JSPs and servlets—into a server?side implementation of the Model?View?Controller design pattern.It has been under the watchful eye of the Apache Jakarta open source community since that time.in LPMT,our group have rapidly created a reusable extensible system with clear architecture using Struts technology.This thesis focus on MVC design pattern,WebForm,resueable code,to sum up the implements of Jakarta Struts in LPMT.

    This thesis divides into four parts altogether.

    First part includes chapter one.In this part,starting with what framework is and its significance to software development.

    Second part is chapter two.In this part,the writer introduce the theory of the MVC design pattern and Struts framework.

    Third part is chapter three.This part is about the background of the LPMT and the system’s introduction.

    Fourth part includes chapter four,chapter five,chapter six and seven.It is about the implements of Struts technology in LPMT,including MVC architecture design,webform creating and reusable coding.

    ?

    KeyWords MVC? Architecture? Struts? Reuse-Based Software? WebForm


    目錄

    MVC 設計模式的 Struts 技術實現(xiàn) ... 2

    第一章 應用系統(tǒng)開發(fā)框架對軟件開發(fā)的意義 ... 7

    1.1 什么是系統(tǒng)開發(fā)框架... 7

    1.2 框架、構件與設計模式... 7

    1.3 應用系統(tǒng)開發(fā)框架對軟件開發(fā)的意義... 8

    第二章 MVC 設計模式及 Struts 技術 ... 9

    2.1 MVC設計模式... 9

    2.2 Struts結構和處理流程... 10

    2.2.1 Controller10

    2.2.2 Model11

    2.2.3 View.. 11

    2.3 利用Struts框架進行MVC開發(fā)的流程... 11

    第三章 一個輕量級的 Project Management Tool(LPMT) . 13

    3.1 LPMT的用戶需求... 13

    3.2 LPMT的需求實現(xiàn)... 13

    第四章 LPMT 中的 MVC 多層架構實現(xiàn) ... 15

    4.1 系統(tǒng)架構... 15

    4.1.1 Data Persistence. 15

    4.1.2 Logic. 15

    4.1.3 Model15

    4.1.4 Controller15

    4.1.5 View.. 16

    4.2 MVC模式的實現(xiàn)邏輯... 16

    4.3 分頁顯示IssueMVC模式實現(xiàn)... 16

    第五章 LPMT 中的控制結構 ... 18

    5.1 Action中的控制結構實現(xiàn)... 18

    5.2 ActionForm中的控制邏輯實現(xiàn)... 18

    5.3 View中的控制邏輯實現(xiàn)... 18

    第六章 LPMT 中的 WebForm 術實現(xiàn) ... 20

    6.1 Jakarta Struts 標簽庫... 20

    6.2 WebFormJakarta Struts標簽技術實現(xiàn)... 20

    6.3 與單純的JSP代碼的比較... 23

    第七章 LPMT 中的代碼復用技術 ... 25

    7.1 Model復用... 25

    7.2 View復用... 28

    7.3 Controller復用... 28

    7.4 其他面向對象的代碼復用... 28

    7.4.1 封裝性... 28

    7.4.2 重載... 29

    7.4.3 繼承... 29

    結論 ... 29

    致謝語 ... 29

    參考文獻 ... 30

    附錄 ... 30

    (1)??? Struts-config.xml30

    (2)??? IssueAction.java. 31

    (3)??? IssueBean.java. 36

    (4)??? IssueDetail.jsp. 46


    引言

    在目前國內的面向中小企業(yè)的 Web 應用程序設計中,以單純的 ASP/JSP/Servlet 代碼構建的基于服務器端運行的系統(tǒng)占大多數(shù)。但上述系統(tǒng)有一個共同的缺陷,就是當業(yè)務邏輯越來越復雜的時候,系統(tǒng)構建所帶來的復雜度和所耗費的成本將進一步提升,由于結構的不清晰所帶來的系統(tǒng)可讀性也進一步降低,后期的維護和擴展難度進一步增加。鑒于此,在 J2EE 領域,業(yè)界通常采用在 Server 集成一些可復用的組件比如 EJB 等以及 FrameWork 技術來使得系統(tǒng)結構清晰化,以及實現(xiàn)軟件的可復用、可擴展和高效率。在這里,我們采用 Jakarta Struts 技術,通過和 Logical 層、 DataPersistence 的配合,快速構建一個可復用、可擴展的、結構清晰的 Web 應用程序 --LPMT

    事實證明,作為一個日漸成熟的優(yōu)秀的 FrameWork 技術, Struts 在構建的基于 MVC 設計模式的 Web 系統(tǒng)方面有得天獨厚的優(yōu)勢。本文謹從 MVC 架構設計、控制邏輯實現(xiàn)、 WebForm 技術實現(xiàn)、代碼復用等方面對 Struts LPMT 中的應用作一個技術總結。


    第一章 應用系統(tǒng)開發(fā)框架對軟件開發(fā)的意義

    軟件構件化是 21 世紀軟件工業(yè)發(fā)展的大勢趨。工業(yè)化的軟件復用已經從通用類庫進化到了面向領域的應用框架。 Gartner Group 認為: 2003 年,至少 70% 的新應用將主要建立在如軟件構件和應用框架這類 構造塊 之上;應用開發(fā)的未來就在于提供一開放體系結構,以方便構件的選擇、組裝和集成 。框架的重用已成為軟件生產中最有效的重用方式之一。

    1.1 什么是系統(tǒng)開發(fā)框架

    框架是整個或部分系統(tǒng)的可重用設計部分,表現(xiàn)為一組抽象構件及構件實例間交互的方法;另一種定義認為,框架是可被應用開發(fā)者定制的應用骨架。前者是從應用方面而后者是從目的方面給出的定義。框架規(guī)定了應用的體系結構,闡明了整個設計、協(xié)作構件之間的依賴關系、責任分配和控制流程,表現(xiàn)為一組抽象類以及其實例之間協(xié)作的方法,它為構件復用提供了上下文 (Context) 關系。框架是構件技術、軟件體系結構研究和應用軟件開發(fā)三者發(fā)展結合的產物。在很多情況下,框架通常以構件庫的形式出現(xiàn),但構件庫只是框架的一個重要部分。框架的關鍵還在于框架內對象間的交互模式和控制流模式。

    框架是實現(xiàn)了某應用領域通用完備功能(除去特殊應用的部分)的底層服務。使用這種框架的編程人員可以在一個通用功能已經實現(xiàn)的基礎上開始具體的系統(tǒng)開發(fā)。框架提供了所有應用期望的默認行為的類集合。具體的應用通過重寫子類 ( 該子類屬于框架的默認行為 ) 或組裝對象來支持應用專用的行為。 ?

    應用框架強調的是軟件的設計重用性和系統(tǒng)的可擴充性 , 以縮短大型應用軟件系統(tǒng)的開發(fā)周期,提高開發(fā)質量。與傳統(tǒng)的基于類庫的面向對象重用技術比較,應用框架更注重于面向專業(yè)領域的軟件重用。應用框架具有領域相關性,構件根據(jù)框架進行復合而生成可運行的系統(tǒng)。框架的粒度越大,其中包含的領域知識就更加完整。

    1.2 框架、構件與設計模式

    框架 (Framework) 、構件 (Component) 和設計模式 (Design pattern) 是一個成熟的系統(tǒng)平臺中三個重要的部分,同時又是三個很容易混淆的概念。框架往往是為實現(xiàn)一個或多個設計模式而設計的可重用可擴展的設計,是軟件系統(tǒng)開發(fā)的半成品,而構件是框架當中的可重用的工具包、類庫或者 API

    構件通常是代碼重用,而設計模式是設計重用,框架則介于兩者之間,部分代碼重用,部分設計重用,有時分析也可重用。在軟件生產中有三種級別的重用:內部重用,即在同一應用中能公共使用的抽象塊 ; 代碼重用,即將通用模塊組合成庫或工具集,以便在多個應用和領域都能使用;應用框架的重用,即為專用領域提供通用的或現(xiàn)成的基礎結構,以獲得最高級別的重用性。

      框架與設計模式雖然相似,但卻有著根本的不同。設計模式是對在某種環(huán)境中反復出現(xiàn)的問題以及解決該問題的方案的描述,它比框架更抽象;框架可以用代碼表示,也能直接執(zhí)行或復用,而對模式而言只有實例才能用代碼表示 ; 設計模式是比框架更小的元素,一個框架中往往含有一個或多個設計模式,框架總是針對某一特定應用領域,但同一模式卻可適用于各種應用。可以說,框架是軟件,而設計模式是軟件的知識。

    1.3 應用系統(tǒng)開發(fā)框架對軟件開發(fā)的意義

    框架的最大好處就是重用。面向對象系統(tǒng)獲得的最大的復用方式就是框架,一個大的應用系統(tǒng)往往可能由多層互相協(xié)作的框架組成。 ?

    由于框架能重用代碼,因此從一已有構件庫中建立應用變得非常容易,因為構件都采用框架統(tǒng)一定義的接口,從而使構件間的通信簡單。 ?

    框架能重用設計。它提供可重用的抽象算法及高層設計,并能將大系統(tǒng)分解成更小的構件,而且能描述構件間的內部接口。這些標準接口使在已有的構件基礎上通過組裝建立各種各樣的系統(tǒng)成為可能。只要符合接口定義,新的構件就能插入框架中,構件設計者就能重用構架的設計。 ?

    框架還能重用分析。所有的人員若按照框架的思想來分析事務,那么就能將它劃分為同樣的構件,采用相似的解決方法,從而使采用同一框架的分析人員之間能進行溝通。 ?

    目前的主流的系統(tǒng)開發(fā)框架大都提供了對數(shù)據(jù)持久性、事務、安全性、負載均衡、應用集成等問題的現(xiàn)成的解決方案,因此采用框架技術進行軟件開發(fā)的主要優(yōu)點包括: ?

    (1)???? 領域內的軟件結構一致性好;

    (2)???? 建立更加開放的系統(tǒng);

    (3)???? 重用代碼大大增加,軟件生產效率和質量也得到了提高;

    (4)???? 軟件設計人員要專注于對領域的了解,使需求分析更充分;

    (5)???? 存儲了經驗,可以讓那些經驗豐富的人員去設計框架和領域構件,而不必限于低層編程;

    (6)???? 允許采用快速原型技術;

    (7)???? 有利于在一個項目內多人協(xié)同工作;

    (8)???? 大粒度的重用使得平均開發(fā)費用降低,開發(fā)速度加快,開發(fā)人員減少,維護費用降低,而參數(shù)化框架使得適應性、靈活性增強。


    第二章 MVC設計模式及Struts技術

    MVC(Model-View-Controller ,模型 - 視圖 - 控制器 ) 設計模式是一種 基于請求-響應 (Request Response) 模式的應用框架。 Struts Apache Software Foundation 針對 MVC 設計模式開發(fā)的運行于 Server 端開源項目。 Struts 基于 Java Servlet/JavaServer Pages 技術,試圖提供一種能夠分離表現(xiàn)層,并且允許表現(xiàn)層獨立于傳輸層和數(shù)據(jù)持久層的開源框架。自 Struts 發(fā)布之日起,它就受到開源社區(qū)的歡迎和廣泛支持,也日益成為開源社區(qū)的一個備受矚目的項目。

    2.1 MVC設計模式

    MVC 結構的框架的組成部分包括以下的內容:

    l??????? 模型 (Model)

    ??? 模型包含了應用程序的核心,它封裝了應用程序的數(shù)據(jù)結構和事務邏輯,集中體現(xiàn)了應用程序的狀態(tài)。有時候僅包含狀態(tài)信息,因為它并不了解視圖或控制器的信息。 JavaBean 很適合扮演這個角色,因為其能夠處理絕大部分事務邏輯和數(shù)據(jù)結構,還能與數(shù)據(jù)庫或文件系統(tǒng)進行交互,承擔維護應用程序數(shù)據(jù)的責任。

    l??????? 視圖 (View)

    ??? 視圖實現(xiàn)模塊的外觀,它是應用程序的外在表現(xiàn)。它可以訪問模型的數(shù)據(jù),卻不了解模型的情況,同時它也不了解控制器的情況。當模型發(fā)生改變時,視圖會得到通知,它可以訪問模型的數(shù)據(jù),但不能改變這些數(shù)據(jù)。 Web 界面的開發(fā)人員不需要了解或關心數(shù)據(jù)庫發(fā)生什么事情,或者事務邏輯進行了什么操作,他只需要掌握 HTML 的知識,而不需要深入了解 Java JSP 頁面適合完成這個功能,因為它只包含很少的非 HTML 代碼。

    l??????? 控制器 (Controller)

    控制器控制整個框架中各個組件的協(xié)調工作,對用戶的輸入做出反應,并且將模型和視圖聯(lián)系在一起,它創(chuàng)建并設置模塊。 Servlet 能夠接受客戶端的 HTTP 請求,并且根據(jù)需要創(chuàng)建所需的 JavaBeans ,然后將模塊產生的變化通知給視圖。

    Model View Controller 這三類組件各自的責任以及它們之間的關系如圖 1 所示。

    1.jpg

    實現(xiàn) MVC 設計模式的系統(tǒng)通常會包括業(yè)務邏輯層、數(shù)據(jù)邏輯層。

    業(yè)務邏輯層 (Business Logic) :這是 FrameWork 所要解決問題的關鍵;對框架本身來說,這里僅僅只是概念和幾個提供服務的基礎組件,真正的實現(xiàn)與客戶的業(yè)務邏輯接軌,還需要開發(fā)人員在框架上再次擴展;

    數(shù)據(jù)邏輯層 (Data Logic) :絕大部分應用系統(tǒng)都需要涉及到數(shù)據(jù)交互,這一層主要包括了數(shù)據(jù)邏輯和數(shù)據(jù)訪問接口。在 MVC 結構的框架中, Model 組件用于描述應用程序中的數(shù)據(jù)以及操作該數(shù)據(jù)的方法,與用戶界面無關; View 組件負責將數(shù)據(jù)展現(xiàn)給用戶; Controller 組件將用戶操作翻譯為對 Model 組件的操作;接到 Controller 傳來的操作之后, Model 再更新 View ,以及反映出數(shù)據(jù)的變化。

    MVC 框架下的 Web 應用系統(tǒng)中,由于 HTTP 本身缺乏狀態(tài)信息,客戶端必須對服務器進行再查詢才能發(fā)現(xiàn)由輸入所造成的改變,在這種情況下,控制器不能將應用程序的改變通知視圖。一般情況下,客戶端不得不再次查詢視圖才能看到更新后的情況,基于這樣的改進后的框架稱為 MVC 的模型 2 體系。

    2.2 Struts結構和處理流程

    Struts 利用 Jsp 頁面、自定義的標簽庫、 Java Servlet Action 等類來實現(xiàn)服務器端建模,并為 MVC 模式設計提供相應的組件。

    2.jpg

    2.2.1 Controller

    控制器的作用是從客戶端接受請求,并且選擇執(zhí)行相應的業(yè)務邏輯,然后把響應結果送回到客戶端。在 Struts Controller 功能由圖中 ActionServlet ActionMapping 對象構成:核心是一個 Servlet 類型的對象 ActionServlet ,它用來接受客戶端的請求。 ActionServlet 包括一組基于配置的 ActionMapping 對象,每個 ActionMapping 對象實現(xiàn)了一個請求到一個具體的 Model 部分中 Action 處理器對象之間的映射。

    2.2.2 Model

    MVC 系統(tǒng)中的 Model 部分從概念上可以分為兩類 ―― 系統(tǒng)的內部狀態(tài)和改變系統(tǒng)狀態(tài)的動作。 Struts Model 部分提供了 Action ActionForm 對象:所有的 Action 處理器對象都是開發(fā)者從 Struts Action 類派生的子類。 Action 處理器對象封裝了具體的處理邏輯,調用業(yè)務邏輯模塊,并且把響應提交到合適的 View 組件以產生響應。 Struts 提供的 ActionForm 組件對象,它可以通過定義屬性描述客戶端表單數(shù)據(jù)。開發(fā)者可以從它派生子類對象,利用它和 Struts 提供的自定義標記庫結合可以實現(xiàn)對客戶端的表單數(shù)據(jù)的良好封裝和支持, Action 處理器對象可以直接對它進行讀寫,而不再需要和 request response 對象進行數(shù)據(jù)交互。通過 ActionForm 組件對象實現(xiàn)了對 View Model 之間交互的支持。

    2.2.3 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 組件結構如左圖 3 所示。 Struts Controller ActionServlet 處理客戶請求,利用配置的 ActionMapping 對象把請求映射到 Action 處理器對象進行處理。 Action 處理對象訪問 ActionForm 中的數(shù)據(jù),處理和響應客戶請求,它還調用后臺的 Bean 組件,這些組件封裝了具體的業(yè)務邏輯。 Action 處理器對象根據(jù)處理結果通知 Controller Controller 進行下一步的處理。

    2.3 利用Struts框架進行MVC開發(fā)的流程

    在利用 Struts 框架進行 MVC 開發(fā)的時候,我們采用如下開發(fā)流程:

    (1)???? 收集和定義應用需求。

    (2)???? 基于數(shù)據(jù)采集和顯示的原則定義和開發(fā) " 屏幕顯示 " 需求。

    (3)???? 為每一個 " 屏幕顯示 " 定義訪問路徑。

    (4)???? 定義 ActionMappings 建立到應用業(yè)務邏輯之間的聯(lián)系。

    (5)???? 開發(fā)滿足 " 屏幕顯示 " 需求的所有支持對象。

    (6)???? 基于每一個 " 屏幕顯示 " 需求提供的數(shù)據(jù)屬性來創(chuàng)建對應的 ActionForm 對象。

    (7)???? 開發(fā)被 ActionMapping 調用的 Action 對象。

    (8)???? 開發(fā)應用業(yè)務邏輯對象 (Bean EJB ,等等 )

    (9)???? 對應 ActionMapping 設計的流程創(chuàng)建 JSP 頁面。

    (10) 建立合適的配置文件 struts-config.xml web.xml

    (11) 開發(fā) / 測試 / 部署。

    posted on 2005-01-27 14:41 eamoi 閱讀(4296) 評論(2)  編輯  收藏 所屬分類: Java畢業(yè)設計文檔

    評論:
    # re: MVC設計模式的Struts技術實現(xiàn)(1) 2005-02-03 10:06 | hoho
    不錯不錯.
    不過現(xiàn)在Struts可是1.2啦,樓主是不是要更新一下?  回復  更多評論
      
    # re: MVC設計模式的Struts技術實現(xiàn)(1) 2005-11-23 23:14 | bluebird
    好,頂一下  回復  更多評論
      
    主站蜘蛛池模板: 国产亚洲精品自在线观看| 在线观看免费国产视频| 国产va精品免费观看| 四虎成人精品一区二区免费网站| 免费黄色app网站| 亚洲一级片免费看| 亚洲国产精品自在线一区二区| 亚洲伊人精品综合在合线| 色窝窝亚洲AV网在线观看| 久久www免费人成精品香蕉| 99视频在线精品免费| 毛片免费在线观看网站| 亚洲精品无码永久在线观看 | 免费成人午夜视频| 国产成人精品日本亚洲专区61| 亚洲另类激情综合偷自拍| 亚洲综合无码一区二区痴汉| 日本黄页网址在线看免费不卡| 久久久久久国产精品免费免费男同| 最新中文字幕电影免费观看| 亚洲黄黄黄网站在线观看| 亚洲视频在线观看网址| 国产精品亚洲一区二区无码| 精品视频一区二区三区免费| 成年女人毛片免费观看97| 亚洲无人区午夜福利码高清完整版| 亚洲国产精品一区二区久| 黄色一级视频免费| 亚洲免费观看在线视频| 四虎AV永久在线精品免费观看| 亚洲国产综合精品中文第一区| 亚洲精华液一二三产区| 国产一区二区免费视频| 免费看a级黄色片| 亚洲AV日韩AV高潮无码专区| 午夜亚洲国产理论片二级港台二级| 精品国产一区二区三区免费| 又粗又黄又猛又爽大片免费| 亚洲日产2021三区| 久久久WWW免费人成精品| 成年人视频在线观看免费|