Servlet與jsp與Filter的使用

ID:40565244

大?。?8.50 KB

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

時(shí)間:2019-08-04

Servlet與jsp與Filter的使用_第1頁(yè)
Servlet與jsp與Filter的使用_第2頁(yè)
Servlet與jsp與Filter的使用_第3頁(yè)
Servlet與jsp與Filter的使用_第4頁(yè)
Servlet與jsp與Filter的使用_第5頁(yè)
資源描述:

《Servlet與jsp與Filter的使用》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)

1、或許,servletAPI的2.3版本中最重要的一個(gè)新功能就是能夠?yàn)閟ervlet和jsp頁(yè)面定義過(guò)濾器。過(guò)濾器提供了某些早期服務(wù)器所支持的非標(biāo)準(zhǔn)“servlet鏈接”的一種功能強(qiáng)大且標(biāo)準(zhǔn)的替代品。過(guò)濾器是一個(gè)程序,它先于與之相關(guān)的servlet或JSP頁(yè)面運(yùn)行在服務(wù)器上。過(guò)濾器可附加到一個(gè)或多個(gè)servlet或JSP頁(yè)面上,并且可以檢查進(jìn)入這些資源的請(qǐng)求信息。在這之后,過(guò)濾器可以作如下的選擇:l以常規(guī)的方式調(diào)用資源(即,調(diào)用servlet或JSP頁(yè)面)。l利用修改過(guò)的請(qǐng)求信息調(diào)用資源。l調(diào)用資源,但在發(fā)送響應(yīng)到客戶(hù)機(jī)前對(duì)其進(jìn)行修改l阻止該資源調(diào)

2、用,代之以轉(zhuǎn)到其他的資源,返回一個(gè)特定的狀態(tài)代碼或生成替換輸出。過(guò)濾器提供了幾個(gè)重要好處。首先,它以一種模塊化的或可重用的方式封裝公共的行為。你有30個(gè)不同的serlvet或JSP頁(yè)面,需要壓縮它們的內(nèi)容以減少下載時(shí)間嗎?沒(méi)問(wèn)題:構(gòu)造一個(gè)壓縮過(guò)濾器(參閱第11節(jié)),然后將它應(yīng)用到30個(gè)資源上即可。其次,利用它能夠?qū)⒏呒?jí)訪問(wèn)決策與表現(xiàn)代碼相分離。這對(duì)于JSP特別有價(jià)值,其中一般希望將幾乎整個(gè)頁(yè)面集中在表現(xiàn)上,而不是集中在業(yè)務(wù)邏輯上。例如,希望阻塞來(lái)自某些站點(diǎn)的訪問(wèn)而不用修改各頁(yè)面(這些頁(yè)面受到訪問(wèn)限制)嗎?沒(méi)問(wèn)題:建立一個(gè)訪問(wèn)限制過(guò)濾器(參閱第8節(jié)

3、)并把它應(yīng)用到想要限制訪問(wèn)的頁(yè)面上即可。最后,過(guò)濾器使你能夠?qū)υS多不同的資源進(jìn)行批量性的更改。你有許多現(xiàn)存資源,這些資源除了公司名要更改外其他的保持不變,能辦到么?沒(méi)問(wèn)題:構(gòu)造一個(gè)串替換過(guò)濾器(參閱第10節(jié)),只要合適就使用它。但要注意,過(guò)濾器只在與servlet規(guī)范2.3版兼容的服務(wù)器上有作用。如果你的Web應(yīng)用需要支持舊版服務(wù)器,就不能使用過(guò)濾器。1.?建立基本過(guò)濾器建立一個(gè)過(guò)濾器涉及下列五個(gè)步驟:1)建立一個(gè)實(shí)現(xiàn)Filter接口的類(lèi)。這個(gè)類(lèi)需要三個(gè)方法,分別是:doFilter、init和destroy。doFilter方法包含主要的過(guò)濾代

4、碼(見(jiàn)第2步),init方法建立設(shè)置操作,而destroy方法進(jìn)行清楚。2)在doFilter方法中放入過(guò)濾行為。doFilter方法的第一個(gè)參數(shù)為ServletRequest對(duì)象。此對(duì)象給過(guò)濾器提供了對(duì)進(jìn)入的信息(包括表單數(shù)據(jù)、cookie和HTTP請(qǐng)求頭)的完全訪問(wèn)。第二個(gè)參數(shù)為ServletResponse,通常在簡(jiǎn)單的過(guò)濾器中忽略此參數(shù)。最后一個(gè)參數(shù)為FilterChain,如下一步所述,此參數(shù)用來(lái)調(diào)用servlet或JSP頁(yè)。3)調(diào)用FilterChain對(duì)象的doFilter方法。Filter接口的doFilter方法取一個(gè)Filte

5、rChain對(duì)象作為它的一個(gè)參數(shù)。在調(diào)用此對(duì)象的doFilter方法時(shí),激活下一個(gè)相關(guān)的過(guò)濾器。如果沒(méi)有另一個(gè)過(guò)濾器與servlet或JSP頁(yè)面關(guān)聯(lián),則servlet或JSP頁(yè)面被激活。4)對(duì)相應(yīng)的servlet和JSP頁(yè)面注冊(cè)過(guò)濾器。在部署描述符文件(web.XML)中使用filter和filter-mapping元素。5)禁用激活器servlet。防止用戶(hù)利用缺省servletURL繞過(guò)過(guò)濾器設(shè)置。1.1?建立一個(gè)實(shí)現(xiàn)Filter接口的類(lèi)所有過(guò)濾器都必須實(shí)現(xiàn)Javax.servlet.Filter。這個(gè)接口包含三個(gè)方法,分別為doFilter

6、、init和destroy。lpublicvoiddoFilter(ServletRequsetrequest,???????????????????ServletResponseresponse,???????????????????FilterChainchain)???thowsServletException,IOException每當(dāng)調(diào)用一個(gè)過(guò)濾器(即,每次請(qǐng)求與此過(guò)濾器相關(guān)的servlet或JSP頁(yè)面)時(shí),就執(zhí)行其doFilter方法。正是這個(gè)方法包含了大部分過(guò)濾邏輯。第一個(gè)參數(shù)為與傳入請(qǐng)求有關(guān)的ServletRequest。對(duì)于簡(jiǎn)單

7、的過(guò)濾器,大多數(shù)過(guò)濾邏輯是基于這個(gè)對(duì)象的。如果處理HTTP請(qǐng)求,并且需要訪問(wèn)諸如getHeader或getCookies等在ServletRequest中無(wú)法得到的方法,就要把此對(duì)象構(gòu)造成HttpServletRequest。第二個(gè)參數(shù)為ServletResponse。除了在兩個(gè)情形下要使用它以外,通常忽略這個(gè)參數(shù)。首先,如果希望完全阻塞對(duì)相關(guān)servlet或JSP頁(yè)面的訪問(wèn)??烧{(diào)用response.getWriter并直接發(fā)送一個(gè)響應(yīng)到客戶(hù)機(jī)。第7節(jié)給出詳細(xì)內(nèi)容,第8節(jié)給出一個(gè)例子。其次,如果希望修改相關(guān)的servlet或JSP頁(yè)面的輸出,可把

8、響應(yīng)包含在一個(gè)收集所有發(fā)送到它的輸出的對(duì)象中。然后,在調(diào)用serlvet或JSP頁(yè)面后,過(guò)濾器可檢查輸出,如果合適就修改它,之后發(fā)送到客

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(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)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。
关闭