主頁 > 知識庫 > JSP Filter的應(yīng)用方法

JSP Filter的應(yīng)用方法

熱門標(biāo)簽:湖北地圖標(biāo)注公司 智能電話機(jī)器人銷售話術(shù) 外呼直播語音系統(tǒng) 福建電銷貓機(jī)器人收費(fèi) 汝南縣地圖標(biāo)注app 四川正規(guī)外呼系統(tǒng)軟件 山東ai外呼電銷機(jī)器人好用嗎 地圖標(biāo)注專業(yè)和非專業(yè) 甘肅銷售電銷機(jī)器人公司

Servlet有一個很有意思也很有用的功能,就是Filter。 所謂Filter,就是在用戶請求到達(dá) Servlet 之前、或者 Servlet 執(zhí)行之后, 執(zhí)行的一段小程序,這段程序可以對用戶請求做預(yù)處理, 或者對Servlet返回的結(jié)果進(jìn)行一些公用處理。
Filter可以在請求到達(dá) Servlet 之前執(zhí)行, 甚至即使請求一個靜態(tài)頁面或圖片等,F(xiàn)ilter也會被優(yōu)先執(zhí)行。 這樣我們可以通過Filter對應(yīng)用程序內(nèi)的所有對象(包括Java程序和靜態(tài)內(nèi)容)進(jìn)行預(yù)處理。 (這個功能恐怕PHP程序就無法做到了。)

Filter通??捎糜谝韵聨追N情況:
•認(rèn)證
•記錄訪問日志
•加密解密
•字符編碼轉(zhuǎn)換
•數(shù)據(jù)壓縮

如上面最常用的“認(rèn)證”,可以在Filter中書寫認(rèn)證代碼, 這樣不僅省卻了在Servlet中認(rèn)證的麻煩,而且還能控制網(wǎng)站中靜態(tài)內(nèi)容的訪問。
Filter是個接口,位于 javax.servlet.Filter。它與其他接口的關(guān)系如下:

我們在書寫自己的Filter時,只需寫一個類實現(xiàn) Filter 接口即可。
實現(xiàn)Filter接口需要實現(xiàn)以下幾個方法:

復(fù)制代碼 代碼如下:

void init(FilterConfig filterConfig) throws ServletException

Filter的初始化方法。
復(fù)制代碼 代碼如下:

void destroy()

Filter結(jié)束之前執(zhí)行的方法。
復(fù)制代碼 代碼如下:

void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException

Filter的執(zhí)行內(nèi)容。參數(shù)request和response分別為輸入和輸出參數(shù),而chain則為Filter鏈對象。
所謂FilterChain,一個應(yīng)用程序內(nèi)的Filter可以有多個,它們像鏈子一樣串在一起, 其中的某個Filter執(zhí)行之后,可以調(diào)用chain.doFilter(request, response)將執(zhí)行權(quán)轉(zhuǎn)給下一個Filter, 直到所有的Filter都執(zhí)行完畢。
這次的示例程序我們修改了上一節(jié)的登錄程序, 為它增加了一個下載鏈接(詳見SessionTest.java)。 這個下載鏈接指向 img/sample.jpg。 我們希望能通過一個Filter,在用戶試圖下載 img/sample.jpg 時驗證用戶身份, 如果驗證失敗,則禁止用戶下載,并跳轉(zhuǎn)到登錄頁面。
創(chuàng)建Filter時可惜不能像Servlet那樣,直接從右鍵菜單中選擇新建, 而只能先寫好源代碼然后手工添加到web.xml中。 如下圖,在新建類時注意要實現(xiàn)javax.servlet.Filter接口。

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

最后執(zhí)行,訪問 /LearnJSP/img/sample.jpg ,就會跳轉(zhuǎn)到登錄頁面。 登錄之后再次訪問上面的鏈接,才能看到正確的圖片。

示例下載:servlet-filter_jb51net.zip

您可能感興趣的文章:
  • JSP spring boot / cloud 使用filter防止XSS
  • JSP過濾器Filter配置過濾類型全部匯總
  • 通過過濾器(Filter)解決JSP的Post和Request中文亂碼問題
  • JSP 開發(fā)中過濾器filter設(shè)置編碼格式的實現(xiàn)方法

標(biāo)簽:白銀 肇慶 臨沂 南充 梅州 吳忠 昌都 黔東

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JSP Filter的應(yīng)用方法》,本文關(guān)鍵詞  JSP,Filter,的,應(yīng)用,方法,JSP,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JSP Filter的應(yīng)用方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于JSP Filter的應(yīng)用方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章