共計(jì) 1416 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下如何實(shí)現(xiàn) web 過濾器,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
過濾器
概述
從技術(shù)上講,過濾器是一個(gè)中間組件,用于攔截源數(shù)據(jù)和目的數(shù)據(jù)之間的消息,并且過濾二者之間傳遞的數(shù)據(jù)。其作用類似于警衛(wèi),阻止不想的信息從一個(gè)點(diǎn)傳遞到另一個(gè)點(diǎn)
對于 Web 應(yīng)用程序,過濾器是駐留在 Web 服務(wù)器上的 Web 組件,它可以過濾從客戶端傳遞到服務(wù)器的請求和響應(yīng),當(dāng) Web 容器接收到一個(gè)對資源的請求,它將判斷是否有過濾器與這個(gè)資源相關(guān)聯(lián)。如果有,就交給過濾器,過濾器可以更改請求的內(nèi)容,或者重設(shè)置請求頭,然后再將請求傳遞給目標(biāo)資源。同樣它也可以對服務(wù)器發(fā)出的響應(yīng)進(jìn)行修改。
從上面的過程可以看出客戶端和目標(biāo)資源來說都是透明的,他們不需要知道過濾器的存在
在這個(gè)過程當(dāng)中還可以設(shè)置多個(gè)過濾器,形成一條鏈,來進(jìn)行相應(yīng)的處理
應(yīng)用:
1. 認(rèn)證過濾:對用戶請求進(jìn)行統(tǒng)一的認(rèn)證
2. 登錄和審核過濾:對用戶的訪問請求進(jìn)行記錄和審核。
3. 圖像轉(zhuǎn)換過濾:轉(zhuǎn)換圖像格式
4. 數(shù)據(jù)壓縮過濾:對用戶發(fā)生的數(shù)據(jù)進(jìn)行壓縮,從而減少傳輸量
5. 加密過濾:對請求和響應(yīng)進(jìn)行加密解密處理
6. 令牌過濾
7. 資源訪問觸發(fā)事件過濾
8.XSLT 過濾
9.MIME-type 過濾
代碼:
過濾器必須實(shí)現(xiàn) Filter 這個(gè)接口
有三個(gè)方法需要實(shí)現(xiàn)
1.init()- 初始化
2.doFilter()- 過濾
3.destroy()- 銷毀
注意:javax.servlet 包中包括
ServletRequest、ServletResponse、ServletExcption、FilterConfig、Filter、FilterChain
javax.io 包中包括:
PrinterWriter、IOExcption
Filter 的布署
它的布署跟 servlet 的 布署差不多 eg:
filter filter-name Hello /filter-name filter-class com.lovo.HelleWorld /filter-class /filter filter-mapping filter-name Hello /filter-name url-pattern /filter/* /url-pattern /filter-mapping
過濾器 API:
容器實(shí)現(xiàn)的三個(gè)接口:
1.javax.servlet.Filter
2.javax.serlvet.Filter.Chain
3.javax.servlet.FilterConfig- 跟 servlet 中的 servletConfig 一樣,主要是提供過濾器初始化參數(shù)
容器實(shí)現(xiàn)的四個(gè)包裝類:
1.javax.servlet.ServletRequestWrapper
2.javax.servlet.Servletresponsewrapper
3.javax.servlet.HttpServletRequestWrapper
4.javax.servlet.HttpServletResponseWrapper
web 過濾器可以防止 WVS 掃描和注入、跨站等 ***。
以上是“如何實(shí)現(xiàn) web 過濾器”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!