攔截器filter
filter、
service裡的filter
1編寫java類實現filter介面,並實現其dofilter的方法
2在web.xml檔案中對編寫的filter類進行註冊,並設定它所能攔截的資源
註冊filter
<filter>
<filter-name>filter</filter-name>
<filter-class>web1.filter.filter.java</filter-class>
<init-param>設定初始化引數以鍵值對的形式給filter配置初始值
<param-name>username</param-name>
<param-value>xiaoming</param-value>
</init-param>
</filter>
設定攔截範圍
<filter-mapping
>
<filter-name>filter</filter-name>對映
<url-pattern>/*</url-pattern>攔截範圍對映地址
<dispatcher></dispatcher>指定攔截的請求型別 攔截請求轉發異常頁面等預設為request
<dispatcher></dispatcher>可設定多個
</filter-mapping>
生命週期filter的建立和銷燬有web伺服器控制
1伺服器啟動時,web伺服器船艦filter的例項物件,並呼叫其init方法,完成物件的初始化功能,filter物件只會建立一次,initial方法也只會執行一次
2攔截到請求時,,執行dofilter方法,可執行多次
3伺服器關閉時,web伺服器銷燬filter的例項物件,呼叫destroy進行銷燬
例項化filter物件>呼叫init的方法初始化>等待請求,一次請求呼叫一次dofilter對請求進行預處理對響應進行後處理>伺服器關閉後呼叫destroy進行銷燬
攔截器的啟動順序與對映的地址有關係<url-pattern>/*</url-pattern>
chain.doFilter(request, response);//這句話很關鍵,攔截器的請求鏈放行