1、過濾器Filter
1.filter的簡介
filter是對客戶端訪問資源的過濾,符合條件放行,不符合條件不放行,而且能夠對目 標資源訪問先後進行邏輯處理
2.快速入門
步驟:
1)編寫一個過濾器的類實現Filter接口
2)實現接口中還沒有實現的方法(着重實現doFilter方法)
3)在web.xml中進行配置(主要是配置要對哪些資源進行過濾)web
3.Filter的API詳解
(1)filter生命週期及其與生命週期相關的方法
Filter接口有三個方法,而且這個三個都是與Filter的生命相關的方法
init(Filterconfig):表明filter對象初始化方法 filter對象建立時執行
doFilter(ServletRequest,ServletResponse,FilterCha):表明filter執行過濾的核心方法,若是某資源在已經被配置到這個filter進行過濾的話,那麼每次訪問這個資源都會執行doFilter方法
destory():表明是filter銷燬方法 當filter對象銷燬時執行該方法服務器
Filter對象的生命週期:
Filter什麼時候建立:服務器啓動時就建立該filter對象
Filter什麼時候銷燬:服務器關閉時filter銷燬jsp
(2)Filter的AP詳解
1)init(FilterConfig)
其中參數config表明 該Filter對象的配置信息的對象,內部封裝是該filter的配置信息。url
2)destory()方法
filter對象銷燬時執行
3)doFilter方法
doFilter(ServletRequest,ServletResponse,FilterChain)
其中的參數:
ServletRequest/ServletResponse:每次在執行doFilter方法時 web容器負責建立一個request和一個response對象做爲doFilter的參數傳遞進來。該request個該response就是在訪問目標資源的service方法時的request和response。
FilterChain:過濾器鏈對象,經過該對象的doFilter方法能夠放行該請求spa
4.Filter的配置代理
url-pattern配置時
1)徹底匹配 /sertvle1
2)目錄匹配 /aaa/bbb/* ----最多的
/user/*:訪問前臺的資源進入此過濾器
/admin/*:訪問後臺的資源時執行此過濾器
3)擴展名匹配 .abc .jspxml
注意:url-pattern能夠使用servlet-name替代,也能夠混用對象
dispatcher:訪問的方式(瞭解)
REQUEST:默認值,表明直接訪問某個資源時執行filter
FORWARD:轉發時才執行filter
INCLUDE: 包含資源時執行filter
ERROR:發生錯誤時 進行跳轉是執行filter接口
總結Filter的做用?
1)公共代碼的提取
2)能夠對request和response中的方法進行加強(裝飾者模式/動態代理)
3)進行權限控制生命週期