攔截器:java
在Struts2中出現的概念。架構
Struts2與Struts1相比,去掉了不少概念:ForwardAction,ActionMapping,ActionForm,Action的繼承也變的無關緊要(若是不聲明攔截器等Struts2中特有的東西)。app
可是去掉了,不表明沒有,只是在使用的時候,不會看到這些類的存在。如果你細細對比,在Struts2中你會找到他們的身影的。函數
可是Struts2多了攔截器的概念,這個概念相似於Filter,Struts2的架構其實就是基於攔截器的。spa
在Struts2中,還有一個概念:攔截器鏈(interceptor-stack)。有關於上次文件的、多選、靜態參數、國際化等等好多個默認攔截器,固然也能夠本身手動寫攔截器。orm
Filter和攔截器有什麼區別和聯繫?對象
兩者都是運用了AOP的思想,都讓系統變的可配置。繼承
1.攔截器是基於java的反射機制,而過濾器是基於函數毀掉。資源
2.攔截器不依賴servlet容器,過濾器依賴於servlet容器。servlet
3.攔截器只能對action起做用,而過濾器能夠對幾乎全部的請求起做用(能夠保護資源)
4.攔截器能夠訪問action上下文,、堆棧裏面的對象,而過濾器不能夠。
執行順序:過濾前-攔截錢-Action處理-攔截後-過濾後。