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

1.4 Model規(guī)范

MVC設(shè)計模式的理念雖然很好,但技術(shù)實現(xiàn)起來卻很困難,這主要是由HTML的實現(xiàn)所決定的,這種基于請求/響應(yīng)的實現(xiàn)方式,很難做到如果有變化了能夠及時通知。當(dāng)JavaEE的JSP Model 2規(guī)范出來以后,才有了實現(xiàn)MVC設(shè)計模式的可能。它用JSP技術(shù)實現(xiàn)視圖的功能,用Servlet技術(shù)實現(xiàn)控制器的功能,用JavaBean技術(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)用的實例中,這種便于開發(fā)的技術(shù)就流行起來了。JSP頁面可以非常容易地將業(yè)務(wù)邏輯、服務(wù)器端處理過程和HTML結(jié)合在一起,在JSP頁面中同時實現(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)用時,這種以JSP為中心的開發(fā)模型是比較好的選擇。但它也有一些不足之處,比如,頁面顯示和業(yè)務(wù)邏輯、數(shù)據(jù)庫連接結(jié)合在一起,如果有改動則要改很多地方,擴展性和靈活性比較差。

1.4.2 Model 2規(guī)范

因為上述開發(fā)模型的不足之處,在開發(fā)大型的Web應(yīng)用時,就必須將開發(fā)模型進行分層,而前面講過的MVC分層方式是一個不錯的選擇。Model 2就是基于MVC模式的框架,通過這種設(shè)計模型,把應(yīng)用邏輯、處理過程和顯示邏輯分成不同的組件實現(xiàn),這些組件可以進行交互和重用,從而彌補了Model 1的不足。將MVC模式應(yīng)用到一個系統(tǒng)設(shè)計中的過程就是對系統(tǒng)中不同責(zé)任的劃分過程。Model 2的架構(gòu)圖如圖1.13所示。

圖1.13 Model 2的架構(gòu)圖

因為Model 2規(guī)范對開發(fā)模式進行了分層,從而更易于實現(xiàn)對大規(guī)模系統(tǒng)的開發(fā)和管理,但這種方式在開發(fā)上就沒有前面以JSP為中心的開發(fā)模型速度快,而且這種開發(fā)模式實現(xiàn)起來比較困難,開發(fā)人員也需要很長時間才能掌握它。

● 必須基于MVC組件的方式,重新思考和設(shè)計應(yīng)用結(jié)構(gòu)。原來通過建立一個簡單的JSP頁面就能實現(xiàn)的應(yīng)用,現(xiàn)在變成了多個步驟的設(shè)計和實現(xiàn)過程。

● 所有的頁面和組件必須在MVC框架中實現(xiàn),所以必須進行附加的開發(fā)工作。

● 客戶機和服務(wù)器的無狀態(tài)連接,這種無狀態(tài)行為使得模型很難將更改通知視圖。在Web上,為了發(fā)現(xiàn)對應(yīng)用程序狀態(tài)的修改,瀏覽器必須重新查詢服務(wù)器。

主站蜘蛛池模板: 大悟县| 池州市| 涪陵区| 平利县| 镇安县| 太仓市| 博客| 玛多县| 南部县| 利川市| 大新县| 阿坝县| 江西省| 锦州市| 措美县| 上栗县| 拉孜县| 娱乐| 雷州市| 宜兰县| 大港区| 青岛市| 嵊州市| 柳州市| 宁城县| 什邡市| 阿城市| 柳江县| 壤塘县| 巴东县| 连城县| 汶上县| 泰安市| 信丰县| 商丘市| 江阴市| 衢州市| 右玉县| 邢台县| 新闻| 子洲县|