1概念:web
* 生活中的過濾器: 淨水器。空氣淨化器,土匪。瀏覽器
*web中過濾器:當訪問服務器資源,過濾器能夠將請求攔截下來,完成特殊的功能。服務器
*過濾器的做用:jsp
通常用於完成通用的操做。如:登陸驗證、統一編碼處理、敏感字符串過濾。。。編碼
快速入門: url
1步驟:spa
1定義一個類,實現接口Filter3d
2複寫方法xml
3配置攔截路徑對象
1web.xml
2註解 使用@WebFilter(「/攔截路徑」)
2。過濾器執行流程
1執行過濾器
2執行放行後的資源
3最後執行過濾器放行後的代碼。
3過濾器生命週期的方法
1init方法:在服務器啓動後,會建立Filter對象,而後調用init方法,只執行一次。用於加載資源
2doFilter:每一次請求被攔截資源時,會執行,執行屢次
3destory:在服務器關閉後,Filter對象被銷燬。若是服務器是正常關閉的,那麼會執行destory方法,用於釋放資源。
4過濾器配置詳解
1具體資源路徑: /index.jsp 只有訪問index.jsp資源時,過濾器纔會被執行
2攔截目錄:/user/* 訪問/user下的全部資源時,過濾器都會被執行
3後綴名攔截: *.jsp 訪問後綴是jsp的資源時過濾器會被執行
4攔截全部資源 /* 訪問任何資源都會被攔截
攔截方式配置:資源被訪問的方式
註解配置
設置dispatcherTypes屬性
1REQUEST:默認值。瀏覽器直接請求資源
2FORWARD:轉發訪問資源
3INCLUDE:包含訪問資源
3Error:錯誤跳轉資源
web.xml配置
*設置<dispatcherTypes></dispatcherTypes>標籤。
過濾器鏈(配置多個過濾器)
執行順序
1過濾器1
2過濾器2
3執行資源
4過濾器2
5過濾器1
過濾器前後執行順序
1註解配置:按照類名字符串比較規則比較,值小的先執行
如Afileter 和Bfilter 那麼Afilter就會先執行
2web.xml配置
按照配置的前後順序,配置咋前面的先執行
通常使用httpServletRequest
和httpServletRequest 才能夠獲取uri 或者url