Filter和攔截器

 攔截器: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處理-攔截後-過濾後。

相關文章
相關標籤/搜索