




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
探討MVC設(shè)計(jì)模式在JavaWeb開發(fā)中的具體框架搭建,軟件工程論文內(nèi)容摘要:隨著互聯(lián)網(wǎng)技術(shù)的大量普及和網(wǎng)絡(luò)技術(shù)的快速發(fā)展,MVC設(shè)計(jì)形式分層清楚明晰,有利于前端和后端開發(fā)人員共同開發(fā),成為了當(dāng)前B/S架構(gòu)主流的開發(fā)形式。本文從MVC設(shè)計(jì)形式介紹到MVC設(shè)計(jì)形式在JavaWeb開發(fā)的實(shí)現(xiàn)步驟,最后介紹詳細(xì)框架的搭建。使用MVC設(shè)計(jì)形式下的JavaWeb框架能夠保證項(xiàng)目具有良好安全性、可擴(kuò)展性和易維護(hù)。
本文關(guān)鍵詞語:JavaWeb;MVC;設(shè)計(jì)形式;軟件開發(fā);軟件分層;
1引言
隨著互聯(lián)網(wǎng)技術(shù)的大量普及和網(wǎng)絡(luò)技術(shù)的快速發(fā)展,越來越多的互聯(lián)網(wǎng)創(chuàng)業(yè)者投入到互聯(lián)網(wǎng)建設(shè)中,Web架構(gòu)軟件方便部署安裝、使用方便等特點(diǎn)遭到了越來越多的創(chuàng)業(yè)者的青睞。在Web架構(gòu)軟件的開發(fā)中選擇什么樣的開發(fā)形式就尤為重要了。MVC設(shè)計(jì)形式分層清楚明晰,有利于前端和后端開發(fā)人員共同開發(fā),能夠提高開發(fā)效率和維護(hù)成本,成為了當(dāng)前B/S架構(gòu)主流的開發(fā)形式。
本文通過介紹MVC設(shè)計(jì)形式優(yōu)點(diǎn)和相關(guān)的構(gòu)造,讓大家對(duì)MVC設(shè)計(jì)形式有較深入的認(rèn)識(shí),然后使用Java語言來實(shí)現(xiàn)MVC設(shè)計(jì)形式,還通過實(shí)際的JSP+Servlet+JavaBean的代碼分層的思想來介紹怎樣進(jìn)行開發(fā),最后告訴大家什么類型的項(xiàng)目比擬合適使用MVC設(shè)計(jì)形式。讓大家從理論到實(shí)踐,愈加深入的了解MVC設(shè)計(jì)形式的實(shí)踐。
2MVC設(shè)計(jì)形式介紹
MVC是一種經(jīng)典的設(shè)計(jì)形式,在軟件工程設(shè)計(jì)開發(fā)中非常實(shí)用,最早由smalltalk語言研究中心提出,Java的發(fā)展豐富了MVC的思想。MVC由Model〔模型〕、View〔視圖〕、Controller〔控制〕三種部件組成。由于MVC的分層開發(fā)的思想,極大的提高開發(fā)的效率,利于日后項(xiàng)目維護(hù),遭到了開發(fā)人員的歡迎。
模型〔Model〕是MVC設(shè)計(jì)形式的核心,封裝了軟件項(xiàng)目的業(yè)務(wù)流程。模型從視圖中獲取用戶請(qǐng)求或數(shù)據(jù),并將處理結(jié)果返回給視圖,業(yè)務(wù)流程相對(duì)其他模塊是處于封裝,僅提供接口進(jìn)行訪問,保證了模塊之間的獨(dú)立,使軟件易于維護(hù)。當(dāng)界面進(jìn)行修改后,不會(huì)影響后臺(tái)的業(yè)務(wù)邏輯和流程,當(dāng)業(yè)務(wù)流程需要變更時(shí),前臺(tái)界面無需修改,可以以正常使用。
視圖〔View〕在MVC設(shè)計(jì)形式中是將界面與業(yè)務(wù)流程的處理相分離,視圖負(fù)責(zé)界面數(shù)據(jù)和用戶請(qǐng)求,將業(yè)務(wù)處理流程交給模型層。同時(shí),從模型層獲取數(shù)據(jù)顯示給用戶。
控制器〔Controller〕在MVC設(shè)計(jì)形式中負(fù)責(zé)用戶請(qǐng)求的接收和轉(zhuǎn)發(fā),控制器從視圖獲取用戶的請(qǐng)求,根據(jù)相關(guān)業(yè)務(wù)要求傳遞給相應(yīng)的模型進(jìn)行處理,模型處理完成后,選擇業(yè)務(wù)相應(yīng)的視圖進(jìn)行顯示。
使用MVC設(shè)計(jì)形式的優(yōu)勢(shì)在于多個(gè)視圖能共用一個(gè)模型。當(dāng)需要用多種方式來訪問應(yīng)用程序時(shí),使用MVC設(shè)計(jì)形式是一個(gè)很好的解決方案。模型與控制器和視圖相離,當(dāng)業(yè)務(wù)邏輯需要修改時(shí),能夠快速修改而不影響界面。MVC設(shè)計(jì)形式的三個(gè)部件是互相獨(dú)立的,修改華而不實(shí)一個(gè)部件不會(huì)影響其他兩個(gè)部件的使用,可見MVC設(shè)計(jì)是一種松耦合設(shè)計(jì)思想。
3MVC設(shè)計(jì)形式在JavaWeb開發(fā)的實(shí)現(xiàn)步驟
Java在1995年發(fā)布后,由于Java的高效性、安全性、穩(wěn)定性和可移植性遭到了開發(fā)人員青睞,JavaWeb開發(fā)也變得越來越熱門,我們使用Servlet作為控制器,由Servlet獲取所有客戶端的請(qǐng)求,然后根據(jù)請(qǐng)求調(diào)用相應(yīng)的JavaBean〔模型〕,最后將數(shù)據(jù)顯示在JSP〔視圖〕上。實(shí)現(xiàn)MVC設(shè)計(jì)形式的軟件需要下面步驟:
〔1〕分析軟件項(xiàng)目的需求,對(duì)軟件項(xiàng)目進(jìn)行分離。分析實(shí)際軟件開發(fā)需求功能,整理出項(xiàng)目業(yè)務(wù)和流程。設(shè)計(jì)模型部件要封裝項(xiàng)目所需數(shù)據(jù)和計(jì)算等功能,并提供數(shù)據(jù)訪問和顯示的相關(guān)操作,并提供相應(yīng)的接口。
〔2〕設(shè)計(jì)和制作項(xiàng)目所需的界面視圖。設(shè)計(jì)每個(gè)界面的顯示形式,視圖從模型中獲取數(shù)據(jù),然后顯示出來。我們采用JSP+的形式來進(jìn)行界面的布局設(shè)計(jì),保證軟件的兼容性。
〔3〕設(shè)計(jì)和實(shí)現(xiàn)控制器??刂破餍枰⑵鹋c模型和視圖的聯(lián)絡(luò),從視圖中獲取數(shù)據(jù)和響應(yīng)操作,然后對(duì)接模型進(jìn)行處理,然后再顯示出來,我們采用Servlet作為控制器。
〔4〕對(duì)MVC各個(gè)模塊進(jìn)行測(cè)試。在完成了視圖、控制器和模型后,我們需要單獨(dú)對(duì)每個(gè)模塊進(jìn)行測(cè)試,比方視圖能夠進(jìn)行界面兼容性的測(cè)試,能否符合主流閱讀器的需要,還需進(jìn)行用戶體檢的測(cè)試,看看能否有利于需求的功能的使用??刂破鞯臏y(cè)試主要是對(duì)相關(guān)的跳轉(zhuǎn)、獲取數(shù)據(jù)能否準(zhǔn)確。模型的測(cè)試主要是進(jìn)行對(duì)實(shí)際項(xiàng)目的需求和開發(fā)能否一致,以便出現(xiàn)功能性的錯(cuò)誤
〔5〕項(xiàng)目的整體測(cè)試。在開發(fā)完成項(xiàng)目后,應(yīng)該對(duì)項(xiàng)目進(jìn)行測(cè)試,每個(gè)模塊使用了控制器進(jìn)行跳轉(zhuǎn),功能性能否正確,以往有開發(fā)人員分層采用MVC設(shè)計(jì)形式,但是實(shí)際項(xiàng)目卻不用,造成后期維護(hù)非常困難,所以一定要對(duì)項(xiàng)目整體流程進(jìn)行測(cè)試,看看能否真正使用MVC設(shè)計(jì)形式。
4基于MVC設(shè)計(jì)形式JavaWeb框架的搭建
JavaWeb框架采用JSP+Servlet+JavaBean來搭建,用戶通過request調(diào)用Servlet,Servlet根據(jù)用戶響應(yīng)的操作和用戶的數(shù)據(jù)去調(diào)用相應(yīng)的JavaBean,JavaBean會(huì)連接和操作數(shù)據(jù)庫,獲取到用戶所需的數(shù)據(jù),Servlet根據(jù)JavaBean返回的數(shù)據(jù)調(diào)用對(duì)應(yīng)的JSP視圖界面,JSP通過response對(duì)象通知用戶并顯示,詳細(xì)形式如以下圖1:
圖1JSP+Servlet+JavaBean〔MVC設(shè)計(jì)形式〕
JSP+Servlet+JavaBean來進(jìn)行項(xiàng)目框架搭建,詳細(xì)分層如下:
〔1〕實(shí)體類,主要實(shí)體屬性和數(shù)據(jù)庫表的字段逐一對(duì)應(yīng),采用set和get方式來寫和讀數(shù)據(jù),采用標(biāo)準(zhǔn)的JavaBean.
〔2〕數(shù)據(jù)庫操作類,主要是封裝數(shù)據(jù)庫連接及相關(guān)操作的方式方法,以便其他操作數(shù)據(jù)庫的類進(jìn)行使用。
〔3〕接口,根據(jù)業(yè)務(wù)流程需求,進(jìn)行接口的編寫,對(duì)項(xiàng)目進(jìn)行設(shè)計(jì)與規(guī)劃。
〔4〕接口實(shí)現(xiàn)類,根據(jù)業(yè)務(wù)實(shí)際需要,編寫實(shí)際業(yè)務(wù)操作的代碼。
〔5〕接口代理類,根據(jù)業(yè)務(wù)需要進(jìn)行邏輯控制,編寫相關(guān)和數(shù)據(jù)庫操作的業(yè)務(wù)內(nèi)容。
〔6〕Serlvet控制類,根據(jù)業(yè)務(wù)進(jìn)行控制類的編寫。
〔7〕JSP視圖:對(duì)頁面采用方式布局界面,并根據(jù)獲取的數(shù)據(jù)使用JSP技術(shù)在頁面中顯示和收集。
5項(xiàng)目該怎樣選擇使用MVC設(shè)計(jì)形式
MVC設(shè)計(jì)形式能夠能使軟件開發(fā)工作更系統(tǒng)化、模塊化,增加了項(xiàng)目開發(fā)的效率和可重用性。同時(shí)MVC設(shè)計(jì)形式也存在一定的缺陷。項(xiàng)目使用MVC設(shè)計(jì)形式,會(huì)增加的項(xiàng)目的負(fù)責(zé)度,若一個(gè)項(xiàng)目難度較小,完全能夠不適用MVC設(shè)計(jì)形式,甚至也不需要使用分層思想。
我們?cè)陂_發(fā)軟件項(xiàng)目之前,什么樣的項(xiàng)目符合MVC設(shè)計(jì)形式呢?比方一個(gè)項(xiàng)目需求需要不斷增加和完善的,固然項(xiàng)目內(nèi)容不大,但是后期改動(dòng)比擬大,那么使用MVC設(shè)計(jì)形式是非常好的選擇,還有項(xiàng)目需要長期使用,需要有人進(jìn)行長期維護(hù)的,那么也是需要使用MVC設(shè)計(jì)形式的,由于MVC固然開發(fā)工作量大,但是后期易于維護(hù)的優(yōu)點(diǎn)就顯現(xiàn)出來了。還有項(xiàng)目需求復(fù)雜度大,需要多人分工的,那么使用MVC設(shè)計(jì)形式也是非常必要的,使用MVC設(shè)計(jì)形式有助于分解項(xiàng)目難度,提高團(tuán)隊(duì)的協(xié)作能力。
MVC設(shè)計(jì)形式存在的缺陷就是分層多,造成開發(fā)工作量大,MVC設(shè)計(jì)形式主要是前期工作多,以便日后維護(hù)和升級(jí)工作量少,那什么項(xiàng)目無需使用MVC設(shè)計(jì)形式呢?比方一個(gè)過渡性的產(chǎn)品,時(shí)間開發(fā)要求比擬緊,日后也不進(jìn)行維護(hù)的項(xiàng)目,那么就不要采用MVC設(shè)計(jì)形式進(jìn)行開發(fā)了。還有就是功能性非常小的,日后需求不會(huì)增加和變更的項(xiàng)目,那么也不必采用MVC設(shè)計(jì)形式,這些項(xiàng)目不采用MVC形式,還能夠提高開發(fā)周期和產(chǎn)品的質(zhì)量。
6結(jié)束語
本文介紹了MVC設(shè)計(jì)形式的特點(diǎn)以及優(yōu)勢(shì),結(jié)合Java開發(fā)技術(shù),實(shí)現(xiàn)了JavaWeb在MVC設(shè)計(jì)形式下框架的搭建,使用的JavaWeb中原生JSP技術(shù)來實(shí)踐MVC設(shè)計(jì)形式。使用MVC設(shè)計(jì)形式會(huì)使得整個(gè)軟件項(xiàng)目開發(fā)具有系統(tǒng)性,實(shí)現(xiàn)了軟件開發(fā)的多人合作開發(fā),使得程序愈加模塊化,提高了代碼復(fù)用性,降低了項(xiàng)目維護(hù)和開發(fā)成本。所以我們采用MVC設(shè)計(jì)形式的JavaWeb技術(shù)能夠保證軟件項(xiàng)目具有良好安全性、可擴(kuò)展性和易維護(hù)。
以下為參考文獻(xiàn)
[1]賴英旭;劉增輝;李毛毛。MVC形式在B/S系統(tǒng)開發(fā)中的應(yīng)用研究[J].微計(jì)算機(jī)信息,2021,〔10〕.
[2]田娟;徐釗?;贘2EE的MVC設(shè)計(jì)形式的分析與考慮[J].計(jì)算機(jī)與當(dāng)代化,2018,〔10〕.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年迪慶a2駕駛證貨運(yùn)從業(yè)資格證模擬考試
- 2025年植物施藥保護(hù)機(jī)械項(xiàng)目建議書
- 2025年唐山道路貨運(yùn)運(yùn)輸從業(yè)資格證模擬考試
- 食品安全中英文
- 兩圖一信培訓(xùn)
- 探究鴿巢問題數(shù)學(xué)教學(xué)課件
- 預(yù)處理工藝海水淡化
- 古代橋梁沖刷防護(hù)策略案例分析與特征提取
- 人工智能對(duì)高校大學(xué)生心理健康教育質(zhì)量提升的影響研究
- 2025年形狀記憶合金項(xiàng)目合作計(jì)劃書
- 隱患排查統(tǒng)計(jì)分析報(bào)告
- 給小學(xué)數(shù)學(xué)教師的建議
- 中國古代文學(xué)史二復(fù)習(xí)資料
- 2024年重慶發(fā)展投資有限公司招聘筆試參考題庫含答案解析
- 成熟生產(chǎn)線評(píng)價(jià)報(bào)告
- 足球準(zhǔn)確傳球訓(xùn)練技巧:提高準(zhǔn)確傳球能力掌控比賽節(jié)奏
- 自救器培訓(xùn)(2023年煤礦安全生產(chǎn)培訓(xùn)教師培訓(xùn)班隨堂課程設(shè)計(jì))
- 成人癌性疼痛護(hù)理指南解讀
- 供應(yīng)鏈安全風(fēng)險(xiǎn)評(píng)估與管理項(xiàng)目風(fēng)險(xiǎn)評(píng)估報(bào)告
- 2023年-2024年電子物證專業(yè)考試復(fù)習(xí)題庫(含答案)
- 北師大版數(shù)學(xué)三年級(jí)下冊(cè)《分一分》(一)課件
評(píng)論
0/150
提交評(píng)論