資源描述:
《基于mvc架構(gòu)的web應(yīng)用開發(fā)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、基于MVC架構(gòu)的Web應(yīng)用開發(fā)摘要隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展和應(yīng)用,Web技術(shù)在Internet上得到了廣泛的應(yīng)用。MVC是一種廣泛運(yùn)用的軟件架構(gòu),本文介紹了MVC的基本概念以及其在Web軟件系統(tǒng)中的應(yīng)用,然后結(jié)合實(shí)例提出一種用」SP和Servlet技術(shù)實(shí)現(xiàn)MVC架構(gòu)的方法。關(guān)鍵詞MVCStruts框架WebjSP技術(shù)中圖分類號(hào):TP393.09文獻(xiàn)標(biāo)識(shí)碼:A當(dāng)前Web應(yīng)用開發(fā)方式有兩種,即傳統(tǒng)的Web開發(fā)方式和基于MVC(ModelViewController)模式的開發(fā)方式。后者能夠克服傳統(tǒng)Web應(yīng)用開發(fā)方式所帶來的缺點(diǎn),將顯示邏輯和業(yè)務(wù)邏輯明確分離,以
2、滿足越來越復(fù)雜的Web應(yīng)用系統(tǒng)開發(fā)的設(shè)計(jì)需求。因此,采用基于MVC架構(gòu)的Web應(yīng)用開發(fā)方式成為程序設(shè)計(jì)幵發(fā)人員的首選。在軟件架構(gòu)上,MVC模式越來越被廣泛應(yīng)用。本文將介紹一些MVC的基本概念,再結(jié)合基于MVC的Struts框架的體系架構(gòu),提出了基于MVC架構(gòu)的Web應(yīng)用開發(fā)的具體設(shè)計(jì)和實(shí)現(xiàn)方式。1MVC架構(gòu)MVC是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫業(yè)務(wù)邏輯。MVC被
3、用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中。MVC是一種使用MVC(ModelViewController模型-視圖-控制器)設(shè)計(jì)創(chuàng)建Web應(yīng)用程序的模式。(1)Model(模型)表示應(yīng)用程序核心(比如數(shù)據(jù)庫記錄列表)。完全獨(dú)立于系統(tǒng)的其他部分,為系統(tǒng)提供封裝所需要的數(shù)據(jù),并提供了數(shù)據(jù)處理和數(shù)據(jù)訪問的方法。這些方法是由模型提供給外界的操作接口。(2)Controller(控制器)處理輸入(寫入數(shù)據(jù)庫記錄)。Controller定義了應(yīng)用程序的數(shù)據(jù)處理過程。它把視圖的用戶輸入接受,然后將用戶的設(shè)計(jì)需求理解成相應(yīng)的數(shù)據(jù)處理行為,并調(diào)用
4、模型提供的操作接口,進(jìn)行數(shù)據(jù)處理和數(shù)據(jù)訪問??刂破魉鶎?shí)現(xiàn)的行為包括業(yè)務(wù)處理和修改模型狀態(tài)。(3)View(視圖)顯示數(shù)據(jù)(數(shù)據(jù)庫記錄)。View用于組織模型的內(nèi)容,是整個(gè)系統(tǒng)與用戶之間的接口。View在Model那里獲取數(shù)據(jù),并以一定的方式呈現(xiàn)出來,同時(shí)View還要將用戶的設(shè)計(jì)需求和輸入傳送給控制器。模型/視圖/控制器三個(gè)部分將軟件系統(tǒng)的邏輯描述、數(shù)據(jù)處理和圖形顯示分離開,降低了各部分之間的耦合程度,提高了系統(tǒng)的靈活性、可維護(hù)性、可擴(kuò)展性和可復(fù)用性。1MVC架構(gòu)在WEB開發(fā)應(yīng)用中的關(guān)鍵問題與技術(shù)(1)挖掘系統(tǒng)所需功能:大型系統(tǒng)可采用Uercase圖來描述系
5、統(tǒng)功能。并使用前置條件、主事件流等形式來描述文檔格式。(2)設(shè)計(jì)數(shù)據(jù)庫并設(shè)計(jì)模型:使用PowerDesigner工具來進(jìn)行數(shù)據(jù)建模,并設(shè)計(jì)數(shù)據(jù)模型,XML數(shù)據(jù)自描述等。(3)設(shè)計(jì)與實(shí)現(xiàn)操作接口:操作接口描述了數(shù)據(jù)實(shí)體的約束與協(xié)議。在MVC架構(gòu)下由模型完成操作接口的實(shí)現(xiàn)。(4)設(shè)計(jì)對(duì)象組件:對(duì)于Struts框架來說,每個(gè)組件都有一個(gè)ActionForm相對(duì)應(yīng),ActionFormBean用于在View組件和Controller組件之間。(5)設(shè)計(jì)操作流:在功能設(shè)計(jì)階段事件流已經(jīng)確定,為在Struts應(yīng)用中實(shí)現(xiàn)這個(gè)流控制,由Action和Struts-conf
6、ig.xm文件聯(lián)合完成。(1)設(shè)計(jì)用戶接口:這部分需要比較完善考慮用戶需求,并給用戶帶來良好的用戶體驗(yàn)。(2)完善與修改設(shè)計(jì):對(duì)設(shè)計(jì)雛形和用戶體驗(yàn)進(jìn)行測(cè)試和評(píng)估,收集修改意見,并進(jìn)一步完善系統(tǒng)功能與設(shè)計(jì)。1MVC架構(gòu)在Web開發(fā)應(yīng)用中的實(shí)例MVC架構(gòu)的理解很容易,但是它的實(shí)現(xiàn)卻不容易。因此出現(xiàn)了一些基于MVC的Web應(yīng)用框架(Framework),如Struts框架等。使用這些框架來進(jìn)行系統(tǒng)的開發(fā),可以給開發(fā)者減輕很多工作量,不再需要花費(fèi)大量精力在MVC架構(gòu)的細(xì)節(jié)上,從而能使開發(fā)者集中于設(shè)計(jì)系統(tǒng)和具體的組件。當(dāng)然開發(fā)者需要花費(fèi)一段時(shí)間來學(xué)習(xí)Sturts框架
7、的開發(fā)與設(shè)計(jì)環(huán)境。3.1模型層設(shè)計(jì)模型是應(yīng)用程序的核心組成部分,它表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯。一個(gè)模型可以提供多個(gè)視圖,所以提高了程序的可重用性。模型設(shè)計(jì)的關(guān)鍵是將SQL寫入到XML文件中,使用配置文件的方式處理業(yè)務(wù)邏輯。3.2視圖層設(shè)計(jì)視圖層主要負(fù)責(zé)為用戶提供良好的操作接口和用戶體驗(yàn),視圖接收用戶輸入的信息,并能將最后的信息呈現(xiàn)給用戶,但它并不接收任何業(yè)務(wù)邏輯處理。在Web軟件系統(tǒng)開發(fā)框架中,使用XSL來轉(zhuǎn)換Web控制處理器返回的XML形式的結(jié)果集最終呈現(xiàn)給用戶。3.3控制層設(shè)計(jì)MVC架構(gòu)的控制器Controller是整個(gè)Web應(yīng)用程序的控制中心。它主要負(fù)責(zé)
8、以下功能:接受來自視圖的用戶輸入和處理請(qǐng)求(request),并負(fù)