您當前位置>首頁 » 新聞資(zī)訊 » 網站(zhàn)建設 >
(15)javaweb兩種開發模式
發表時間:2018-3-31
發布人:葵宇科技
浏覽次數:42
SUN公司推出JSP技術(shù)後,同時也推薦了兩種web應用程序的開發模式,一種是JSP+JavaBean模式,一種是Servlet+JSP+JavaBean模式。
一、JSP+JavaBean開發模式
1.1、jsp+javabean開發模式架構
在jsp+javabean架構中(zhōng),JSP負責控制邏輯、表現邏輯、業(yè)務對象(javabean)的調用。
JSP+JavaBean模式适合開發業(yè)務邏輯不太複雜的web應用程序,這種模式下(xià),JavaBean用于封裝業(yè)務數據,JSP即負責處理用戶請求,又顯示數據。
實例:jsp+javabeans實現計算器(qì)
二. Servlet+JSP+JavaBean開發模式
在平時的JavaWeb項目開發中(zhōng),在不使用第三方mvc開發框架的情況下(xià),通(tōng)常會選擇Servlet+JSP+JavaBean開發模式來開發JavaWeb項目,Servlet+JSP+JavaBean組合開發就是一種MVC開發模式了,控制器(qì)(Controller)采用Servlet、模型(Model)采用JavaBean、視圖(View)采用JSP。在講解Servlet+JSP+JavaBean開發模式之前,先簡單了解一下(xià)MVC開發模式。
2.2、标準MVC模型概述
MVC模型:是一種架構型的模式,本身不引入新功能,隻是幫助我們将開發的結構組織的更加合理,使展示與模型分離(lí)、流程控制邏輯、業(yè)務邏輯調用與展示邏輯分離(lí)。如(rú)下(xià)圖(圖2-2)所示:
2.3、MVC(Model-View-Controller)的概念
首先讓我們了解下(xià)MVC(Model-View-Controller)的概念:
Model(模型):數據模型,提供要展示的數據,因此包含數據和(hé)行為,可(kě)以認為是領域模型(domain)或JavaBean組件(包含數據和(hé)行為),不過現在一般都分離(lí)開來:Value Object(數據) 和(hé) 服務層(行為)。也就是模型提供了模型數據查詢和(hé)模型數據的狀态更新等功能,包括數據和(hé)業(yè)務。
View(視圖):負責進行模型的展示,一般就是我們見到的用戶界面,客戶想看到的東西。
Controller(控制器(qì)):接收用戶請求,委托給模型進行處理(狀态改變),處理完畢後把返回的模型數據返回給視圖,由視圖負責展示。 也就是說控制器(qì)做了個(gè)調度員的工作。
從圖2-1我們還看到,在标準的MVC中(zhōng)模型能主動(dòng)推數據給視圖進行更新(觀察者設計模式,在模型上注冊視圖,當模型更新時自動(dòng)更新視圖),但在Web開發中(zhōng)模型是無法主動(dòng)推給視圖(無法主動(dòng)更新用戶界面),因為在Web開發是請求-響應模型。
那接下(xià)來我們看一下(xià)在Web裡MVC是什麼樣子(zǐ),我們稱其為 Web MVC 來區别标準的MVC。
2.4.、Web MVC概述
Web MVC中(zhōng)的M(模型)-V(視圖)-C(控制器(qì))概念和(hé)标準MVC概念一樣,我們再看一下(xià)Web MVC标準架構,如(rú)下(xià)圖(圖2-3)所示:
在Web MVC模式下(xià),模型無法主動(dòng)推數據給視圖,如(rú)果用戶想要視圖更新,需要再發送一次請求(即請求-響應模型)。
2.5、Servlet+JSP+JavaBean開發模式介紹
Servlet+JSP+JavaBean架構其實可(kě)以認為就是我們所說的Web MVC模型,隻是控制器(qì)采用Servlet、模型采用JavaBean、視圖采用JSP,如(rú)圖2-3
三、Servlet+JSP+JavaBean開發模式的缺點
Servlet+JSP+JavaBean(Web MVC)架構雖然實現了視圖和(hé)模型分離(lí)以及控制邏輯和(hé)展示邏輯分離(lí),但也有一些比較嚴重的缺點
3.1、Servlet作為控制器(qì)的缺點
此處的控制器(qì)使用Servlet,使用Servlet作為控制器(qì)有以下(xià)幾個(gè)缺點:
1、控制邏輯可(kě)能比較複雜,其實我們可(kě)以按照規約,如(rú)請求參數submitFlag=toLogin,我們其實可(kě)以直接調用toLogin方法,來簡化控制邏輯;而且每個(gè)模塊基本需要一個(gè)控制器(qì),造成控制邏輯可(kě)能很複雜。現在流行的Web MVC框架(如(rú)Struts2)都支持"請求參數submitFlag=toAdd,就可(kě)以直接調用toAdd方法"這樣的處理機制,在Struts2中(zhōng)類似這樣的處理機制就稱為"動(dòng)态方法調用"
2、請求參數到模型的封裝比較麻煩,如(rú)果能交給框架來做這件事情,我們可(kě)以從中(zhōng)得到解放。
3、選擇下(xià)一個(gè)視圖,嚴重依賴Servlet API ,這樣很難或基本不可(kě)能更換視圖。4、給視圖傳輸要展示的模型數據,也需要使用Servlet API,更換視圖技術(shù)也要一起更換,很麻煩。
3.2、JavaBean作為模型的缺點
此處模型使用JavaBean,JavaBean組件類既負責收集封裝數據,又要進行業(yè)務邏輯處理,這樣可(kě)能造成JavaBean組件類很龐大,所以一般現在項目都是采用三層架構,而不直接采用JavaBean。
實例:http://www.cnblogs.com/xdp-gacl/p/3902537.html