1. 程式人生 > >攔截器filter

攔截器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);//這句話很關鍵,攔截器的請求鏈放行