答えて
Filter
URLパターンに一致するHTTP要求を傍受し、それらを変更できます。また、そのjavadoc参照:
フィルタは、リソース(サーブレットまたは静的なコンテンツ)へのリクエストのいずれかにフィルタリングタスクを実行する目的で、またはリソース、あるいはその両方からの応答に。
フィルタは、
doFilter
メソッドでフィルタリングを実行します。すべてFilter
は、その初期化パラメータを得ることができるFilterConfig
オブジェクトにアクセスし、例えば、フィルタリングタスクに必要なリソースをロードするために使用できるServletContext
への参照を持ちます。フィルタは、Webアプリケーションのデプロイメント記述子で設定されます。この設計のために確認されている
例は以下のとおりです。
- 認証フィルタ
- ロギングおよび監査フィルタ
- 画像変換フィルタ
- データ圧縮フィルタ
- 暗号化フィルタ
- トークン化フィルタ
- のリソースアクセスイベント
- XSL/Tフィルタ
- MIMEタイプチェーンフィルター
Webアプリケーションの起動とシャットダウンにServletContextListener
インターセプトをトリガして、起動時にいくつかのコードを実行できるようにするフィルタおよび/またはシャットダウン。そのjavadoc:
ServletContext
ライフサイクルの変更に関する通知イベントを受信するためのインターフェイス。これらの通知イベントを受信するためには、実装クラスのいずれか、Webアプリケーションの配備記述子で宣言する必要があります
WebListener
で注釈を付け、またはServletContext
に定義されたaddListener
の方法のいずれかを経由して登録。このインターフェイスの実装は、宣言されている順番で、および逆順で
contextDestroyed(javax.servlet.ServletContextEvent)
メソッドで呼び出されます(contextInitialized(javax.servlet.ServletContextEvent)
メソッドで宣言されています)。
いつどちらか一方を使用するのは明らかです。 HTTP要求/応答を確認または変更するために、特定のURLパターンを処理するHTTP要求を代行受信する場合は、Filter
を使用します。 Webアプリケーションの起動および/またはシャットダウンをインターセプトする場合は、ServletContextListener
を使用します。
javadocsの場所とその解釈方法を理解してください。彼らはこの種の些細な質問に対するすべての答えを含んでいます。
あなたは、javaドキュメントにあるより多くの有用な情報を提供しました。ほんとありがと。 – BestPractices