完成安全檢查
重新格式化請求首部或體
建立請求審計或日志
壓縮響應流
追加或修改響應流
創建一個完全不同的響應
注意不能把過濾器的順序依賴性硬編碼進程序中,它應該由DD控制。
過濾器很像Servlet 1 容器知道過濾器的API一個普通java類實現了Filter接口后,這個Java會發生巨大的變化,成為一個正是的J2EE過濾器。 2 容器管理過濾器的生命周期
類似與Servlet過濾器也有init和destory方法。對應于Servlet的doGet/doPost方法,過濾器則有一個doFilter方法。 3 都在DD中聲明
Web應用可有多個過濾器,一個給定的請求可能導致執行多個過濾器。針對請求要運行那些過濾器,以及運行的順序如何,都可以在DD中聲明。
過濾器生命周期每個過濾器必須實現的Filter接口中的3個方法:init、doFilter、destory。
聲明和確定過濾器順序
在DD中配置過濾器:
REQUEST表示:對客戶端請求啟用過濾器。
INDLUDE表示:對由一個include()調用分派來的請求啟用過濾器。
RORWARD表示:對由一個forward()調用分派來的請求啟用過濾器。
ERROR表示:對錯誤處理器調用的資源啟用過濾器。 確定過濾器順序的規則:
1、先找到與URL模式匹配的所有過濾器。
2、將所有匹配的過濾器按照其在DD中聲明的順序組成一個鏈。
新聞熱點
疑難解答