知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 網(wǎng)站建設(shè) >
(15)javaweb兩種開發(fā)模式
發(fā)表時(shí)間:2018-3-31
發(fā)布人:葵宇科技
瀏覽次數(shù):56
SUN公司推出JSP技術(shù)后,同時(shí)也推薦了兩種web應(yīng)用程序的開發(fā)模式,一種是JSP+JavaBean模式,一種是Servlet+JSP+JavaBean模式。
一、JSP+JavaBean開發(fā)模式
1.1、jsp+javabean開發(fā)模式架構(gòu)
在jsp+javabean架構(gòu)中,JSP負(fù)責(zé)控制邏輯、表現(xiàn)邏輯、業(yè)務(wù)對(duì)象(javabean)的調(diào)用。
JSP+JavaBean模式適合開發(fā)業(yè)務(wù)邏輯不太復(fù)雜的web應(yīng)用程序,這種模式下,JavaBean用于封裝業(yè)務(wù)數(shù)據(jù),JSP即負(fù)責(zé)處理用戶請(qǐng)求,又顯示數(shù)據(jù)。
實(shí)例:jsp+javabeans實(shí)現(xiàn)計(jì)算器
二. Servlet+JSP+JavaBean開發(fā)模式
在平時(shí)的JavaWeb項(xiàng)目開發(fā)中,在不使用第三方mvc開發(fā)框架的情況下,通常會(huì)選擇Servlet+JSP+JavaBean開發(fā)模式來(lái)開發(fā)JavaWeb項(xiàng)目,Servlet+JSP+JavaBean組合開發(fā)就是一種MVC開發(fā)模式了,控制器(Controller)采用Servlet、模型(Model)采用JavaBean、視圖(View)采用JSP。在講解Servlet+JSP+JavaBean開發(fā)模式之前,先簡(jiǎn)單了解一下MVC開發(fā)模式。
2.2、標(biāo)準(zhǔn)MVC模型概述
MVC模型:是一種架構(gòu)型的模式,本身不引入新功能,只是幫助我們將開發(fā)的結(jié)構(gòu)組織的更加合理,使展示與模型分離、流程控制邏輯、業(yè)務(wù)邏輯調(diào)用與展示邏輯分離。如下圖(圖2-2)所示:
2.3、MVC(Model-View-Controller)的概念
首先讓我們了解下MVC(Model-View-Controller)的概念:
Model(模型):數(shù)據(jù)模型,提供要展示的數(shù)據(jù),因此包含數(shù)據(jù)和行為,可以認(rèn)為是領(lǐng)域模型(domain)或JavaBean組件(包含數(shù)據(jù)和行為),不過(guò)現(xiàn)在一般都分離開來(lái):Value Object(數(shù)據(jù)) 和 服務(wù)層(行為)。也就是模型提供了模型數(shù)據(jù)查詢和模型數(shù)據(jù)的狀態(tài)更新等功能,包括數(shù)據(jù)和業(yè)務(wù)。
View(視圖):負(fù)責(zé)進(jìn)行模型的展示,一般就是我們見到的用戶界面,客戶想看到的東西。
Controller(控制器):接收用戶請(qǐng)求,委托給模型進(jìn)行處理(狀態(tài)改變),處理完畢后把返回的模型數(shù)據(jù)返回給視圖,由視圖負(fù)責(zé)展示。 也就是說(shuō)控制器做了個(gè)調(diào)度員的工作。
從圖2-1我們還看到,在標(biāo)準(zhǔn)的MVC中模型能主動(dòng)推數(shù)據(jù)給視圖進(jìn)行更新(觀察者設(shè)計(jì)模式,在模型上注冊(cè)視圖,當(dāng)模型更新時(shí)自動(dòng)更新視圖),但在Web開發(fā)中模型是無(wú)法主動(dòng)推給視圖(無(wú)法主動(dòng)更新用戶界面),因?yàn)樵赪eb開發(fā)是請(qǐng)求-響應(yīng)模型。
那接下來(lái)我們看一下在Web里MVC是什么樣子,我們稱其為 Web MVC 來(lái)區(qū)別標(biāo)準(zhǔn)的MVC。
2.4.、Web MVC概述
Web MVC中的M(模型)-V(視圖)-C(控制器)概念和標(biāo)準(zhǔn)MVC概念一樣,我們?cè)倏匆幌耊eb MVC標(biāo)準(zhǔn)架構(gòu),如下圖(圖2-3)所示:
在Web MVC模式下,模型無(wú)法主動(dòng)推數(shù)據(jù)給視圖,如果用戶想要視圖更新,需要再發(fā)送一次請(qǐng)求(即請(qǐng)求-響應(yīng)模型)。
2.5、Servlet+JSP+JavaBean開發(fā)模式介紹
Servlet+JSP+JavaBean架構(gòu)其實(shí)可以認(rèn)為就是我們所說(shuō)的Web MVC模型,只是控制器采用Servlet、模型采用JavaBean、視圖采用JSP,如圖2-3
三、Servlet+JSP+JavaBean開發(fā)模式的缺點(diǎn)
Servlet+JSP+JavaBean(Web MVC)架構(gòu)雖然實(shí)現(xiàn)了視圖和模型分離以及控制邏輯和展示邏輯分離,但也有一些比較嚴(yán)重的缺點(diǎn)
3.1、Servlet作為控制器的缺點(diǎn)
此處的控制器使用Servlet,使用Servlet作為控制器有以下幾個(gè)缺點(diǎn):
1、控制邏輯可能比較復(fù)雜,其實(shí)我們可以按照規(guī)約,如請(qǐng)求參數(shù)submitFlag=toLogin,我們其實(shí)可以直接調(diào)用toLogin方法,來(lái)簡(jiǎn)化控制邏輯;而且每個(gè)模塊基本需要一個(gè)控制器,造成控制邏輯可能很復(fù)雜?,F(xiàn)在流行的Web MVC框架(如Struts2)都支持"請(qǐng)求參數(shù)submitFlag=toAdd,就可以直接調(diào)用toAdd方法"這樣的處理機(jī)制,在Struts2中類似這樣的處理機(jī)制就稱為"動(dòng)態(tài)方法調(diào)用"
2、請(qǐng)求參數(shù)到模型的封裝比較麻煩,如果能交給框架來(lái)做這件事情,我們可以從中得到解放。
3、選擇下一個(gè)視圖,嚴(yán)重依賴Servlet API ,這樣很難或基本不可能更換視圖。4、給視圖傳輸要展示的模型數(shù)據(jù),也需要使用Servlet API,更換視圖技術(shù)也要一起更換,很麻煩。
3.2、JavaBean作為模型的缺點(diǎn)
此處模型使用JavaBean,JavaBean組件類既負(fù)責(zé)收集封裝數(shù)據(jù),又要進(jìn)行業(yè)務(wù)邏輯處理,這樣可能造成JavaBean組件類很龐大,所以一般現(xiàn)在項(xiàng)目都是采用三層架構(gòu),而不直接采用JavaBean。
實(shí)例:http://www.cnblogs.com/xdp-gacl/p/3902537.html
相關(guān)案例查看更多
相關(guān)閱讀
- 網(wǎng)站建設(shè)費(fèi)用
- 跳轉(zhuǎn)小程序
- 楚雄網(wǎng)站建設(shè)公司
- 昆明小程序代建
- 云南網(wǎng)站建設(shè)列表網(wǎng)
- web
- 云南小程序開發(fā)報(bào)價(jià)
- 報(bào)廢車拆解回收管理系統(tǒng)
- 網(wǎng)站建設(shè)價(jià)格
- 小程序開發(fā)
- 網(wǎng)站排名
- 小程序被騙退款成功
- 云南網(wǎng)站建設(shè)價(jià)格
- 云南網(wǎng)站建設(shè)外包
- 二叉樹
- 網(wǎng)站建設(shè)方案 doc
- 貴州小程序開發(fā)
- 文山小程序開發(fā)
- 云南網(wǎng)頁(yè)制作
- 商標(biāo)
- 百度小程序公司
- 網(wǎng)站優(yōu)化哪家好
- 小程序商城
- 云南網(wǎng)站建設(shè)百度官方
- 微信分銷系統(tǒng)
- 網(wǎng)站建設(shè)選
- 前端技術(shù)
- 云南網(wǎng)站建設(shè)招商
- 云南小程序公司
- 前端