<span style="font-size:18px;">1、攔截器是基于java反射機制的,而過濾器是基于函數回調的。
2、過濾器依賴與servlet容器,而攔截器不依賴與servlet容器。
3、攔截器隻能對Action請求起作用,而過濾器則可以對幾乎所有請求起作用。
4、攔截器可以通路Action上下文、值棧裡的對象,而過濾器不能。
5、在Action的生命周期中,攔截器可以多次調用,而過濾器隻能在容器初始化時被調用一次。
過濾器其主要特點在于:取你需要的東西,忽視那些不需要的東西!在程式中,你希望選擇中篇文章中的所有數字,你就可以針對性的挑選數字!
攔截器其主要特點在于:針對你不要的東西進行攔截,比如說,在一個BBS裡面你希望人家不要留“小烏鴉”的這個詞,那你就可能采用攔截器!
監聽器!
是一個事件處理過程,這個過程的取舍,可以讓你的代碼成為過濾器,還是成為攔截器~~~
比如,你想監聽一段使用者的資料中有沒有1有的話就列印111!這就需要程式都監聽使用者輸入的東西了!
if(***..equls('1')){ //列印111 }像這個就是去過濾其它的東西。。。。。
當然如果你把它當作一個攔截器看也可以,就是隻要出現了1,你裡面執行的正是反的東西,比如你輸的資料中不能包含1。。。等等。
過濾器和攔截器,其實兩者沒有什麼差別,最大的一點就是,過濾!是一個正面的東西,而攔截是一個反面的東西!過濾留下你想要的東西,攔截,針對你不需要的東西進行</span>