官术网_书友最值得收藏!

  • 我的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ù)器。

主站蜘蛛池模板: 兴义市| 本溪| 乐亭县| 关岭| 宜昌市| 辉县市| 连南| 云阳县| 福贡县| 泗洪县| 南昌县| 彰武县| 凤城市| 和龙市| 太仆寺旗| 东乌| 黔西县| 宜城市| 介休市| 东乡| 白玉县| 犍为县| 南涧| 武威市| 北安市| 治多县| 荆门市| 永嘉县| 泰安市| 万年县| 封丘县| 莒南县| 始兴县| 正阳县| 武穴市| 忻州市| 和平区| 金阳县| 农安县| 安达市| 辽宁省|