隨筆-86  評(píng)論-767  文章-3  trackbacks-3

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

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

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

          ?

          關(guān)鍵詞 MVC? 架構(gòu) ? Struts? 軟件復(fù)用 ? 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 設(shè)計(jì)模式的 Struts 技術(shù)實(shí)現(xiàn) ... 2

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

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

          1.2 框架、構(gòu)件與設(shè)計(jì)模式... 7

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

          第二章 MVC 設(shè)計(jì)模式及 Struts 技術(shù) ... 9

          2.1 MVC設(shè)計(jì)模式... 9

          2.2 Struts結(jié)構(gòu)和處理流程... 10

          2.2.1 Controller10

          2.2.2 Model11

          2.2.3 View.. 11

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

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

          3.1 LPMT的用戶需求... 13

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

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

          4.1 系統(tǒng)架構(gòu)... 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模式的實(shí)現(xiàn)邏輯... 16

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

          第五章 LPMT 中的控制結(jié)構(gòu) ... 18

          5.1 Action中的控制結(jié)構(gòu)實(shí)現(xiàn)... 18

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

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

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

          6.1 Jakarta Struts 標(biāo)簽庫... 20

          6.2 WebFormJakarta Struts標(biāo)簽技術(shù)實(shí)現(xiàn)... 20

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

          第七章 LPMT 中的代碼復(fù)用技術(shù) ... 25

          7.1 Model復(fù)用... 25

          7.2 View復(fù)用... 28

          7.3 Controller復(fù)用... 28

          7.4 其他面向?qū)ο蟮拇a復(fù)用... 28

          7.4.1 封裝性... 28

          7.4.2 重載... 29

          7.4.3 繼承... 29

          結(jié)論 ... 29

          致謝語 ... 29

          參考文獻(xiàn) ... 30

          附錄 ... 30

          (1)??? Struts-config.xml30

          (2)??? IssueAction.java. 31

          (3)??? IssueBean.java. 36

          (4)??? IssueDetail.jsp. 46


          引言

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

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


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

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

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

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

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

          應(yīng)用框架強(qiáng)調(diào)的是軟件的設(shè)計(jì)重用性和系統(tǒng)的可擴(kuò)充性 , 以縮短大型應(yīng)用軟件系統(tǒng)的開發(fā)周期,提高開發(fā)質(zhì)量。與傳統(tǒng)的基于類庫的面向?qū)ο笾赜眉夹g(shù)比較,應(yīng)用框架更注重于面向?qū)I(yè)領(lǐng)域的軟件重用。應(yīng)用框架具有領(lǐng)域相關(guān)性,構(gòu)件根據(jù)框架進(jìn)行復(fù)合而生成可運(yùn)行的系統(tǒng)。框架的粒度越大,其中包含的領(lǐng)域知識(shí)就更加完整。

          1.2 框架、構(gòu)件與設(shè)計(jì)模式

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

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

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

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

          框架的最大好處就是重用。面向?qū)ο笙到y(tǒng)獲得的最大的復(fù)用方式就是框架,一個(gè)大的應(yīng)用系統(tǒng)往往可能由多層互相協(xié)作的框架組成。 ?

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

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

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

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

          (1)???? 領(lǐng)域內(nèi)的軟件結(jié)構(gòu)一致性好;

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

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

          (4)???? 軟件設(shè)計(jì)人員要專注于對(duì)領(lǐng)域的了解,使需求分析更充分;

          (5)???? 存儲(chǔ)了經(jīng)驗(yàn),可以讓那些經(jīng)驗(yàn)豐富的人員去設(shè)計(jì)框架和領(lǐng)域構(gòu)件,而不必限于低層編程;

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

          (7)???? 有利于在一個(gè)項(xiàng)目內(nèi)多人協(xié)同工作;

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


          第二章 MVC設(shè)計(jì)模式及Struts技術(shù)

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

          2.1 MVC設(shè)計(jì)模式

          MVC 結(jié)構(gòu)的框架的組成部分包括以下的內(nèi)容:

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

          ??? 模型包含了應(yīng)用程序的核心,它封裝了應(yīng)用程序的數(shù)據(jù)結(jié)構(gòu)和事務(wù)邏輯,集中體現(xiàn)了應(yīng)用程序的狀態(tài)。有時(shí)候僅包含狀態(tài)信息,因?yàn)樗⒉涣私庖晥D或控制器的信息。 JavaBean 很適合扮演這個(gè)角色,因?yàn)槠淠軌蛱幚斫^大部分事務(wù)邏輯和數(shù)據(jù)結(jié)構(gòu),還能與數(shù)據(jù)庫或文件系統(tǒng)進(jìn)行交互,承擔(dān)維護(hù)應(yīng)用程序數(shù)據(jù)的責(zé)任。

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

          ??? 視圖實(shí)現(xiàn)模塊的外觀,它是應(yīng)用程序的外在表現(xiàn)。它可以訪問模型的數(shù)據(jù),卻不了解模型的情況,同時(shí)它也不了解控制器的情況。當(dāng)模型發(fā)生改變時(shí),視圖會(huì)得到通知,它可以訪問模型的數(shù)據(jù),但不能改變這些數(shù)據(jù)。 Web 界面的開發(fā)人員不需要了解或關(guān)心數(shù)據(jù)庫發(fā)生什么事情,或者事務(wù)邏輯進(jìn)行了什么操作,他只需要掌握 HTML 的知識(shí),而不需要深入了解 Java JSP 頁面適合完成這個(gè)功能,因?yàn)樗话苌俚姆?/span> HTML 代碼。

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

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

          Model View Controller 這三類組件各自的責(zé)任以及它們之間的關(guān)系如圖 1 所示。

          1.jpg

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

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

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

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

          2.2 Struts結(jié)構(gòu)和處理流程

          Struts 利用 Jsp 頁面、自定義的標(biāo)簽庫、 Java Servlet Action 等類來實(shí)現(xiàn)服務(wù)器端建模,并為 MVC 模式設(shè)計(jì)提供相應(yīng)的組件。

          2.jpg

          2.2.1 Controller

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

          2.2.2 Model

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

          2.2.3 View

          Struts 應(yīng)用中的 View 部分是通過 JSP 技術(shù)實(shí)現(xiàn)的。 Struts 提供了自定義的標(biāo)簽庫可以使用,通過這些自定義標(biāo)簽可以非常好地和系統(tǒng)的 Model 部分交互,通過使用這些自定義標(biāo)簽創(chuàng)建的 JSP 表單,可以實(shí)現(xiàn)和 Model 部分中的 ActionForm 的映射,完成對(duì)用戶數(shù)據(jù)的封裝,同時(shí)這些自定義標(biāo)簽還提供了像模板定制等多種顯示功能。

          Struts 框架的處理流程清楚的體現(xiàn)了 MVC 系統(tǒng)的特點(diǎn),簡單的 Struts 組件結(jié)構(gòu)如左圖 3 所示。 Struts Controller ActionServlet 處理客戶請(qǐng)求,利用配置的 ActionMapping 對(duì)象把請(qǐng)求映射到 Action 處理器對(duì)象進(jìn)行處理。 Action 處理對(duì)象訪問 ActionForm 中的數(shù)據(jù),處理和響應(yīng)客戶請(qǐng)求,它還調(diào)用后臺(tái)的 Bean 組件,這些組件封裝了具體的業(yè)務(wù)邏輯。 Action 處理器對(duì)象根據(jù)處理結(jié)果通知 Controller Controller 進(jìn)行下一步的處理。

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

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

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

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

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

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

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

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

          (7)???? 開發(fā)被 ActionMapping 調(diào)用的 Action 對(duì)象。

          (8)???? 開發(fā)應(yīng)用業(yè)務(wù)邏輯對(duì)象 (Bean EJB ,等等 )

          (9)???? 對(duì)應(yīng) ActionMapping 設(shè)計(jì)的流程創(chuàng)建 JSP 頁面。

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

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

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

          評(píng)論:
          # re: MVC設(shè)計(jì)模式的Struts技術(shù)實(shí)現(xiàn)(1) 2005-02-03 10:06 | hoho
          不錯(cuò)不錯(cuò).
          不過現(xiàn)在Struts可是1.2啦,樓主是不是要更新一下?  回復(fù)  更多評(píng)論
            
          # re: MVC設(shè)計(jì)模式的Struts技術(shù)實(shí)現(xiàn)(1) 2005-11-23 23:14 | bluebird
          好,頂一下  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 新丰县| 团风县| 贵定县| 泽库县| 林口县| 阳曲县| 扎囊县| 灵武市| 玉龙| 罗田县| 马边| 紫云| 铜川市| 靖边县| 南开区| 阿合奇县| 启东市| 顺昌县| 绍兴县| 太康县| 灌云县| 寿阳县| 达孜县| 康定县| 德州市| 巴马| 银川市| 祁阳县| 唐山市| 志丹县| 盖州市| 乐山市| 抚远县| 兰考县| 米泉市| 闽侯县| 社旗县| 宜昌市| 和硕县| 游戏| 霍林郭勒市|