校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > 實(shí)例講解JSP Model2體系結(jié)構(gòu)(上)

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

熱門(mén)標(biāo)簽:地圖標(biāo)注創(chuàng)業(yè)項(xiàng)目入駐 廣州三五防封電銷卡 外呼系統(tǒng)啥意思 四川電信外呼系統(tǒng)靠譜嗎 珠海銷售外呼系統(tǒng)運(yùn)營(yíng)商 山東智能云外呼管理系統(tǒng) 長(zhǎng)春回?fù)芡夂粝到y(tǒng)廠家 地圖標(biāo)注制作道路 電銷外呼系統(tǒng) 排行榜
最近已經(jīng)有了很多相關(guān)的介紹,JSP正在成為一種卓越的Java技術(shù),可用于創(chuàng)建動(dòng)態(tài)Web應(yīng)用程序。Java程序員之所以喜愛(ài)JSP有數(shù)不清的理由。有些人喜歡它為交互式頁(yè)面帶來(lái)的“一次編寫(xiě),處處使用”的方式;還有些人欣賞它是因?yàn)樗菀讓W(xué)習(xí),并且使他們可以把Java作為一種服務(wù)器端腳本語(yǔ)言來(lái)使用。但更多的還都是因?yàn)橐粋€(gè)共同原因――使用JSP的最大好處是它能幫助你有效地把表達(dá)與內(nèi)容分離開(kāi)。在本文中,我對(duì)下面的問(wèn)題作了深入探討,那就是,如何使用JSP Model 2體系結(jié)構(gòu)獲得最佳的表達(dá)-內(nèi)容分離效果。這個(gè)模型也可以被看作是通用MVC設(shè)計(jì)模式在服務(wù)器端的一個(gè)實(shí)現(xiàn)。請(qǐng)注意,在閱讀本文之前,你需要熟悉基本的JSP和servlet編程,因?yàn)槲闹袑⒉粫?huì)涉及到任何語(yǔ)法規(guī)則問(wèn)題。

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

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


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

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


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

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

  為了進(jìn)一步闡明Model 2體系結(jié)構(gòu)的概念,我們來(lái)看一個(gè)用它實(shí)現(xiàn)的例子:一個(gè)叫做“音樂(lè)無(wú)國(guó)界”的網(wǎng)上音樂(lè)商店。
您可能感興趣的文章:
  • JSP運(yùn)行原理和九大隱式對(duì)象說(shuō)明
  • 實(shí)例講解JSP Model2體系結(jié)構(gòu)(下)
  • 實(shí)例講解JSP Model2體系結(jié)構(gòu)(中)
  • JSP中使用JavaScript動(dòng)態(tài)插入刪除輸入框?qū)崿F(xiàn)代碼
  • JSP + ajax實(shí)現(xiàn)輸入框自動(dòng)補(bǔ)全功能 實(shí)例代碼
  • JSP輸出HTML時(shí)產(chǎn)生的大量空格和換行的去除方法
  • jsp 頁(yè)面上圖片分行輸出小技巧
  • JSP動(dòng)態(tài)輸出Excel及中文亂碼的解決
  • Jsp結(jié)合XML+XSLT將輸出轉(zhuǎn)換為Html格式
  • jsp源碼實(shí)例1(輸出)
  • JSP程序運(yùn)行原理、文檔結(jié)構(gòu)及簡(jiǎn)單輸入輸出實(shí)例分析

標(biāo)簽:紹興 肇慶 吳忠 北海 玉樹(shù) 保定 廣元 潮州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《實(shí)例講解JSP Model2體系結(jié)構(gòu)(上)》,本文關(guān)鍵詞  實(shí)例,講解,JSP,Model2,體系結(jié)構(gòu),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《實(shí)例講解JSP Model2體系結(jié)構(gòu)(上)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于實(shí)例講解JSP Model2體系結(jié)構(gòu)(上)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 十堰市| 法库县| 昂仁县| 保靖县| 武安市| 织金县| 稻城县| 拉孜县| 穆棱市| 衡南县| 泸水县| 平顶山市| 房产| 温宿县| 沂水县| 宁都县| 邯郸县| 夏津县| 江油市| 锡林浩特市| 齐河县| 汶川县| 温泉县| 嘉荫县| 太仆寺旗| 宁德市| 临安市| 衡南县| 兴和县| 齐河县| 灵丘县| 高雄市| 绍兴市| 丰原市| 房产| 长宁区| 天长市| 汾阳市| 安福县| 延吉市| 滁州市|