JSP隱式對(duì)象和MVC設(shè)計(jì)模式(2)_JSP教程
推薦:jsp 中 ActionForm中文亂碼問(wèn)題解決方法jsp教程 中 actionform中文亂碼問(wèn)題解決方法 先我們來(lái)了解一下actionform actionform概念 actionform用于封裝用戶的請(qǐng)求參數(shù),而請(qǐng)求參數(shù)是通過(guò)jsp頁(yè)面的表單域傳遞過(guò)來(lái)的。因此應(yīng) 保證actionform的參數(shù),與表單域的名字相同。 編輯本段actionform配置 所有的actionfor
config對(duì)象config對(duì)象存儲(chǔ)Servlet的一些初始信息。config對(duì)象是 javax.servlet.ServletConfig接口的一個(gè)實(shí)例,ServletConfig接口提供方法以檢索Servlet初始化參數(shù)。 config對(duì)象表示編譯JSP頁(yè)面的Servlet初始化數(shù)據(jù)的配置。
錯(cuò)誤對(duì)象exception:exception對(duì)象處理JSP頁(yè)面中的錯(cuò)誤:printStackTrace()方法用于顯示異常的堆棧跟蹤 在上面我們以經(jīng)介紹了JSP的隱式對(duì)象,下面我們來(lái)講一下MVC的設(shè)計(jì)模式:在開發(fā)一個(gè)軟件之前,必須先設(shè)計(jì)好其架構(gòu),一個(gè)基本的架構(gòu)思想是將軟件分成不 同的模塊,問(wèn)題的關(guān)鍵就是如何劃分模塊。
MVC(模型-視圖-控制器)是20世紀(jì)80年代為Smalltalk-80編程語(yǔ)言發(fā)明的一種軟件設(shè)計(jì)模式,它是一種分離業(yè)務(wù)邏輯與顯示界面的設(shè)計(jì)方法。
MVC的模型(Model)部分負(fù)責(zé)管理程序的業(yè)務(wù)數(shù)據(jù),視圖(View)部分負(fù)責(zé)顯示界面,控制器(Controller)部分則負(fù)責(zé)與用戶進(jìn)行交互(接受請(qǐng)求和選擇響應(yīng)視圖)。
JSP的設(shè)計(jì)模式:JSP規(guī)范給出了使用JSP頁(yè)面構(gòu)建Web應(yīng)用程序的兩個(gè)方案—JSP模式1和模式2.兩個(gè)模式的區(qū)別在于處理的位置。
JSP模式1(JSP + JavaBean):在模式1的體系結(jié)構(gòu)中,JSP頁(yè)面負(fù)責(zé)處理請(qǐng)求并將響應(yīng)發(fā)送給客戶端。
Model1的典型的交換過(guò)程:首先用戶通過(guò)瀏覽器調(diào)用Web應(yīng)用中的JSP頁(yè)面,發(fā)送request請(qǐng)求,JSP頁(yè)面接收到瀏覽器的請(qǐng)求后,通過(guò)調(diào)用JavaBean對(duì)象的方法從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),然后JSP頁(yè)面再把數(shù)據(jù)返回瀏覽器,最終在瀏覽器中顯示相應(yīng)的信息。
優(yōu)點(diǎn):非常適合小型Web項(xiàng)目的快速開發(fā);對(duì)Java Web開發(fā)人員的技術(shù)要求不高。
弊端:Java和HTML柔和在一起,在Web項(xiàng)目開發(fā)的后期和維護(hù)階段會(huì)造成很大的困難。
JSP模式2(MVC):模式2體系結(jié)構(gòu)集成使用了Servlet和JSP頁(yè)面。在該模式中,JSP頁(yè)面用于表示層,并且Servlet負(fù)責(zé)處理各類任務(wù)。
Model2交互過(guò)程:首先用戶通過(guò)瀏覽器向Web應(yīng)用中的Servlet發(fā)送請(qǐng)求,Servlet接收到請(qǐng)求后實(shí)例化JavaBean對(duì)象, 調(diào)用JavaBean對(duì)象的方法,JavaBean對(duì)象返回從數(shù)據(jù)庫(kù)中讀取的數(shù)據(jù),Servlet選擇合適的JSP,并且把從數(shù)據(jù)庫(kù)中讀取的數(shù)據(jù)通過(guò)這個(gè) JSP進(jìn)行顯示,最后JSP頁(yè)面把最終的結(jié)果返回給瀏覽器。
優(yōu)點(diǎn):業(yè)務(wù)邏輯和表示內(nèi)容得到了很好的分離,這種開發(fā)方式適合多人合作開發(fā)大型的項(xiàng)目。
弊端:Web項(xiàng)目開發(fā)的難度加大了,對(duì)開發(fā)人員的技術(shù)要求也提高了。
Servlet作為一個(gè)控制器,負(fù)責(zé)處理請(qǐng)求并創(chuàng)建JSP頁(yè)面所需的任何Bean.該控制器也負(fù)責(zé)確定將該請(qǐng)求傳遞到哪個(gè)JSP頁(yè)面。JSP頁(yè)面檢索Servlet創(chuàng)建的對(duì)象,并提取動(dòng)態(tài)內(nèi)容插入在一個(gè)模板中。
注意:由于模型位于web服務(wù)器端,而最終的視圖位于用戶瀏覽器端,只有瀏覽器發(fā)出請(qǐng)求后,服務(wù)器才會(huì)做出響應(yīng),沒(méi)有請(qǐng)求就沒(méi)有響應(yīng),所以在 web應(yīng)用中難以實(shí)現(xiàn)模型的“狀態(tài)改變通知”事件,視圖不能隨著模型的改變而自動(dòng)更新。由于在web應(yīng)用中無(wú)法完全實(shí)現(xiàn)真正意義上的mvc模型,模式2只 能算是mvc設(shè)計(jì)模式的一種變體,有人干脆將他稱之為“webMVC”。
分享:jsp的注釋可能會(huì)影響頁(yè)面加載速度讓代碼扔繼續(xù)執(zhí)行在jsp頁(yè)面使用!-- --的注釋,注釋里面的java代碼還是會(huì)得到執(zhí)行,可以再查看頁(yè)面源代碼上看到執(zhí)行完成的內(nèi)容,這樣就會(huì)讓不希望執(zhí)行的代碼得到執(zhí)行,影響加載速度。比如如下代碼: 代碼如下: 性別:select name=qureyItemGroup.sex class=selinp style=width:75px; opti
- jsp 中 ActionForm中文亂碼問(wèn)題解決方法
- jsp的注釋可能會(huì)影響頁(yè)面加載速度讓代碼扔繼續(xù)執(zhí)行
- jsp中兩個(gè)框中內(nèi)容互換可以添加也可以移除
- jsp中獲取當(dāng)前目錄的方法
- 一個(gè)JSP頁(yè)面導(dǎo)致的tomcat內(nèi)存溢出的解決方法
- jsp+ajax發(fā)送GET請(qǐng)求的方法
- java使用smartupload組件實(shí)現(xiàn)文件上傳的方法
- jsp利用application統(tǒng)計(jì)在線人數(shù)的方法
- jsp分頁(yè)顯示完整實(shí)例
- JSP 開發(fā)環(huán)境搭建
- JSP 生命周期
- jsp中URL傳遞中文參數(shù)的處理方法
- 相關(guān)鏈接:
- 教程說(shuō)明:
JSP教程-JSP隱式對(duì)象和MVC設(shè)計(jì)模式(2)
。