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