當使用多個filter時,這些filter將形成乙個filter鏈,web伺服器在例項化filter物件時,會將此filter鏈傳遞給dofilter的filterchain引數。當乙個filter執行dofilter方法時,在此方法中執行filterchain引數的dofilter方法,將會執行下乙個filter(filter鏈下乙個還是filter時)或者訪問web資源(filter鏈中沒有filter了),如圖所示:
下面是在web.xml中配置多個filter,通過程式來演示各個filter的其執行先後順序。
filterutils
cn.itcast.utils.filterutils
/*request
encodefilter
cn.itcast.utils.encodefilter
encoding
utf-8
/*request
filterjsp
cn.itcast.utils.filterjsp
/*request
三個filter
public class filterutils implements filter
@override
public void dofilter(servletrequest req, servletresponse resp,
filterchain chain) throws ioexception, servletexception
@override
public void init(filterconfig config) throws servletexception }
public class encodefilter implements filter
@override
public void dofilter(servletrequest req, servletresponse resp,
filterchain chain) throws ioexception, servletexception
@override
public void init(filterconfig filterconfig) throws servletexception }
public class filterjsp implements filter
@override
public void dofilter(servletrequest req, servletresponse resp,
filterchain chain) throws ioexception, servletexception
@override
public void init(filterconfig config) throws servletexception
system.out.println("filterjsp init...."); }
}
//初始化結果:
filterutils init…
encodefilter init…
filterjsp init…
//訪問web資源時的結果
filterutils start…
encodefilter start…
filterjsp start…
你好中國
filterjsp end…
encodefilter end…
filterutils end…
//web伺服器關閉時結果:
filterutils destory…
encodefilter destroy…
filterjsp destory…
filter執行先後問題 Filter執行順序
asp.net mvc framework支援四種不同型別的filter authorization filters 實現iauthorizationfilter介面的屬性.action filters 實現iactionfilter介面的屬性.result filters 實現iresultfil...
filter的簡單認識
filter 把傳入的函式依次作用於每個元素,然後根據返回值是 true還 是false決定保留還是丟棄該元素。注意到filter 函式返回的是乙個iterator,也就是乙個惰性序列,所以要強迫filter 完成計算結果,需要用list 函式獲得所有結果並返回list。下面 是為了實現回數的判斷和...
filter 的各種值
之前只用過filter的opacity,竟然不知道filter還有很多的值,可以在我們的專案中設定使用。下面將會使用 屬性值的方式介紹filter。1.none。預設值,沒有效果。2.blur。給影象設定高斯模糊。radius 一值設定高斯函式的標準差,或者是螢幕上以多少畫素融在一起,所以值越大越模...