Filter(過濾器)?和?interceptor(攔截器)的區別
1.攔截器是基于java反射機制的,而過濾器是基于函數回調的。
2.過濾器依賴于Servlet容器,而攔截器不依賴于Servlet容器。
3.攔截器只對Action請求起作用,而過濾器則可以對幾乎所有請求起作用。
4.攔截器可以訪問Action上下文、值棧里的對象,而過濾器不能。
5.在Action的生命周期中,攔截器可以多次調用,而過濾器只能在容器初始化時被調用一次。
???過濾器是在java?web中,你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數,然后再傳入servlet或者struts的?action進行業務邏輯,比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),或者在傳入servlet或者?struts的action前統一設置字符集,或者去除掉一些非法字符(聊天室經常用到的,一些罵人的話)。。。
攔截器?可通過的是符合條件的action。?攔截器本身是一個普通的Java對象,它能動態攔截Action調用,Action執行前后執行攔截器本身提供的各種個樣的Web項目需求。也可以阻止Action的執行,同時也可以提取Action中可以復用的部分。