攔截器心得
阿新 • • 發佈:2018-07-15
java 變量 相同 心得 實現 部分 處理 plugin int
1.攔截器與過濾器的區別
相同點:攔截器其實也是一種過濾器,都用於對請求和響應做攔截進行額外的處理.
不同點:攔截器主要是通過過濾器來調用的,功能實現主要放在攔截器中,而過濾器主要是用來調用攔截器.而且過濾器屬於java web中的概念範疇,而攔截器只有在struts2框架中采用這一概念
2.struts-default.xml
在struts2的源碼包中有struts-default.xml的配置文件,文件中的package標簽下有interceptors,在interceptors下有interceptor標簽,用於定義攔截器,還有interceptor-stack用於引用部分定義的攔截器形成攔截器棧,而在interceptors同級的標簽還有default-interceptor-stack用於定義默認的攔截器棧,而攔截器棧的執行順序是從上到下依次執行定義的攔截器的,之所以我們自己編寫的struts.xml都要繼承struts.xml正是為了繼承struts框架給我們定義好的攔截器棧,如不繼承,其實攔截器將不起作用。
3.核心過濾器
在web.xml中,我們為了應用struts2還會配置struts2的核心過濾器類,這個過濾器類中有一個定義了struts-default.xml,struts-plugins.xml,struts.xml的靜態變量,主要用於啟動時加載的文件及其順序,因此我們的struts.xml是繼承自struts-default.xml,當struts.xml加載時就已經加載好了struts-default.xml.
攔截器心得