JSP Filter的應(yīng)用方法_JSP教程
推薦:JSP 相關(guān)對(duì)象的使用介紹本篇文章小編為大家介紹,JSP 相關(guān)對(duì)象的使用介紹,需要的朋友參考下
Servlet有一個(gè)很有意思也很有用的功能,就是Filter。 所謂Filter,就是在用戶請(qǐng)求到達(dá) Servlet 之前、或者 Servlet 執(zhí)行之后, 執(zhí)行的一段小程序,這段程序可以對(duì)用戶請(qǐng)求做預(yù)處理, 或者對(duì)Servlet返回的結(jié)果進(jìn)行一些公用處理。
Filter可以在請(qǐng)求到達(dá) Servlet 之前執(zhí)行, 甚至即使請(qǐng)求一個(gè)靜態(tài)頁(yè)面或圖片等,F(xiàn)ilter也會(huì)被優(yōu)先執(zhí)行。 這樣我們可以通過(guò)Filter對(duì)應(yīng)用程序內(nèi)的所有對(duì)象(包括Java程序和靜態(tài)內(nèi)容)進(jìn)行預(yù)處理。 (這個(gè)功能恐怕PHP程序就無(wú)法做到了。)
Filter通?捎糜谝韵聨追N情況:
•認(rèn)證
•記錄訪問(wèn)日志
•加密解密
•字符編碼轉(zhuǎn)換
•數(shù)據(jù)壓縮
如上面最常用的“認(rèn)證”,可以在Filter中書寫認(rèn)證代碼, 這樣不僅省卻了在Servlet中認(rèn)證的麻煩,而且還能控制網(wǎng)站中靜態(tài)內(nèi)容的訪問(wèn)。
Filter是個(gè)接口,位于 javax.servlet.Filter。它與其他接口的關(guān)系如下:
我們?cè)跁鴮懽约旱腇ilter時(shí),只需寫一個(gè)類實(shí)現(xiàn) Filter 接口即可。
實(shí)現(xiàn)Filter接口需要實(shí)現(xiàn)以下幾個(gè)方法:
Filter的初始化方法。
void destroy()
Filter結(jié)束之前執(zhí)行的方法。
void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
Filter的執(zhí)行內(nèi)容。參數(shù)request和response分別為輸入和輸出參數(shù),而chain則為Filter鏈對(duì)象。
所謂FilterChain,一個(gè)應(yīng)用程序內(nèi)的Filter可以有多個(gè),它們像鏈子一樣串在一起, 其中的某個(gè)Filter執(zhí)行之后,可以調(diào)用chain.doFilter(request, response)將執(zhí)行權(quán)轉(zhuǎn)給下一個(gè)Filter, 直到所有的Filter都執(zhí)行完畢。
這次的示例程序我們修改了上一節(jié)的登錄程序, 為它增加了一個(gè)下載鏈接(詳見(jiàn)SessionTest.java)。 這個(gè)下載鏈接指向 img/sample.jpg。 我們希望能通過(guò)一個(gè)Filter,在用戶試圖下載 img/sample.jpg 時(shí)驗(yàn)證用戶身份, 如果驗(yàn)證失敗,則禁止用戶下載,并跳轉(zhuǎn)到登錄頁(yè)面。
創(chuàng)建Filter時(shí)可惜不能像Servlet那樣,直接從右鍵菜單中選擇新建, 而只能先寫好源代碼然后手工添加到web.xml中。 如下圖,在新建類時(shí)注意要實(shí)現(xiàn)javax.servlet.Filter接口。

寫完代碼之后,打開web.xml文件,手工添加Filter。與Servlet類似,你需要添加 和 兩個(gè)標(biāo)記。這里我們要對(duì) /img/ 下的所有文件進(jìn)行登錄驗(yàn)證, 因此的 url-pattern 處我們填寫了 /img/* 。

最后執(zhí)行,訪問(wèn) /LearnJSP/img/sample.jpg ,就會(huì)跳轉(zhuǎn)到登錄頁(yè)面。 登錄之后再次訪問(wèn)上面的鏈接,才能看到正確的圖片。
示例下載:
分享:jsp 常用標(biāo)簽的使用本篇文章小編為大家介紹,在jsp中常用標(biāo)簽的使用。需要的朋友可以參考下
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復(fù)習(xí)整理
- JSP腳本元素和注釋復(fù)習(xí)總結(jié)示例
- JSP FusionCharts Free顯示圖表 具體實(shí)現(xiàn)
- 網(wǎng)頁(yè)模板:關(guān)于jsp頁(yè)面使用jstl的異常分析
- JSP頁(yè)面中文傳遞參數(shù)使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項(xiàng)目中連接Access數(shù)據(jù)庫(kù)的配置方法
- JDBC連接Access數(shù)據(jù)庫(kù)的幾種方式介紹
- 網(wǎng)站圖片路徑的問(wèn)題:絕對(duì)路徑/虛擬路徑
- (jsp/html)網(wǎng)頁(yè)上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對(duì)路徑下的圖片解決方法
JSP教程Rss訂閱編程教程搜索
JSP教程推薦
- jsp是什么文件 如何打開jsp格式的文件
- jstl實(shí)現(xiàn)在jsp中動(dòng)態(tài)添加下拉列表項(xiàng)
- 關(guān)于Jsp頁(yè)面的幾種傳參方式
- 基于JSP HttpServlet的詳細(xì)介紹
- CNET JSP BASIC 安裝JSP
- 淺析spring依賴注入的3種實(shí)現(xiàn)方式
- TOMCAT主目錄與虛擬目錄的配置
- ajax+json+Struts2實(shí)現(xiàn)list傳遞實(shí)例講解
- 在JSP開發(fā)中的對(duì)象和范圍屬性
- Apache Tomcat 5.5部署jsp項(xiàng)目總結(jié)之——基本配置
猜你也喜歡看這些
- java中IP地址轉(zhuǎn)換十進(jìn)制數(shù)實(shí)現(xiàn)代碼
- JSP數(shù)據(jù)導(dǎo)出到EXCEL簡(jiǎn)便方法
- 處理jsp顯示文字過(guò)長(zhǎng)問(wèn)題的解決方法
- 解析如何在JSP中使用Spring
- 詳談Java如何進(jìn)階
- JSP環(huán)境配置TOMCAT的內(nèi)存和連接數(shù)配置詳解
- CNET JSP BASICJSP語(yǔ)法的基本原理
- JSP中可能會(huì)碰到的問(wèn)題解答
- Struts初級(jí)教程(2)-避免出現(xiàn)亂碼
- 揭秘學(xué)習(xí)Java必須了解的30個(gè)基本概念
- 相關(guān)鏈接:
- 教程說(shuō)明:
JSP教程-JSP Filter的應(yīng)用方法
。