




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第27卷第10期 甘肅科技 VoL 27No.10 2011年5月 Gansu Science and Technology May.2011MVC設(shè)計(jì)模式及其改進(jìn)版在Java Web開發(fā)中的應(yīng)用鄭福傳(蘭州交通大學(xué),甘肅蘭州730070摘要:對(duì)MVC的定義、功能以及所包含的三部分內(nèi)容進(jìn)行了闡述,并通過(guò)其在Java應(yīng)用程序中的演化過(guò)程予以示 例解析,從MVC在Java單機(jī)版上的應(yīng)用,即觀察者模式,逐步過(guò)渡到Java Web開發(fā)應(yīng)用中,并給予詳細(xì)的示例演示 和說(shuō)明。關(guān)鍵詞:計(jì)算機(jī)應(yīng)用技術(shù);MVC;觀察者;設(shè)計(jì)模式;JSP;¥ervlet;Java Web;事件驅(qū)動(dòng)機(jī)制中圖分類號(hào):m11l 定義闡
2、述設(shè)計(jì)模式:是經(jīng)過(guò)驗(yàn)證的,用于解決特定環(huán)境 下、重復(fù)出現(xiàn)的特定問(wèn)題的解決方案。經(jīng)過(guò)驗(yàn)證:說(shuō) 明這個(gè)設(shè)計(jì)模式是相對(duì)比較優(yōu)秀的方案,是可行的 方案,這樣才具有學(xué)習(xí)、研究和使用價(jià)值。MVC設(shè)計(jì)模式:是一種架構(gòu)型設(shè)計(jì)模式,它本 身不引入新的功能,只是指導(dǎo)我們把Web應(yīng)用結(jié)構(gòu) 做的更加合理,實(shí)現(xiàn)邏輯與頁(yè)面相分離。功能型設(shè)計(jì)模式:如單例(保證類的實(shí)例唯 一、工廠(選擇實(shí)現(xiàn)、值對(duì)象(封裝數(shù)據(jù)、DAO(屏 蔽變化等等。架構(gòu)型設(shè)計(jì)模式:結(jié)構(gòu)性的設(shè)計(jì)模式,只是讓程 序更具有結(jié)構(gòu)化。Java中MVC來(lái)源思路及進(jìn)化過(guò)程:Servia= Java+HTML字符串,問(wèn)題產(chǎn)生拼字符串太麻煩一+解決方案:HTML獨(dú)立出來(lái)從而
3、得到_+JSP*HTML +Java腳本(能解決Servia問(wèn)題,但是帶來(lái)了頁(yè)面 和邏輯混雜-+解決方案:MVC(指導(dǎo)我們讓W(xué)eb 應(yīng)用程序結(jié)構(gòu)更加合理。2MVC三部分內(nèi)容及各部分功能 (1Model:VO+邏輯層:可以理解為后臺(tái)部分。 功能:封裝應(yīng)用狀態(tài)、響應(yīng)狀態(tài)查詢、暴露應(yīng)用 功能。(2View:視圖層的三大功能,典型的如修改頁(yè) 面,觸發(fā)事件而不處理,純jsp自己處理,提交給 Controller處理。功能:產(chǎn)生HTML響應(yīng)、請(qǐng)求模型更新、提供 腫ML表單用于用戶請(qǐng)求。對(duì)比:純jsp頁(yè)面中事件處理與頁(yè)面展示混雜 在一起,MVC中事件處理由Controller承擔(dān),從而達(dá) 到邏輯與頁(yè)面相分離
4、的效果。(3Controller:事件處理過(guò)程。功能:驗(yàn)證HTML請(qǐng)求的數(shù)據(jù)、將用戶數(shù)據(jù)與 模型更新相映射、選擇用于響應(yīng)的視圖。3MVC演化過(guò)程及示例I Vie靴.JSP頁(yè)哳F_Modcl vo餿輯瑤l l rrI圖1系統(tǒng)結(jié)構(gòu)這種結(jié)構(gòu)不太合理,在JsP頁(yè)面寫的代碼太多, 尤其是控制器代碼,頁(yè)面和邏輯太過(guò)于混雜,因此引 入一個(gè)中間層控制器來(lái)專門處理控制器代碼。 3.2標(biāo)準(zhǔn)的MVC的組件關(guān)系如圖2所示圖2標(biāo)準(zhǔn)的MVC的組件關(guān)系View用戶請(qǐng)求到控制器,控制器狀態(tài)改變通知 Model,Model主動(dòng)通知View說(shuō)Model自身已改變, View主動(dòng)去Model里面去狀態(tài)查詢。下面先看個(gè)標(biāo)準(zhǔn)的MVC單
5、機(jī)版的示例:Eclipse本身就是基于MVC做的,打開Eclipse 時(shí)修改編輯區(qū)的代碼時(shí),左邊的Navigator視圖和右 邊的Outline視圖等都會(huì)自動(dòng)更新而隨著編輯區(qū)的 代碼改變而改變。實(shí)際上這些窗口觀察的都是同一甘肅科技第27卷個(gè)Model,即觀察xx Java代碼文件的內(nèi)容,這種害個(gè)View觀察者觀察同一個(gè)Model文件的在設(shè)計(jì)模 式中也有個(gè)設(shè)計(jì)模式與其對(duì)應(yīng)即觀察者設(shè)計(jì)模式。觀察者設(shè)計(jì)模式Java代碼示例如下:田3目標(biāo)對(duì)毫觀察者觀察的為目標(biāo)對(duì)象的內(nèi)容Content.當(dāng)內(nèi)容改變了即有setContent需要通知所有的觀察 者。(2其次應(yīng)該有些觀察者,叫做MyObse竹er,如圖4所示
6、。目4觀曩者M(jìn)yObwer實(shí)現(xiàn)一個(gè)uPdme回調(diào)方法.即MyOb螂'er去觀察MySobj鐘t,觀察到后采取的處理即這個(gè)update方法。這里的觀察者又有兩種模型, 一種是被觀察者主動(dòng)推過(guò)來(lái)的消息即推模塑。另一 種就是觀察者主動(dòng)去拉內(nèi)容即拉模型。其實(shí)觀察者 模式也叫出版訂閱模式.推模型即訂報(bào)的意思,郎報(bào) 刊發(fā)行商將報(bào)紙送上門服務(wù),拉模型即某個(gè)時(shí)刻大 家主動(dòng)去報(bào)刊亭買報(bào)的這種模型。(3客戶端測(cè)試代碼。CllenL j叫a.如圖5所示?;髀鹙匣繭蕾j三衛(wèi)王王要工五譬翟 , 二“煅=二.=; |:湛二-:=. ;l.一fJ,l:=:=:=:rl ,一 :=囂:慧=:=:12=”瞳5客戶螭舅
7、試代珥首先創(chuàng)建一十目標(biāo)對(duì)象,然后創(chuàng)建三個(gè)觀察者然后注冊(cè)觀察者相當(dāng)于訂報(bào)紙.然后報(bào)社出報(bào)紙郎 內(nèi)容改變時(shí)觸發(fā)觀察者,當(dāng)被觀察的對(duì)象改變時(shí)需要通知觀察者也日口對(duì)應(yīng)MySubj盹t巾v8的11、12行代碼。代碼輸出結(jié)果,如圖6所示。田6代日輸出塘果當(dāng)將ClienL】a性文件中的第8、12行注釋掉時(shí), 輸出結(jié)果中同2行隨之也不顯示出來(lái),即所謂的lis 退訂。33改進(jìn)版MVC在Java WEB開發(fā)中會(huì)產(chǎn)生一個(gè)問(wèn)題:就是為什么Model會(huì)主動(dòng)通知View自身已經(jīng)改變了昵? 因?yàn)镴B伯中標(biāo)準(zhǔn)的MVC起源于Swing,這種標(biāo)準(zhǔn)的MVC只能適應(yīng)于單機(jī)版.在WEB開發(fā)中無(wú)法實(shí)現(xiàn)。因?yàn)閃EB是基于請(qǐng)求應(yīng)答模式的環(huán)境
8、.Model不臺(tái)在沒(méi)有請(qǐng)求的情況下直接通知View自身的改變。改進(jìn)版MVC組件關(guān)系如陽(yáng)7所示。7畦進(jìn)版MVC目悻美K在實(shí)際開發(fā)WEB應(yīng)用的時(shí)候,由于無(wú)法按照標(biāo)準(zhǔn)的MVC去實(shí)現(xiàn),通常我們會(huì)把邏輯部分轉(zhuǎn)移到邏輯層去實(shí)現(xiàn),所以Moclel就退變成只用來(lái)封裝散據(jù),也就是我們常寫的VO;此時(shí)View一般不直接和邏輯層交互.所有跟邏輯層的交互都由控制器來(lái)宴 現(xiàn).View只和控制器交互,如圖7所示。改進(jìn)版后的MVC一般實(shí)現(xiàn)方式:View用JSP來(lái)實(shí)現(xiàn).Controller由Sewlet來(lái)實(shí)現(xiàn),Model由JayaB來(lái)實(shí)現(xiàn)。擻開現(xiàn)在流行的SSH三大框架,下面是一個(gè)MVC的修改功能前臺(tái)的實(shí)現(xiàn)(后臺(tái)省略.此MVC
9、 為JSTL+Model2的實(shí)現(xiàn)方式。參考文獻(xiàn):【1h印:/w”L J_啦yB emm/wikl/tope/8129142】 h 呻 :/I i n u x 521叫 伽伽礦砷撐 6, “55html3】bllp:/teeh.鼬,t惴一一03Ao啪,¨2佩dtml4】hnp:/*ddzee.javaeycom/Mof/5721帕(下轉(zhuǎn)冪29頁(yè)第10期 柴成博等:cqslal Reports在LIMS中的應(yīng)用29田2節(jié)選項(xiàng)示倒按照原報(bào)表格式和要求,開發(fā)完成水晶報(bào)表模 版.刷新散據(jù),即可顯示新的報(bào)裹樣式,滿足開發(fā)要 求,開發(fā)完成的報(bào)表如圖3所示。旦。. Kii1=i*i蘭芝=.苣j=三磊
10、耋橐h d r j ,? r 。=【娑二一=P#要:一-日【一I_,!?田3水報(bào)寰示倒3uMs中水晶報(bào)表的生成為了能夠更好、更快捷的生成報(bào)表、導(dǎo)出報(bào)表.我們將利用uMs個(gè)性化開發(fā)工具,實(shí)現(xiàn)”一鍵生成報(bào)表。的功能。31設(shè)計(jì)報(bào)寰生成菜單在LIMS系統(tǒng)中,設(shè)計(jì)報(bào)表生成菜單,實(shí)現(xiàn)一鍵生成按鈕。在LIMS中sub咖tinee表中的ASFOLDER中縮寫菜單程序.并定義其菜單顯示的位 置和蛙接的報(bào)表生虛程序。在開發(fā)完成菜單顯示程序后,可以在樣品文件夾中看到定義的菜單名稱。32開發(fā)報(bào)寰生成酣由于各企業(yè)報(bào)表的形式多樣、樣品類型不同、生 產(chǎn)廠不同、化驗(yàn)標(biāo)準(zhǔn)不同、審核人不同等等原因.使 各企業(yè)的報(bào)表模版雜.為了能
11、夠更快、更準(zhǔn)確的生成所需的報(bào)表,在u岫中開發(fā)報(bào)表自動(dòng)生成程棗.以便能夠識(shí)別報(bào)表模塊,并與報(bào)表生成菜單相關(guān)聯(lián)。在LIMS中叭bmu6n表中建立于程序NEW-COA(名囂可以修改,點(diǎn)擊組態(tài)進(jìn)程序開發(fā)界 面,根據(jù)不同需求,并指定各類別樣品報(bào)表生成所需的報(bào)表橫版開發(fā)完成報(bào)表自動(dòng)生成程序。4總結(jié)c唧t日l(shuí) Reporh在中國(guó)石油L刪s實(shí)施建設(shè)中的 應(yīng)用.優(yōu)化了報(bào)表生成流程,減少報(bào)喪生成時(shí)閫,同 時(shí)減少了報(bào)表生成出錯(cuò)率.提高丁質(zhì)控人員的工作 教率。為生產(chǎn)部門及時(shí)準(zhǔn)確的提供了產(chǎn)品的分析信 息,為公司產(chǎn)品出廠及客戶提供保障。考文獻(xiàn):1郜立棒,趙麗LabW眥LIMS的纏態(tài)實(shí)施J現(xiàn)代科學(xué)但囂,2004(5;141
12、72馮金輝靛字實(shí)驗(yàn)室一刪s未束發(fā)晨趨勢(shì)耵瑰代科學(xué)儀器,2002(2:63】楊悔鷹。沈彤.陸蟪咎從LIMS割u叫sd塒J現(xiàn)代科學(xué)儀囂,2002(2:4J】理化檢驗(yàn),2004.40(1:495尚凡一.王兆文實(shí)驗(yàn)童信息蕾理系統(tǒng)(z珊s的設(shè)計(jì)及實(shí)現(xiàn)J中國(guó)環(huán)境監(jiān)測(cè).2000(4:25實(shí)驗(yàn)童f理工作中的應(yīng)用【J實(shí)驗(yàn)與檢驗(yàn)掌,29(4.2021f7張志攘.王群.弗芹化工實(shí)驗(yàn)窒信息f理幕筑【m齜M化工出版社8弱立。酩實(shí)驗(yàn)室信息f理幕統(tǒng)(【皿s在環(huán)境監(jiān)疆幕坑的應(yīng)用攆討【J】扛蘇環(huán)境科技.27(4:38(上接第24百【5】R蜘L如Jm敷據(jù)蝽兩與算法M計(jì)曉i趙研辱譯北京:中國(guó)電力出版杜.2003【6B蚰.J訕齟EHed"hn脅衄d%h*m鈿kddi帆一乳。蛔。B啪,0lIsBN:0201310058【7HL4OI印6幽山mWoddWide Webc州b時(shí)ub口1999.c h仲:/yw胤w3.otg/TR/1999/REChml40l一19991224/BJmnmh口,sm山d蹦d帆6棚Spe刪mSunMh"Mm2006(呻:/j,諱uH6,W堪,'【超i偉,肖敏,腌前辯一種簡(jiǎn)單
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 一年級(jí)下冊(cè)語(yǔ)文家校共育促進(jìn)計(jì)劃
- 一年級(jí)下冊(cè)語(yǔ)文教學(xué)技能提升計(jì)劃
- 面部繼發(fā)惡性腫瘤護(hù)理
- 馬方綜合征護(hù)理查房
- 護(hù)理人員使用儀器設(shè)備培訓(xùn)計(jì)劃
- 早教活動(dòng)集體備課工作計(jì)劃
- 幼兒園線上線下創(chuàng)新教學(xué)方法銜接計(jì)劃
- 2025婦產(chǎn)科護(hù)理新技術(shù)推廣計(jì)劃
- 電子商務(wù)主要材料供應(yīng)計(jì)劃
- 養(yǎng)殖場(chǎng)畜牧產(chǎn)品溯源協(xié)議
- 人工智能算法與實(shí)踐-第6章 KNN算法
- 反詐知識(shí)競(jìng)賽試題及答案(76題)
- 植被圖與地形因子碳匯關(guān)系
- 青海省西寧市(2024年-2025年小學(xué)三年級(jí)語(yǔ)文)人教版期末考試(下學(xué)期)試卷(含答案)
- 河北省秦皇島市(2024年-2025年小學(xué)三年級(jí)語(yǔ)文)人教版能力評(píng)測(cè)(下學(xué)期)試卷(含答案)
- 數(shù)字化轉(zhuǎn)型與非織造布制造
- 2024-2030年中國(guó)DevOps工具行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 計(jì)算機(jī)系統(tǒng)設(shè)計(jì)及計(jì)算機(jī)網(wǎng)絡(luò)專業(yè)畢業(yè)論文
- (正式版)QB∕T 8049-2024 家用和類似用途微壓富氧艙
- 聊城小升初英語(yǔ)試卷
- 汽輪機(jī)輔機(jī)檢修(第二版)高級(jí)工題庫(kù)
評(píng)論
0/150
提交評(píng)論