- 我的J2EE成功之路
- 郭鋒等編著
- 911字
- 2018-12-28 13:10:25
1.4 Model規(guī)范
MVC設(shè)計(jì)模式的理念雖然很好,但技術(shù)實(shí)現(xiàn)起來卻很困難,這主要是由HTML的實(shí)現(xiàn)所決定的,這種基于請(qǐng)求/響應(yīng)的實(shí)現(xiàn)方式,很難做到如果有變化了能夠及時(shí)通知。當(dāng)JavaEE的JSP Model 2規(guī)范出來以后,才有了實(shí)現(xiàn)MVC設(shè)計(jì)模式的可能。它用JSP技術(shù)實(shí)現(xiàn)視圖的功能,用Servlet技術(shù)實(shí)現(xiàn)控制器的功能,用JavaBean技術(shù)實(shí)現(xiàn)模型的功能。
1.4.1 Model 1規(guī)范
Sun公司共制定了兩種JSP規(guī)范,分別是Model 1和Model 2規(guī)范,它們分別描述了采用JSP技術(shù)構(gòu)成Web應(yīng)用的不同模型。
隨著JSP技術(shù)的推出,在使用Java技術(shù)建立Web應(yīng)用的實(shí)例中,這種便于開發(fā)的技術(shù)就流行起來。JSP頁面可以非常容易地將業(yè)務(wù)邏輯、服務(wù)器端處理過程和HTML結(jié)合在一起,在JSP頁面中同時(shí)實(shí)現(xiàn)顯示、業(yè)務(wù)邏輯和流程控制,從而可以快速地完成應(yīng)用開發(fā)。現(xiàn)在很多的Web應(yīng)用就是由一組JSP頁面構(gòu)成的,這種以JSP為中心的開發(fā)模型稱為Model 1。Model 1的架構(gòu)圖如圖1.12所示。

圖1.12 Model 1的架構(gòu)圖
當(dāng)需要快速開發(fā)某種Web應(yīng)用或開發(fā)小規(guī)模的Web應(yīng)用時(shí),這種以JSP為中心的開發(fā)模型是比較好的選擇,但它也有一些不足之處,比如,頁面顯示和業(yè)務(wù)邏輯、數(shù)據(jù)庫連接結(jié)合在一起,如果有改動(dòng)則要改很多地方,擴(kuò)展性和靈活性比較差。
1.4.2 Model 2規(guī)范
因?yàn)樯鲜鲩_發(fā)模型的不足之處,在開發(fā)大型的Web應(yīng)用時(shí),就必須將開發(fā)模型進(jìn)行分層,而前面講過的MVC分層方式是一個(gè)不錯(cuò)的選擇。Model 2就是基于MVC模式的框架,通過這種設(shè)計(jì)模型,把應(yīng)用邏輯、處理過程和顯示邏輯分成不同的組件實(shí)現(xiàn),這些組件可以進(jìn)行交互和重用,從而彌補(bǔ)了Model 1的不足。將MVC模式應(yīng)用到一個(gè)系統(tǒng)設(shè)計(jì)中的過程就是對(duì)系統(tǒng)中不同責(zé)任的劃分過程。Model 2的架構(gòu)圖如圖1.13所示。

圖1.13 Model 2的架構(gòu)圖
因?yàn)镸odel 2規(guī)范對(duì)開發(fā)模式進(jìn)行了分層,從而更易于實(shí)現(xiàn)對(duì)大規(guī)模系統(tǒng)的開發(fā)和管理,但這種方式在開發(fā)上就沒有前面以JSP為中心的開發(fā)模型速度快,而且這種開發(fā)模式實(shí)現(xiàn)起來比較困難,開發(fā)人員也需要較長(zhǎng)的時(shí)間掌握它。
● 必須基于MVC組件的方式,重新思考和設(shè)計(jì)應(yīng)用結(jié)構(gòu)。原來通過建立一個(gè)簡(jiǎn)單的JSP頁面就能實(shí)現(xiàn)的應(yīng)用,現(xiàn)在變成了多個(gè)步驟的設(shè)計(jì)和實(shí)現(xiàn)過程。
● 所有的頁面和組件必須在MVC框架中實(shí)現(xiàn),所以必須進(jìn)行附加的開發(fā)工作。
● 客戶機(jī)和服務(wù)器的無狀態(tài)連接,這種無狀態(tài)行為使得模型很難將更改通知視圖。在Web上,為了發(fā)現(xiàn)對(duì)應(yīng)用程序狀態(tài)的修改,瀏覽器必須重新查詢服務(wù)器。
- Big Data Analytics with Hadoop 3
- PowerShell 3.0 Advanced Administration Handbook
- Cloud Analytics with Microsoft Azure
- 精通Excel VBA
- Blender Compositing and Post Processing
- Learn CloudFormation
- MCGS嵌入版組態(tài)軟件應(yīng)用教程
- 從零開始學(xué)C++
- Spatial Analytics with ArcGIS
- 30天學(xué)通Java Web項(xiàng)目案例開發(fā)
- 計(jì)算機(jī)辦公應(yīng)用培訓(xùn)教程
- Oracle 11g基礎(chǔ)與提高
- 谷物干燥節(jié)能供熱技術(shù)與裝備
- 局域網(wǎng)應(yīng)用一點(diǎn)通
- 中文版Photoshop CS6數(shù)碼照片處理高手速成