麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

基于MVC設(shè)計(jì)模式的WEB應(yīng)用框架研究

2019-11-17 06:28:27
字體:
供稿:網(wǎng)友

  摘要 MVC設(shè)計(jì)模式是基于J2EE的WEB應(yīng)用開發(fā)的首選模式,當(dāng)前許多流行的框架也都是基于MVC設(shè)計(jì)模式的。本文簡要介紹了MVC設(shè)計(jì)模式和Struts框架,并提出了一種基于MVC模式的新型WEB應(yīng)用開發(fā)框架——WebFramework,并對(duì)該框架的各個(gè)層次的組成、功能進(jìn)行了具體的描述。

  要害詞 MVC設(shè)計(jì)模式; J2EE;框架; Struts

  引言

  隨著開源軟件的興起,各種框架也紛紛出現(xiàn),如Apache 的開源框架Struts就是典型的代表。在實(shí)際軟件開發(fā)中運(yùn)用這些框架,大大降低了J2EE開發(fā)的復(fù)雜度和難度,降低了開發(fā)成本。但是這些框架也有不足的地方,如難于把握,配置復(fù)雜等等。本文研究的目的在于設(shè)計(jì)出一種簡單易行的WEB開發(fā)框架——WebFramework,WebFramework結(jié)構(gòu)清楚,易于理解,增加系統(tǒng)的可擴(kuò)展性,可維護(hù)性,降低開發(fā)成本。

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

  基于J2EE的WEB應(yīng)用系統(tǒng),多數(shù)都利用MVC模式來實(shí)現(xiàn)其體系結(jié)構(gòu)。MVC(Model-View-Controller)是八十年代為編程語言Smalltalk-80發(fā)明的一種軟件設(shè)計(jì)模式。MVC模式將交互式應(yīng)用分成模型(Model)、視圖(View)和控制器(Controller)三部分[1]。模型是指從現(xiàn)實(shí)世界中挖掘出來的對(duì)象模型,是應(yīng)用邏輯的反映。模型封裝了數(shù)據(jù)和對(duì)數(shù)據(jù)的操作,是實(shí)際進(jìn)行數(shù)據(jù)處理的計(jì)算的地方。視圖是應(yīng)用和用戶之間的接口,它負(fù)責(zé)將應(yīng)用顯現(xiàn)給用戶和顯示模型的狀態(tài)。控制器負(fù)責(zé)視圖和模型之間的交互,控制對(duì)用戶輸入的響應(yīng)響應(yīng)方式和流程,它主要負(fù)責(zé)兩方面的動(dòng)作:把用戶的請求分發(fā)到相應(yīng)的模型;將模型的改變及時(shí)反應(yīng)到視圖上。MVC將這些對(duì)象分離以提高靈活性和復(fù)用性。MVC模式的結(jié)構(gòu)如圖1所示:

基于MVC設(shè)計(jì)模式的WEB應(yīng)用框架研究(圖一)
圖1 MVC設(shè)計(jì)模式的結(jié)構(gòu)

  Struts框架

  Struts是Apache基金會(huì)Jakarta項(xiàng)目組的一個(gè)Open Source項(xiàng)目,它將Servlet2.2和jsp1.1標(biāo)記用作實(shí)現(xiàn)的一部分,它由一組相互協(xié)作的類、servlet和JSP標(biāo)記,組成一個(gè)可重用的系統(tǒng)設(shè)計(jì)。它能夠很好地幫助java開發(fā)者利用J2EE開發(fā)WEB應(yīng)用。它將設(shè)計(jì)模式中“分離顯示邏輯與業(yè)務(wù)邏輯”的能力發(fā)揮的淋漓盡致。因此,越來越多的大型的WEB應(yīng)用項(xiàng)目的開發(fā)都紛紛采用Struts框架,或者借鑒Struts架構(gòu)設(shè)計(jì),進(jìn)行基于MVC模式的應(yīng)用系統(tǒng)的開發(fā)。

  Struts的工作原理如圖2所示:
基于MVC設(shè)計(jì)模式的WEB應(yīng)用框架研究(圖二)
圖2 Struts 的工作原理

  Struts的優(yōu)點(diǎn)主要體現(xiàn)在兩個(gè)方面:表單驗(yàn)證和頁面導(dǎo)航。表單驗(yàn)證解決了請求數(shù)據(jù)的驗(yàn)證問題,增強(qiáng)了系統(tǒng)健壯性。而頁面導(dǎo)航使系統(tǒng)的業(yè)務(wù)流程脈絡(luò)清楚,系統(tǒng)各部分之間的聯(lián)系可以通過配置文件反映出來,從而在一定程度上簡化了系統(tǒng)以后的維護(hù)工作。

  但是Struts也存在一些不足:

  1)陡峭的學(xué)習(xí)曲線。Taglib是Struts的標(biāo)記庫,假如能靈活運(yùn)用,能大提高開發(fā)效率,但對(duì)初學(xué)者來說,卻需要一個(gè)持續(xù)學(xué)習(xí)的過程,增加了系統(tǒng)的開發(fā)成本。

  2)增加了系統(tǒng)的復(fù)雜度。業(yè)務(wù)層和表現(xiàn)層之間的耦合度太高,使得開發(fā)人員無法專注于表現(xiàn)層的設(shè)計(jì)和實(shí)現(xiàn)。

  3)沒有對(duì)表單數(shù)據(jù)前端驗(yàn)證提出方案,不利于在大型系統(tǒng)中使用。

  4)配置文件過于復(fù)雜繁索,隨著系統(tǒng)規(guī)模的增大,struts-config.xml越來越龐大,維護(hù)也變得越來越困難。 QQRead.com 推出數(shù)據(jù)恢復(fù)指南教程 數(shù)據(jù)恢復(fù)指南教程 數(shù)據(jù)恢復(fù)故障解析 常用數(shù)據(jù)恢復(fù)方案 硬盤數(shù)據(jù)恢復(fù)教程 數(shù)據(jù)保護(hù)方法 數(shù)據(jù)恢復(fù)軟件 專業(yè)數(shù)據(jù)恢復(fù)服務(wù)指南 WebFramework框架

  針對(duì)Struts框架的以上不足之處,本文提出WebFramework框架,與Struts框架相比,WebFramework更簡單易行,它通過簡化表現(xiàn)層的設(shè)計(jì),降低開發(fā)難度,節(jié)約開發(fā)成本;使用VO(Value Object)作為數(shù)據(jù)傳遞的方式,降低系統(tǒng)復(fù)雜度;運(yùn)用簡單的瀏覽器端表單字段數(shù)據(jù)驗(yàn)證,提高系統(tǒng)的運(yùn)行效率;簡化的配置文件,便于系統(tǒng)的維護(hù)。

  設(shè)計(jì)目標(biāo)

  遵循J2EE規(guī)范,基于多層分布式應(yīng)用軟件開發(fā)框架,分布式的層次構(gòu)架方式可以提高軟件系統(tǒng)性能上的可擴(kuò)展性,從長期的角度上保障了客戶對(duì)當(dāng)前的軟件投資;實(shí)現(xiàn)軟件系統(tǒng)在異常情況下也可以正常地提供服務(wù),提高軟件系統(tǒng)的穩(wěn)定性;各個(gè)構(gòu)架層次邏輯分離,有利于軟件開發(fā)過程中團(tuán)隊(duì)成員的協(xié)同工作,提高生產(chǎn)效率。

  2、框架結(jié)構(gòu)

  在設(shè)計(jì)策略中,將軟件系統(tǒng)從構(gòu)架上分為數(shù)據(jù)層、業(yè)務(wù)邏輯層和表示層,主要集中在業(yè)務(wù)表示與業(yè)務(wù)邏輯層。將普通三層架構(gòu)的表示層細(xì)分成視圖格式層和表示控制邏輯層。表示層涉及基于“瘦客戶”技術(shù)的用戶視圖格式服務(wù)器端表示和相應(yīng)的交互式控制邏輯。視圖格式層,只保留了構(gòu)建客戶端用戶視圖必要的顯示格式和事件觸發(fā);而在表示控制邏輯層則如名稱所描述的那樣,實(shí)現(xiàn)了人機(jī)交互所需控制邏輯和部分業(yè)務(wù)會(huì)話邏輯,再加上貫穿所有系統(tǒng)邏輯層的業(yè)務(wù)實(shí)體,則構(gòu)成了以MVC模式為核心的表示層架構(gòu),將顯示格式、顯示控制邏輯、模型數(shù)據(jù)三部分有效地分隔開來,大大加強(qiáng)了系統(tǒng)架構(gòu)的可擴(kuò)展性和應(yīng)用子系統(tǒng)的可插拔性。

  業(yè)務(wù)層細(xì)分成業(yè)務(wù)會(huì)話層和業(yè)務(wù)持久化層。業(yè)務(wù)層集中在業(yè)務(wù)流程中處理邏輯的組件化封裝,且與數(shù)據(jù)層平臺(tái)和外部系統(tǒng)無關(guān)。業(yè)務(wù)會(huì)話層,側(cè)重于業(yè)務(wù)活動(dòng),將一項(xiàng)業(yè)務(wù)的所有活動(dòng)事務(wù)性地封裝起來,也確保業(yè)務(wù)流程處理的一致性和高效率;而業(yè)務(wù)持久化層則是為業(yè)務(wù)會(huì)話層提供支持,提供業(yè)務(wù)數(shù)據(jù)的持久化操作,在業(yè)務(wù)與數(shù)據(jù)庫之間建立分離作用的中間層,構(gòu)成松耦合的架構(gòu)。

  本分層模型中實(shí)現(xiàn)了MVC設(shè)計(jì)模式。其中,Servlet組件對(duì)應(yīng)于MVC中的控制器(Controller)部分,JSP及Browser對(duì)應(yīng)于視圖(View)部分,而會(huì)話外觀、邏輯Bean及值對(duì)象則對(duì)應(yīng)于模型(Model)部分。其結(jié)構(gòu)圖3所示:

  2.1、數(shù)據(jù)層

  (1)層定義

  數(shù)據(jù)層對(duì)數(shù)據(jù)進(jìn)行治理,并向業(yè)務(wù)邏輯層提供標(biāo)準(zhǔn)化的開放訪問接口。

  數(shù)據(jù)層目前主要提供兩種形式的服務(wù)方式:數(shù)據(jù)庫方式和文件方式。數(shù)據(jù)庫主要提供業(yè)務(wù)操作數(shù)據(jù)等具有明顯結(jié)構(gòu)化特性的數(shù)據(jù)的存儲(chǔ)和訪問服務(wù);文件主要提供包括掃描文檔圖像、傳真、照片、計(jì)算機(jī)生成的報(bào)告、字處理文檔、電子表格、演示文稿、語音和視頻片段等非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和訪問服務(wù)。

  主要功能:數(shù)據(jù)創(chuàng)建、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)查詢、數(shù)據(jù)更新、數(shù)據(jù)刪除、數(shù)據(jù)安全、事務(wù)支持、數(shù)據(jù)備份/恢復(fù)。

  (2)與其他層接口

  1)數(shù)據(jù)庫方式的數(shù)據(jù)層面向業(yè)務(wù)邏輯層提供數(shù)據(jù)庫訪問服務(wù)接口,業(yè)務(wù)邏輯層通過JDBC協(xié)議訪問數(shù)據(jù)庫服務(wù)。

  2)文件方式的數(shù)據(jù)層面向業(yè)務(wù)邏輯層提供文件級(jí)的訪問服務(wù)接口,業(yè)務(wù)邏輯層通過操作系統(tǒng)本身提供的文件訪問API訪問文件數(shù)據(jù)。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 91av在线影院 | 性欧美在线视频 | 毛片免费大全短视频 | 黄色av免费网站 | 日韩剧情片 | 欧美黄色看 | 国产一国产一级毛片视频在线 | 国产精品久久久久久久久久大牛 | 伊人99在线 | 91 在线观看 | av免费在线观看免费 | 国产一区二区国产 | 精精国产xxxx视频在线野外 | 亚洲成人在线视频网 | fc2国产成人免费视频 | 免费在线观看亚洲 | 欧美成人综合视频 | 成人一区二区在线观看视频 | 亚洲va久久久噜噜噜久牛牛影视 | 国产一区二区在线免费观看 | 777zyz色资源站在线观看 | 日韩黄色影视 | 国产精品久久久久久久四虎电影 | 黄色特级 | 精品国产一区二区三区四区在线 | 精品国产久 | 亚洲生活片| 欧美不卡| 亚洲国产精品500在线观看 | 国产美女一区二区在线观看 | 国产精品久久久久久久久久久久久久久久 | 日韩一级片免费 | 成人在线视频国产 | 一级观看免费完整版视频 | 国产亚洲精品久久午夜玫瑰园 | 538任你躁在线精品视频网站 | 欧美巨根 | 韩国一级免费视频 | 91在线色视频 | 午夜视频免费在线观看 | 久久亚洲成人 |