過濾器(Filter)
所謂過濾器,其實就是一個服務端組件,用來截取用戶端的請求與響應信息。
具體流程如下:
過濾器的應用場景:
1.對用戶請求進行統一認證,保證不會出現用戶賬戶安全性問題
2.編碼轉換,可在服務端的過濾器中設置統一的編碼格式,避免出現亂碼
3.對用戶發送的數據進行過濾替換
4.轉換圖像格式
5.對響應的內容進行壓縮
過濾器匹配規則:
1.精確匹配 /directory/test.action
2.目錄匹配 /sig_upgrade.php/×
3.后綴匹配 ×.php
多個過濾器執行順序:
-
在web.xml中,filter執行順序跟
<filter-mapping>
的順序有關,先聲明的先執行 -
使用注解配置的話,filter的執行順序跟名稱的字母順序有關,例如AFilter會比BFilter先執行
-
如果既有在web.xml中聲明的Filter,也有通過注解配置的Filter,那么會優先執行web.xml中配置的Filter
/和/*之間的區別:
<url-pattern>/</url-pattern>: 會匹配到/login這樣的路徑型url,不會匹配到模式為*.jsp這樣的后綴型url
<url-pattern>/*</url-pattern>:會匹配所有url:路徑型的和后綴型的url(包括/login , *.jsp , *.js 和 *.html 等)