2012-03-21 75 views

回答

10

A Filter攔截與其URL模式匹配的HTTP請求,並允許您修改它們。也其javadoc參見:

過濾器是在任一請求到資源(servlet或靜態內容)執行濾波任務的對象,或者在從一個資源,或兩者的響應。

過濾器在doFilter方法中執行過濾。每個Filter都可以訪問FilterConfig對象,通過該對象可以獲取其初始化參數,以及對其可用於加載過濾任務所需資源的ServletContext的引用。

過濾器是在Web應用程序的部署描述符中配置的。已發現此設計

實例是:

  • 認證過濾器
  • 日誌記錄和審計過濾器
  • 圖像轉換過濾器
  • 數據壓縮過濾器
  • 加密過濾器
  • 標記化過濾器
  • 個過濾器觸發的資源訪問事件
  • XSL/T過濾
  • MIME類型鏈過濾

上的web應用的啓動和關閉ServletContextListener攔截,並允許您在啓動時執行一些代碼和/或關掉。另見javadoc

用於接收有關ServletContext生命週期變化的通知事件的接口。

爲了接收這些通知事件,實現類必須是在Web應用程序的部署描述符,以WebListener註釋,或通過對ServletContext定義的addListener方法之一註冊。此接口的

實現在其中它們已被聲明的順序其contextInitialized(javax.servlet.ServletContextEvent)方法被調用,並且在以相反的順序其contextDestroyed(javax.servlet.ServletContextEvent)方法。

何時使用這一個或另一個現在應該是顯而易見的。如果您想要攔截HTTP請求以製作特定的URL模式,請使用Filter,因爲您要檢查/修改HTTP請求/響應。如果您想攔截webapp的啓動和/或關機,請使用ServletContextListener

請知道在哪裏可以找到javadocs以及如何解釋它們。它們包含所有這些小問題的答案。

+0

您提供了比java文檔中更多有用的信息。那謝謝啦。 – BestPractices 2012-03-22 01:58:07