資源描述:
《JavaBean和表單處理》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、1第七章JavaBean與表單處理2JSP程序開發(fā)模式單純的JSP頁(yè)面編程在單純的JSP編程模式下,通過(guò)應(yīng)用JSP中的腳本標(biāo)志,可直接在JSP頁(yè)面中實(shí)現(xiàn)各種功能。這種模式很容易實(shí)現(xiàn)。缺點(diǎn):因?yàn)閷⒋蟛糠值腏ava代碼與HTML代碼混淆在一起,會(huì)給程序的維護(hù)和調(diào)試帶來(lái)很多的困難,而且對(duì)于整個(gè)程序的結(jié)構(gòu)更是無(wú)從談起。單純的JSP頁(yè)面編程模式是無(wú)法應(yīng)用到大型、中型甚至小型的JSPWeb應(yīng)用程序開發(fā)中。3JSP程序開發(fā)模式JSP+JavaBean編程該模式是JSP程序開發(fā)經(jīng)典設(shè)計(jì)模式之一,適合小型或中型網(wǎng)站的開發(fā)。利用JavaBean技術(shù),可以很容易地完成一些業(yè)務(wù)邏輯上的操作,例如數(shù)
2、據(jù)庫(kù)的連接、用戶登錄與注銷等。JavaBean是一個(gè)遵循了一定規(guī)則的Java類,在程序的開發(fā)中,將要進(jìn)行的業(yè)務(wù)邏輯封裝到這個(gè)類中,在JSP頁(yè)面中通過(guò)動(dòng)作標(biāo)簽來(lái)調(diào)用這個(gè)類,從而執(zhí)行這個(gè)業(yè)務(wù)邏輯。此時(shí)的JSP除了負(fù)責(zé)部分流程的控制外,大部分用來(lái)顯示頁(yè)面,而JavaBean則負(fù)責(zé)業(yè)務(wù)邏輯的處理。下面將通過(guò)一個(gè)流程圖說(shuō)明該模式對(duì)客戶端的請(qǐng)求進(jìn)行處理的過(guò)程。4JSP+JavaBean編程客戶端帶有JSP引擎的Web服務(wù)器用戶通過(guò)客戶端瀏覽器請(qǐng)求服務(wù)器服務(wù)器將最終的結(jié)果返回給客戶端瀏覽器進(jìn)行顯示JSP頁(yè)面JavaBean業(yè)務(wù)邏輯數(shù)據(jù)庫(kù)在JavaBean中連接及操作數(shù)據(jù)庫(kù),或?qū)崿F(xiàn)其他業(yè)務(wù)
3、邏輯在JSP頁(yè)面中調(diào)用JavaBean服務(wù)器接收用戶請(qǐng)求后調(diào)用JSP頁(yè)JavaBean將執(zhí)行的結(jié)果返回JSP頁(yè)面服務(wù)器讀取JSP頁(yè)面中的內(nèi)容(將頁(yè)面中的靜態(tài)與動(dòng)態(tài)內(nèi)容相結(jié)合)5優(yōu)點(diǎn):純凈的JSP頁(yè)面因?yàn)闃I(yè)務(wù)邏輯和數(shù)據(jù)庫(kù)操作已經(jīng)從JSP頁(yè)面中剝離出來(lái),JSP頁(yè)面中只需嵌入少量的Java代碼甚至不使用Java代碼。可重用的組件設(shè)計(jì)良好的JavaBean可以重用,甚至可以作為產(chǎn)品銷售,在團(tuán)隊(duì)協(xié)作的項(xiàng)目中,可重用的JavaBean將會(huì)大大減少開發(fā)人員的工作量,加快開發(fā)進(jìn)度。方便進(jìn)行調(diào)試復(fù)雜的操作都封裝在一個(gè)或者數(shù)個(gè)JavaBean中,錯(cuò)誤比較容易定位。易維護(hù)易擴(kuò)展系統(tǒng)的升級(jí)或者更改
4、往往集中在一組JavaBean中,而不用編輯所有的JSP頁(yè)面。6應(yīng)用范圍Model1模式的表現(xiàn)邏輯和控制邏輯全部邏輯耦合在頁(yè)面中,這種處理方式對(duì)一些規(guī)模很小只有幾個(gè)簡(jiǎn)單頁(yè)面的項(xiàng)目比較適用。用Model1模式開發(fā)大型項(xiàng)目時(shí),程序流向由一些互相能夠感知的頁(yè)面決定,當(dāng)頁(yè)面很多時(shí)要清楚地把握其流向?qū)⑹呛軓?fù)雜的事情,當(dāng)用戶修改一頁(yè)時(shí)可能會(huì)影響相關(guān)的很多頁(yè)面,大有牽一發(fā)而動(dòng)全局的感覺(jué),使得程序的修改與維護(hù)變得異常困難;還有一個(gè)問(wèn)題就是程序邏輯開發(fā)與頁(yè)面設(shè)計(jì)糾纏在一起,既不便于分工合作也不利于代碼的重用,這樣的程序其健壯性和可伸縮性都不好。7JSP程序開發(fā)模式JSP+Servlet+Ja
5、vaBean編程在JSP+JavaBean設(shè)計(jì)模式的基礎(chǔ)上加入Servlet來(lái)實(shí)現(xiàn)程序中的控制層。在這種模式中,由Servlet來(lái)執(zhí)行業(yè)務(wù)邏輯并負(fù)責(zé)程序的流程控制,JavaBean組件實(shí)現(xiàn)業(yè)務(wù)邏輯,充當(dāng)著模型的角色,JSP用于頁(yè)面的顯示??梢钥闯鲞@種模式使得程序中的層次關(guān)系更明顯,各組件的分工也非常明確。下面將通過(guò)一個(gè)流程圖說(shuō)明該模式對(duì)客戶端的請(qǐng)求進(jìn)行處理的過(guò)程。8JSP+Servlet+JavaBean編程對(duì)客戶端的請(qǐng)求進(jìn)行處理的過(guò)程客戶端帶有JSP引擎的Web服務(wù)器用戶通過(guò)客戶端瀏覽器請(qǐng)求服務(wù)器服務(wù)器將最終的結(jié)果返回給客戶端瀏覽器進(jìn)行顯示JSP頁(yè)面JavaBean業(yè)務(wù)邏
6、輯數(shù)據(jù)庫(kù)在JavaBean中連接及操作數(shù)據(jù)庫(kù),或?qū)崿F(xiàn)其他業(yè)務(wù)邏輯服務(wù)器接收用戶請(qǐng)求后調(diào)用ServletServlet根據(jù)用戶請(qǐng)求調(diào)用JavaBean處理業(yè)務(wù)服務(wù)器讀取JSP頁(yè)面中的內(nèi)容(將頁(yè)面中的靜態(tài)與動(dòng)態(tài)的內(nèi)容相結(jié)合)請(qǐng)求響應(yīng)Servlet調(diào)用轉(zhuǎn)發(fā)由Servlet轉(zhuǎn)發(fā)請(qǐng)求到JSP頁(yè)面JavaBean將結(jié)果返回Servlet,在Servlet中將結(jié)果保存到請(qǐng)求對(duì)象中9JSP程序開發(fā)模式MVC模式MVC(Model-View-Controller,模型—視圖—控制器)是一種程序設(shè)計(jì)概念,它同時(shí)適用于簡(jiǎn)單的和復(fù)雜的程序。使用該模式可將待開發(fā)的應(yīng)用程序分解為3個(gè)獨(dú)立的部分:模型、
7、視圖和控制器。10JSP程序開發(fā)模式提出這種設(shè)計(jì)模式主要是因?yàn)閼?yīng)用程序中用來(lái)完成任務(wù)的代碼——模型(也稱為“業(yè)務(wù)邏輯”)通常是程序中相對(duì)穩(wěn)定的部分,并且會(huì)被重復(fù)使用,程序與用戶進(jìn)行交互的頁(yè)面——視圖,卻是經(jīng)常改變的。如果因需要更新頁(yè)面而不得不對(duì)業(yè)務(wù)邏輯代碼進(jìn)行改動(dòng),或者要在不同的模塊中應(yīng)用到相同的功能而重復(fù)地編寫業(yè)務(wù)邏輯代碼,不僅降低了整體程序開發(fā)的進(jìn)程,而且會(huì)使程序變得難以維護(hù)。因此,將業(yè)務(wù)邏輯代碼與外觀呈現(xiàn)分離,將會(huì)更容易地根據(jù)需求的改變來(lái)改進(jìn)程序。11Model(模型):指的是業(yè)務(wù)邏輯的代碼,是應(yīng)用程序中真正