首頁常見問題正文

Filter如何攔截請求? 【Servlet高級】

更新時間:2023-01-09 來源:黑馬程序員 瀏覽量:

IT培訓班

  在一個Web應用程序中可以注冊多個Filter程序,每個Filter程序都可以針對某一個URL進行攔截。如果多個Filter程序都對同一個URL進行攔截,那么這些Filter就會組成一個Filter鏈(也稱過濾器鏈)。Filter鏈用FilterChain對象中有一個doFilter()方法,該方法的作用是讓Filter鏈上的當前過濾器放行,使請求進入下一個Filter。

  Filter鏈的攔截過程如圖14-6所示。

1673228883192_Filter鏈.jpg

  圖14-6 Filter鏈

  在圖14-6中,當瀏覽器訪問Web服務器中的資源時,需要經(jīng)過兩個過濾器Filter1和Filter2。首先Filter1會對這個請求進行攔截,在Filter1中處理完請求后,通過調(diào)用Filter1的doFilter()方法將請求傳遞給Filter2,F(xiàn)ilter2處理用戶請求后同樣調(diào)用doFilter()方法,最終將請求發(fā)送給目標資源。當Web服務器對這個請求做出響應時,也會被過濾器攔截,但這個攔截順序與之前相反,最終將響應結果發(fā)送給客戶端瀏覽器。

1673229891627_領取課程.jpg

分享到:

Java培訓班課程javaee

Python培訓機構python大數(shù)據(jù)

web前端培訓課程升級V8.5web

AI+設計培訓課程ui

大數(shù)據(jù)培訓課程cloud

軟件測試培訓課程test

c

新媒體運營培訓netmarket

產(chǎn)品經(jīng)理培訓課程pm

linux培訓Linux

movies

智能機器人培訓robot

電商視覺設計課程uids

AI

集成電路應用開發(fā)(嵌入式)培訓課程jdbc

在線咨詢 我要報名
和我們在線交談!