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

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

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

    ?

    關鍵詞 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 技術實現 ... 2

    第一章 應用系統開發框架對軟件開發的意義 ... 7

    1.1 什么是系統開發框架... 7

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

    1.3 應用系統開發框架對軟件開發的意義... 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開發的流程... 11

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

    3.1 LPMT的用戶需求... 13

    3.2 LPMT的需求實現... 13

    第四章 LPMT 中的 MVC 多層架構實現 ... 15

    4.1 系統架構... 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模式的實現邏輯... 16

    4.3 分頁顯示IssueMVC模式實現... 16

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

    5.1 Action中的控制結構實現... 18

    5.2 ActionForm中的控制邏輯實現... 18

    5.3 View中的控制邏輯實現... 18

    第六章 LPMT 中的 WebForm 術實現 ... 20

    6.1 Jakarta Struts 標簽庫... 20

    6.2 WebFormJakarta Struts標簽技術實現... 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


    引言

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

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


    第一章 應用系統開發框架對軟件開發的意義

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

    1.1 什么是系統開發框架

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

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

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

    1.2 框架、構件與設計模式

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

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

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

    1.3 應用系統開發框架對軟件開發的意義

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

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

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

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

    目前的主流的系統開發框架大都提供了對數據持久性、事務、安全性、負載均衡、應用集成等問題的現成的解決方案,因此采用框架技術進行軟件開發的主要優點包括: ?

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

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

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

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

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

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

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

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


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

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

    2.1 MVC設計模式

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

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

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

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

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

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

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

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

    1.jpg

    實現 MVC 設計模式的系統通常會包括業務邏輯層、數據邏輯層。

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

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

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

    2.2 Struts結構和處理流程

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

    2.jpg

    2.2.1 Controller

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

    2.2.2 Model

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

    2.2.3 View

    Struts 應用中的 View 部分是通過 JSP 技術實現的。 Struts 提供了自定義的標簽庫可以使用,通過這些自定義標簽可以非常好地和系統的 Model 部分交互,通過使用這些自定義標簽創建的 JSP 表單,可以實現和 Model 部分中的 ActionForm 的映射,完成對用戶數據的封裝,同時這些自定義標簽還提供了像模板定制等多種顯示功能。

    Struts 框架的處理流程清楚的體現了 MVC 系統的特點,簡單的 Struts 組件結構如左圖 3 所示。 Struts Controller ActionServlet 處理客戶請求,利用配置的 ActionMapping 對象把請求映射到 Action 處理器對象進行處理。 Action 處理對象訪問 ActionForm 中的數據,處理和響應客戶請求,它還調用后臺的 Bean 組件,這些組件封裝了具體的業務邏輯。 Action 處理器對象根據處理結果通知 Controller Controller 進行下一步的處理。

    2.3 利用Struts框架進行MVC開發的流程

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

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

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

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

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

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

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

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

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

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

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

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

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

    評論:
    # re: MVC設計模式的Struts技術實現(1) 2005-02-03 10:06 | hoho
    不錯不錯.
    不過現在Struts可是1.2啦,樓主是不是要更新一下?  回復  更多評論
      
    # re: MVC設計模式的Struts技術實現(1) 2005-11-23 23:14 | bluebird
    好,頂一下  回復  更多評論
      
    主站蜘蛛池模板: a成人毛片免费观看| 亚洲VA中文字幕无码毛片| 午夜网站在线观看免费完整高清观看 | 亚洲三级在线免费观看| 亚洲黄片手机免费观看| 亚洲精品无码mⅴ在线观看| 亚洲欧洲国产日韩精品| 亚洲一本大道无码av天堂| 暖暖免费高清日本中文| 99视频在线免费看| 中文永久免费观看网站| 羞羞漫画小舞被黄漫免费| 亚洲日韩国产精品乱-久| 亚洲国产人成网站在线电影动漫 | 亚洲精品福利你懂| 久久狠狠高潮亚洲精品 | 99re免费在线视频| 久久精品无码专区免费| 日韩在线视频线视频免费网站| 亚洲国产成人AV在线播放| 亚洲av永久无码精品三区在线4 | 国产精品偷伦视频观看免费| 一区二区三区免费在线视频 | 最近中文字幕大全免费视频| av永久免费网站在线观看| 国产黄色片免费看| 一级毛片aa高清免费观看| 污网站免费在线观看| 美女视频黄频a免费观看| 精品在线免费视频| 男女作爱免费网站| 成人特级毛片69免费观看| 粉色视频免费入口| 免费福利在线观看| 免费人人潮人人爽一区二区| 美女无遮挡免费视频网站| 国产精品亚洲专区一区| 美女黄网站人色视频免费| 成人午夜免费视频| 中文成人久久久久影院免费观看| 拍拍拍无挡免费视频网站|