- 搞定J2EE核心技術(shù)與企業(yè)應(yīng)用
- 常建功 王向華編著
- 913字
- 2018-12-29 13:49:36
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ù)器。
- Hands-On Internet of Things with MQTT
- 高性能混合信號ARM:ADuC7xxx原理與應(yīng)用開發(fā)
- WOW!Illustrator CS6完全自學(xué)寶典
- Java開發(fā)技術(shù)全程指南
- 工業(yè)機器人工程應(yīng)用虛擬仿真教程:MotoSim EG-VRC
- Visual C# 2008開發(fā)技術(shù)詳解
- 電腦上網(wǎng)直通車
- Python Data Science Essentials
- VB語言程序設(shè)計
- Prometheus監(jiān)控實戰(zhàn)
- Kubernetes for Serverless Applications
- Hadoop應(yīng)用開發(fā)基礎(chǔ)
- FPGA/CPLD應(yīng)用技術(shù)(Verilog語言版)
- 未來學(xué)徒:讀懂人工智能飛馳時代
- 工業(yè)機器人集成應(yīng)用