1. 程式人生 > >一些java知識的碎碎念 -- 不斷補充

一些java知識的碎碎念 -- 不斷補充

攔截器和過濾器 : 

1 、攔截器是基於java的反射和動態代理,而過濾器是基於函式回撥。

2 、攔截器不依賴與servlet容器,過濾器依賴與servlet容器。

3 、攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。

4 、攔截器可以訪問action上下文、值棧裡的物件,而過濾器不能訪問。

5 、在action的生命週期中,攔截器可以多次被呼叫,而過濾器只能在容器初始化時被呼叫一次。

上面是查到的資料,而且好像都這麼說。 

  我個人的感覺,攔截器和過濾器在作用上沒有什麼本質上的區別,都是為了攔截一些請求。 過濾器是基礎級存在,一般有servlet,就存在過濾器。 攔截器是我們自己實現,屬於框架級別的操作。  攔截器最經典的應該是struts,現在應該是spring aop實現的。 至於執行順序, ruby中有一段很好的描述,就是 子彈穿過洋蔥