|
Mergedoc Translation |
||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface Filter
Filter は、リソース (Servlet または静的なコンテンツ) へのリクエストもしくはリソースからのレスポンス、あるいはその両方をフィルタリングするタスクを処理するオブジェクトです。
Filter は、doFilter
メソッドによりフィルタリングを行います。それぞれの Filter は、FilterConfig オブジェクトへアクセスできます。
FilterConfig オブジェクトは、Filter の初期化パラメータや、フィルタリングタスクで必要とされるリソースをロードするためなどに利用可能な ServletContext への参照を保持しています。
Filter は、Web アプリケーションの配備記述子において構成されます。
以下のような用途に利用できます。
1) 認証フィルタ
2) ログと監査フィルタ
3) イメージ変換フィルタ
4) データ圧縮フィルタ
5) 暗号化フィルタ
6) トークン分割(Tokenizing)フィルタ
7) リソースアクセスイベントのトリガとなるフィルタ
8) XSL/T フィルタ
9) Mime-type チェーンフィルタ
メソッドの概要 | |
---|---|
void |
destroy()
サービス状態を終えた事を Filter に伝えるために Web コンテナが呼び出します。 |
void |
doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
Filter クラスの doFilter メソッドはコンテナにより呼び出され、最後のチェーンにおけるリソースへのクライアントリクエストのために、
毎回リクエストレスポンスのペアが、チェーンを通して渡されます。 |
void |
init(FilterConfig filterConfig)
Web コンテナは、Filter をサービス状態にするために init メソッドを呼び出します。 |
メソッドの詳細 |
---|
void init(FilterConfig filterConfig) throws ServletException
ServletException
void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException
doFilter
メソッドはコンテナにより呼び出され、最後のチェーンにおけるリソースへのクライアントリクエストのために、
毎回リクエストレスポンスのペアが、チェーンを通して渡されます。
このメソッドに渡される FilterChain を利用して、Filter がリクエストやレスポンスをチェーン内の次のエンティティ (Filter) にリクエストとレスポンスを渡す事ができます。
このメソッドの典型的な実装は以下のようなパターンとなるでしょう。
1. リクエストの検査
2. オプションとして、入力フィルタリング用にコンテンツもしくはヘッダをフィルタリングするためにカスタム実装によるリクエストオブジェクトのラップ
3. オプションとして、出力フィルタリング用にコンテンツもしくはヘッダをフィルタリングするためにカスタム実装によるレスポンスオブジェクトラップ
4. 以下の a)、b) の どちらか
a) FileterChain オブジェクト(chain.doFilter()
) を利用してチェーンの次のエンティティを呼び出す
b) リクエスト処理を止めるために、リクエストレスポンスのペアをフィルタチェーンの次のエンティティに渡さない
5. フィルタチェーンの次のエンティティの呼び出した後、直接レスポンスのヘッダをセット
java.io.IOException
ServletException
void destroy()
|
Mergedoc Translation |
||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |