日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

JSP的Model1和Model2架構模式的分析比較

 昵稱27831725 2017-12-20

JSPModel1Model2sun公司為了更好地指導Web開發(fā)人員進行JavaWeb開發(fā)提出的兩種架構模式,用專業(yè)術語表達就是JSP Model 1JSP Model 2它們的本質區(qū)別在于處理批量請求的位置不同。

 

一、Model1架構模式

1、Model1架構模式簡介

Model1應用了JavaWeb開發(fā)當中的兩種技術,即JSPJavaBean技術,所以Model1就是JSP+JavaBean模式。其中JSP需要獨自完成響應用戶的請求并將處理結果返回給用戶,同時還需要完成流程的控制處理;而JavaBean進行輔助,如保存從數(shù)據(jù)庫中查詢出來的數(shù)據(jù)等。

JavaBean 是一種使用Java語言編寫的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無參數(shù)的構造器。JavaBean 通過提供符合一致性設計模式的公共方法將內(nèi)部域的成員屬性暴露給用戶。用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用Java代碼創(chuàng)造的對象進行打包,并且其他的開發(fā)者可以通過內(nèi)部的JSP頁面、Servlet、其他JavaBean、Applet程序或者應用來使用這些對象。

JavaBean可分為兩種:一種是有用戶界面(UI,User Interface)的JavaBean;還有一種是沒有用戶界面,主要負責處理事務(如數(shù)據(jù)運算、操縱數(shù)據(jù)庫)的JavaBean。JSP通常訪問的是后一種JavaBean。

2、Model1的體系結構圖

 

下面對上圖的Model1體系結構圖進行分析。

(1) 首先Web客戶端向JSP頁面發(fā)出request請求;

(2) 在JSP頁面取得請求所需的頁面參數(shù);

(3) 通過JSP調(diào)用業(yè)務邏輯層的方法并返回結果;

(4) 在JSP中完成網(wǎng)頁頁面的渲染;

(5) 通過JSPWeb客戶端返回處理結果。

3、Model1架構模式的優(yōu)缺點

(1) 優(yōu)點:架構簡單,比較適合小型項目的開發(fā)?;旧鲜褂?/span>JSP+持久層就可以完成一個小型項目的開發(fā)。

(2) 缺點:JSP頁面有控制頁面顯示的代碼又有與后臺業(yè)務邏輯交互的Java代碼,職責不單一,頁面負擔很重,影響頁面運行速度;而且不方便后期的維護。如果不加選擇地隨意運用Model 1,會導致JSP頁面內(nèi)被嵌入大量的腳本片段或Java代碼,特別是當需要處理的請求量很大時,情況會更為糟糕。

 

二、Model2架構模式

1、Model2架構模式簡介

Model 2架構模式是一種把JSPServlet聯(lián)合使用來實現(xiàn)動態(tài)內(nèi)容服務的方法,所以Model2就是JSP+Servlet+JavaBean模式。它吸取了兩種技術各自的突出優(yōu)點,使用JSP生成表達層的內(nèi)容,使用Servlet完成深層次的處理任務。在Model 2中,Servlet充當控制者的角色,負責管理對請求的處理,創(chuàng)建JSP頁面所需的JavaBean和對象,同時根據(jù)用戶的動作決定把哪個JSP頁面?zhèn)鹘o用戶。特別要注意,在JSP頁面內(nèi)沒有處理邏輯,它僅負責檢索原先由Servlet創(chuàng)建的對象或JavaBean,然后從Servlet中提取動態(tài)內(nèi)容插入到靜態(tài)模板中進行頁面顯示。所以簡單來說,在Model 2中,JSP進行頁面顯示,JavaBean進行邏輯處理,Servlet完成邏輯控制。

2Model2的體系結構圖

 

下面對上圖的Model2體系結構圖進行分析。

(1) 首先Web客戶端向Servlet發(fā)出request請求;

(2) 通過Servlet取得請求所需的表單數(shù)據(jù);

(3) Servlet向業(yè)務邏輯層調(diào)用業(yè)務邏輯方法并返回所需的數(shù)據(jù);

(4) Servlet再重定向轉到JSP頁面,在JSP頁面完成頁面渲染;

(5) 通過JSP通過responseWeb客戶端返回處理結果。

3、Model2架構模式的總結

(1) JavaBean(Model)——模型層:主要職責是完成業(yè)務邏輯和保存數(shù)據(jù)的狀態(tài);

(2) JSP(View)——視圖層,主要職責是完成頁面顯示;

(3) Servlet(Controller)——控制器,主要職責是獲取表單數(shù)據(jù)、調(diào)用業(yè)務邏輯和完成頁面的渲染。

4Model2架構模式的優(yōu)缺點

(1) 優(yōu)點:清晰地分離了表達和內(nèi)容,明確了角色的定義以及開發(fā)者與網(wǎng)頁設計者的分工,適合大型項目的開發(fā)。

(2) 缺點:分層過多,不適合小型項目的開發(fā)。

5Model1Model2的比較

Model1在一定程序上實現(xiàn)了MVC的設計理念,即JSP將控制層與表示層合二為一,JavaBean則為模型層。這樣的話當然還是將控制層從JSP單獨劃分出來比較好。

Model2則是將控制層(Servlet)單獨地劃分出來了,專門負責業(yè)務流程的控制,響應頁面的請求,創(chuàng)建所需的JavaBean實例,并將處理后的數(shù)據(jù)再返回給JSP。這樣層次分明,不同開發(fā)人員的職責分工明確,所以項目越復雜,使用Model 2架構模型的好處就越大。

 

三、三層架構模型

Model2中的數(shù)據(jù)訪問部分再次抽離出來得到持久化邏輯層,可以得到經(jīng)典的三層架構模型。如下圖所示。

 

(1) 以上為非常經(jīng)典的三層結構模型:

表示層:JSP/Servlet

業(yè)務邏輯層:業(yè)務規(guī)則

持久化層:主要是包裝持久化邏輯

(2) 抽取出持久化層的好處:主要是為了持久化層的改變不會影響業(yè)務邏輯層,從而更好地劃分職責。

(3) 表示層、業(yè)務邏輯層、持久化層是自上而下的依賴關系,而且通常是單向依賴,最好依賴于抽象的東西。

 

 

參考資料:

(1) 《JSP Model1JSP Model2的區(qū)別》,網(wǎng)址:http://blog.sina.com.cn/s/blog_67c5640b0100xlyc.html

(2) 《JSPModel1Model2體系介紹》,網(wǎng)址:http://blog.163.com/rui_uk/blog/static/269596312007341178266/

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多