人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細頁面

案例講解JSP Model2體系結(jié)構(gòu)(上)

案例講解JSP Model2體系結(jié)構(gòu)(上)

更新時間:2022-07-18 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

最近已經(jīng)有了很多相關(guān)的介紹,JSP正在成為一種卓越的Java技術(shù),可用于創(chuàng)建動態(tài)Web應(yīng)用程序。Java程序員之所以喜愛JSP有數(shù)不清的理由。有些人喜歡它為交互式頁面帶來的“一次編寫,處處使用”的方式;還有些人欣賞它是因為它容易學(xué)習(xí),并且使他們可以把Java作為一種服務(wù)器端腳本語言來使用。但更多的還都是因為一個共同原因――使用JSP的最大好處是它能幫助你有效地把表達與內(nèi)容分離開。在本文中,我對下面的問題作了深入探討,那就是,如何使用JSP Model 2體系結(jié)構(gòu)獲得最佳的表達-內(nèi)容分離效果。這個模型也可以被看作是通用MVC設(shè)計模式在服務(wù)器端的一個實現(xiàn)。請注意,在閱讀本文之前,你需要熟悉基本的JSP和servlet編程,因為文中將不會涉及到任何語法規(guī)則問題。

Servlets有什么問題?
  盡管JSP在動態(tài)Web內(nèi)容服務(wù)和分離內(nèi)容與表達上可以做得非常好,但仍然會有人置疑,為什么要把servlets丟在一邊呢?其實servlets的作用不容置疑。它們在服務(wù)器端處理上做得很優(yōu)秀,而且,由于它們已有了堅實的基礎(chǔ),所以仍將被保留。實際上,從結(jié)構(gòu)上講,你可以把JSP看作是servlets的一種高級抽象,就像Servlet2.1 API的一種擴充一樣來實現(xiàn)。然而,你也不應(yīng)當(dāng)濫用servlets,它們并非對每個人都適用。舉個例子,如果網(wǎng)頁設(shè)計者能夠很容易地用傳統(tǒng)HTML或XML工具寫出JSP頁的話,servlets就更適合那些后臺程序的開發(fā)者,因為servlets通常是用集成開發(fā)環(huán)境(IDE)編寫的――一般來說這種方式需要更高級的編程技能。在運用servlets時,即使是開發(fā)者也必須小心謹慎以確保表達和內(nèi)容不存在緊密的聯(lián)系。要做到這一點,你通?梢允褂玫谌紿TML包(比如htmlKona)來混合代碼。但即便是這種方法,盡管它通過簡單的屏幕變換帶來了一些靈活性,卻無法幫你避免表達格式本身的改動。例如,如果你的表達格式從HTML變?yōu)镈HTML,你就必須確保那些語言包適應(yīng)新的格式。假設(shè)一種最壞的情況,如果一個包不可用,你也許將不得不忙于在動態(tài)內(nèi)容中艱難地編寫表達,這會把你累死。那么,如何解決這個問題呢?接下來你將看到,使用JSP與servlets技術(shù)相結(jié)合是構(gòu)建應(yīng)用系統(tǒng)地一種好方法。

不同的體系
  早期的JSP規(guī)范提出了兩種用JSP技術(shù)建立應(yīng)用程序的方式。這兩種方式在術(shù)語中分別稱作JSP Model 1 和JSP Model 2,它們的本質(zhì)區(qū)別在于處理批量請求的位置不同。在Model 1體系中,如圖1所示,jsp頁面獨自響應(yīng)請求并將處理結(jié)果返回客戶。這里仍然存在表達與內(nèi)容的分離,因為所以的數(shù)據(jù)存取都是由bean來完成的。盡管Model 1體系十分適合簡單應(yīng)用的需要,它卻不能滿足復(fù)雜的大型應(yīng)用程序的實現(xiàn)。不加選擇地隨意運用Model 1,會導(dǎo)致JSP頁內(nèi)被嵌入大量的腳本片段或Java代碼,特別是當(dāng)需要處理的請求量很大時,情況更為嚴重。盡管這對于Java程序員來說可能不是什么大問題,但如果JSP頁面是由網(wǎng)頁設(shè)計人員開發(fā)并維護的――通常這是開發(fā)大型項目的規(guī)范――這就確實是個問題了。從根本上講,將導(dǎo)致角色定義不清和職責(zé)分配不明,給項目管理帶來不必要的麻煩。


  圖1:JSP Model 1 體系結(jié)構(gòu)

  圖中文字:BROWSER:瀏覽器;Request:請求;Response:響應(yīng);Application Server:應(yīng)用服務(wù)器;Enterprise Servers/Data Sources:企業(yè)服務(wù)器/數(shù)據(jù)源。

  Model 2體系結(jié)構(gòu),如圖2所示,是一種把JSP與servlets聯(lián)合使用來實現(xiàn)動態(tài)內(nèi)容服務(wù)的方法。它吸取了兩種技術(shù)各自的突出優(yōu)點,用JSP生成表達層的內(nèi)容,讓servlets完成深層次的處理任務(wù)。在這里,servlets充當(dāng)控制者的角色,負責(zé)管理對請求的處理,創(chuàng)建JSP頁需要使用的bean和對象,同時根據(jù)用戶的動作決定把那個JSP頁傳給請求者。特別要注意,在JSP頁內(nèi)沒有處理邏輯;它僅負責(zé)檢索原先由servlets創(chuàng)建的對象或beans,從servlet中提取動態(tài)內(nèi)容插入靜態(tài)模板。在我看來,這是一種有代表性的方法,它清晰地分離了表達和內(nèi)容,明確了角色的定義以及開發(fā)者與網(wǎng)頁設(shè)計者的分工。事實上,項目越復(fù)雜,使用Model 2體系結(jié)構(gòu)的好處就越大。


  圖2:JSP Model 2體系結(jié)構(gòu)

  圖中文字:instantlate:瞬間延時;Controller、View、Model分別為MVC設(shè)計模式中的控制者、試圖、模型;其他同圖1。

  為了進一步闡明Model 2體系結(jié)構(gòu)的概念,我們來看一個用它實現(xiàn)的例子:一個叫做“音樂無國界”的網(wǎng)上音樂商店。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 晴隆县| 陆丰市| 邵东县| 外汇| 中卫市| 南开区| 浮山县| 五大连池市| 罗江县| 基隆市| 大洼县| 锦州市| 垣曲县| 海门市| 巴林右旗| 铁力市| 兴城市| 彰化市| 永胜县| 遂宁市| 湘潭市| 灵台县| 仪陇县| 新河县| 晋宁县| 泰和县| 昌黎县| 汝城县| 庄河市| 楚雄市| 嫩江县| 马关县| 南木林县| 岳阳市| 夏津县| 宜宾市| 新乡市| 武冈市| 定南县| 衢州市| 彭阳县|