servlet最佳實(shí)現(xiàn)

servlet最佳實(shí)現(xiàn)

ID:37277138

大小:179.50 KB

頁(yè)數(shù):22頁(yè)

時(shí)間:2019-05-20

servlet最佳實(shí)現(xiàn)_第1頁(yè)
servlet最佳實(shí)現(xiàn)_第2頁(yè)
servlet最佳實(shí)現(xiàn)_第3頁(yè)
servlet最佳實(shí)現(xiàn)_第4頁(yè)
servlet最佳實(shí)現(xiàn)_第5頁(yè)
資源描述:

《servlet最佳實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)

1、44第三章Servlet最佳實(shí)踐JasonHunter自1996年引入以來(lái),Servlet已經(jīng)占據(jù)了服務(wù)器端Java領(lǐng)地,并且成為Java介入Web的一種標(biāo)準(zhǔn)方法。作為一種基本技術(shù),Java開發(fā)人員以此為基礎(chǔ)來(lái)構(gòu)建Web應(yīng)用以及(更進(jìn)一步的)Web服務(wù)。這一章將討論基于Servlet的開發(fā)和部署的最佳實(shí)踐。有效使用Servlet首先來(lái)介紹Servlet框架??蚣埽ㄈ?,ApacheStrut)越來(lái)越普及,這是因?yàn)橥ㄟ^(guò)提供一種“骨架”(skeleton,應(yīng)用可在此基礎(chǔ)上構(gòu)建),框架能夠提高程序員的效率。在第一節(jié)中,我們將分析Servlet框架提供了什么并對(duì)最流行的框架作一個(gè)簡(jiǎn)要概述;然后,將

2、討論使用預(yù)編碼字符可以如何優(yōu)化Servlet的性能。接下來(lái),我們將處理加載配置文件這一棘手的問(wèn)題,并提供一些代碼從而使這個(gè)任務(wù)更容易完成;其后,我將提供一些有關(guān)何時(shí)應(yīng)當(dāng)使用(以及何時(shí)不應(yīng)當(dāng)使用)HttpSession和SingleThreadModel特性的技巧。本章結(jié)尾部分,我將解釋如何可靠地控制緩存,以提高用戶的體驗(yàn)。然后將解決一個(gè)常見問(wèn)題:“如何將文件下載到客戶,從而讓客戶看到一個(gè)‘保存為’(SaveAs)彈出對(duì)話框?”,你將看到,答案就在于設(shè)置合適的HTTP首部。Servlet最佳實(shí)踐45選擇合適的Servlet框架編寫Web應(yīng)用時(shí),應(yīng)當(dāng)記住Servlet是一種功能強(qiáng)大的技術(shù)。這

3、一點(diǎn)很容易被遺忘,因?yàn)樽畛鮏ervletAPI即為服務(wù)器端JavaWeb編程的全部。至于ServletAPI不包括的某些內(nèi)容,就必須由我們自行構(gòu)建。這有點(diǎn)類似于西部片中的情景,當(dāng)時(shí)情況相當(dāng)惡劣,真正的程序員需要自己動(dòng)手來(lái)編寫Servlet,而且有關(guān)規(guī)范尚未編寫。僅僅有out.println()就令我們頗感欣慰了。時(shí)光荏苒,斗轉(zhuǎn)星移。正如西部原野上出現(xiàn)了大批牛羊,在這一領(lǐng)域中也涌現(xiàn)了許多新的內(nèi)容,我們看到,大量基于Servlet的技術(shù)被設(shè)計(jì)出來(lái),從而使Web應(yīng)用開發(fā)更加容易而且更為有效。發(fā)生變革的第一個(gè)領(lǐng)域?yàn)楸硎緦?。較之于以前應(yīng)用很廣的out.println(),諸如JavaServerP

4、ages(JSP)、WebMacro和Velocity等技術(shù)則提供了輸出更為豐富的方法。與以往相比,利用這些技術(shù)使得快速地開發(fā)、部署和維護(hù)動(dòng)態(tài)Web內(nèi)容更加容易。有關(guān)這些技術(shù)以及其他模板技術(shù)的全面討論,請(qǐng)參見我所著的《JavaServletProgramming》第二版(O'Reilly出版)。今天,我們發(fā)現(xiàn)在表示層之下出現(xiàn)了一個(gè)產(chǎn)生變革的新領(lǐng)域,即框架層(如圖3-1所示)。這些新的框架提供了一個(gè)可靠的支架,基于這個(gè)支架可以構(gòu)建新的Web應(yīng)用,從而由快速構(gòu)建頁(yè)面轉(zhuǎn)移到快速構(gòu)建完整的應(yīng)用。框架采納了專家們最優(yōu)秀的設(shè)計(jì),使你能夠重用這些設(shè)計(jì)。好的框架有助于改善應(yīng)用的模塊性和可維護(hù)性??蚣苓€將

5、多種單獨(dú)的技術(shù)集合在一個(gè)捆綁的包中,并提供了基于這些技術(shù)構(gòu)建的組件以解決常見的任務(wù)。如果你選擇了合適的Servlet框架,不但可以大大地提高你的工作量,并且可以利用他人的工作。因此,我建議你考慮使用一個(gè)框架,而且我在這一節(jié)中還將提供一些關(guān)于選擇合適的框架的有用技巧。選擇框架的技巧選擇一個(gè)Servlet框架時(shí),考慮其特性表相當(dāng)重要。下面列出了框架提供的一些特性。并非所有框架都支持以下特性,另外這一簡(jiǎn)短的列表也并非詳盡的(注1)。注1:這實(shí)際上是一個(gè)正在進(jìn)行的研究項(xiàng)目,其目標(biāo)是跟蹤Servlet框架特性,并且在各個(gè)框架上實(shí)現(xiàn)同樣的演示W(wǎng)eb應(yīng)用。更多的信息請(qǐng)參見http;//www.wafe

6、rproject.org。46第三章Servlet框架JSPWebMacroVelocityMVC類Servlets等等安全性表單驗(yàn)證數(shù)據(jù)庫(kù)錯(cuò)誤處理集成圖3-1:Servlet、模板技術(shù)和框架與模板語(yǔ)言的集成有些框架集成了一個(gè)特定模板語(yǔ)言,另外一些框架則有一個(gè)“可插拔”的模型以支持多個(gè)模板,不過(guò)它們通常都針對(duì)一種模板語(yǔ)言加以優(yōu)化。如果你偏好某種特定的模板語(yǔ)言,請(qǐng)確保所選框架能夠很好地提供相應(yīng)的支持。支持(理想情況下則可增強(qiáng))設(shè)計(jì)人員/開發(fā)人員的分離Web應(yīng)用開發(fā)的一個(gè)通常目標(biāo)是將開發(fā)人員的責(zé)任從設(shè)計(jì)人員的責(zé)任中有效地分離出來(lái)。對(duì)于這一目標(biāo),選擇適當(dāng)?shù)哪0逭Z(yǔ)言可以提供幫助,但是選擇合適的框

7、架則會(huì)有更大的影響。有一些框架可以支持這種分離,還有一些甚至可能增強(qiáng)。安全集成默認(rèn)的Servlet訪問(wèn)控制和安全模型可以用于簡(jiǎn)單任務(wù),但未能針對(duì)更為高級(jí)的需求做相應(yīng)擴(kuò)展。有些框架提供了另外的安全模型,而且許多框架還支持“可插拔”的安全模型。如果你希望獲得更為高級(jí)的安全控制,那么選擇合適的框架將有所幫助。表單驗(yàn)證框架通常提供了驗(yàn)證表單數(shù)據(jù)的工具,例如,在Servlet看到數(shù)據(jù)之前允許框架對(duì)參數(shù)進(jìn)行全面檢查。有些框架使得我們可以很容易地

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。