一、概覽
二、區別
- 攔截器是基於java的反射機制的,而過濾器是基於函數回調。
- 攔截器不依賴與servlet容器,是spring容器的,是spring支持的,過濾器依賴與servlet容器。
- 攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。
- 攔截器可以獲取IOC容器中的各個bean,而過濾器就不行,這點很重要,在攔截器裏注入一個service,可以調用業務邏輯。
- 攔截器可以訪問action上下文、值棧裏的對象,而過濾器不能訪問。
- 在action的生命週期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次。