JSP Filter的應用方法

2022-09-20 10:00:17 字數 1650 閱讀 6791

servlet有乙個很有意思也很有用的功能,就是filter。 所謂filter,就是在使用者請求到達 servlet 之前、或者 servlet 執行之後, 執行的一段小程式,這段程式可以對使用者請求做預處理, 或者對servlet返回的結果進行一些公用處理。

filter可以在請求到達 servlet 之前執行, 甚至即使請求乙個靜態頁面或等,filter也會被優先執行。 這樣我們可以通過filter對應用程式內的所有物件(包括j**a程式和靜態內容)進行預處理。 (這個功能恐怕php程式就無法做到了。)

filter通常可用於以下幾種情況:

•認證•記錄訪問日誌

•加密解密

•字元編碼轉換

•資料壓縮

如上面最常用的「認證」,可以在filter中書寫認證**, 這樣不僅省卻了在servlet中認證的麻煩,而且還能控制**中靜態內容的訪問。

filter是個介面,位於 j**ax.servlet.filter。它與其他介面的關係如下:

我們在書寫自己的filter時,只需寫乙個類實現 filter 介面即可。

實現filter介面需要實現以下幾個方法:

複製** **如下:

void init(filterconfig filterconfig) throws servletexception

filter的初始化方法。

複製** **如下:

void destroy()

filter結束之前執行的方法。

複製** **如下:

void dofilter(servletrequest request, servletresponse response, filterchain chain) throws i程式設計客棧oexception, servlwww.cppcns.cometexception

filter的執行內容。引數request和response分別為輸入和輸出引數,而chain則為filter鏈物件。

所謂filterchain,乙個應用程式內的filter可以有多個,它們像www.cppcns.com鍊子一樣串在一起, 其中的某個filter執行之後,可以呼叫chain.dofilter(request, response)將執行權轉給下乙個filter, 直到所有的filter都執行完畢。

這次的示例程式我們修改了上一節的登入程式, 為它增加了乙個**鏈結(詳見sessiontest.j**a)。 這個**鏈結指向 img/sample.jpg。 我們希望能通過乙個filter,在使用者試圖** img/sample.jpg 時驗證使用者身份, 如果驗證失敗,則禁止使用者**,並跳轉到登入頁面。

建立filter時可惜不能像servlet那樣,直接從右鍵選單中選擇新建, 而只能先寫好源**然後手工新增到web.xml中。 如下圖,在新建類時注意要實現j**ax.servlet.fcsvjxmilter介面。

寫完**之後,開啟web.xml檔案,手工新增filter。與servlet類似,你需要新增 和 兩個標記。這裡我們要對 /img/ 下的所有檔案進行登入驗證, 因此的 url-pattern 處我們填寫了 /img/* 。

最後執行,訪問 /learnjsp/img/sample.jpg ,就會跳轉到登入頁面。 登入之後再次訪問上面的鏈結,才能看到正確的。

示例**:servlet

本文標題: jsp filter的應用方法

本文位址:

方法的應用

為什麼要引用方法呢?我們再敲 的時候發現呼叫方法時出現重複的 不僅影響囉嗦,而且不實用。所以我們對一段重複的 加以封裝,以提高 的復用性 1.下面我們來一下方法的語法 public static 返回值型別 方法名 引數型別,引數名 2.訪問修飾符 方法被訪問的許可權範圍 public protec...

指標的應用方法

指標是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。要搞清乙個指標需要搞清指標的四方面的內容 指標的型別,指標所指向的 型別,指標的值或者叫指標所指向的記憶體區,還有指標本身所佔據的記憶體區。讓我們分別說明。先宣告幾個指標放著做例子 例一 1 int ptr 2 char ptr 3...

MVC Redirect方法的應用

contentresult對應方法content,返回自定義檔案型別返回文字內容。即我們返回的資訊的型別可以自定義了,可以為css型別,可以為xml等 下面,我們來實戰一下 定義乙個content,根據輸入的值的不同輸出不同的顏色,因為我們選擇返回的是顏色,因此我們定義返回型別就為text css ...