public interface Filter
フィルターはリソース(サーブレットもしくは静的コンテンツ)へのリクエストやレスポンス、もしくはその両方をフィルタリングするタスクを処理するためのオブジェクトです。
フィルターはdoFilterメソッドによりフィルタリングを行います。
それぞれのフィルターはフィルタリングタスクのために必要なリソースをロードしたりするために、初期化パラメーターをもつFilterConfigオブジェクトや使用できるServletContextへの参照を持ちます。
フィルターはWebアプリケーションのデプロイメントディスクリプタにより構成されます。
以下のような用途のために使用できます。
| 修飾子とタイプ | メソッドと説明 |
|---|---|
default void |
destroy()
フィルターがサービスから取り除かれるときにサーブレットコンテナにより呼び出されます。
|
void |
doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
フィルターの
doFilterメソッドはチェーンの最後にあるリソースへのクライアントからの要求により、リクエスト/レスポンスのペアがチェーンを通過するたびにコンテナによって呼び出されます。 |
default void |
init(FilterConfig filterConfig)
フィルターがサービスに組み込まれるときにサーブレットコンテナにより呼び出されます。
|
default void init(FilterConfig filterConfig) throws ServletException
フィルターがサービスに組み込まれるときにサーブレットコンテナにより呼び出されます。
サーブレットコンテナはフィルターのインスタンスを生成した後にinitメソッドを一回だけ呼び出します。initメソッドはフィルタリング動作を行う前に正常に完了しなければいけません。
以下の場合にはサーブレットコンテナはフィルターを実行状態にすることができません。
filterConfig - フィルターの設定や初期化パラメーターが含まれるFilterConfigオブジェクトServletException - フィルターの通常の処理で例外が発生したvoid doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
doFilterメソッドはチェーンの最後にあるリソースへのクライアントからの要求により、リクエスト/レスポンスのペアがチェーンを通過するたびにコンテナによって呼び出されます。
このメソッドに渡されたFilterChainは、フィルターがチェーンの次のエンティティへリクエストとレスポンスを渡せるようにします。
このメソッドの典型的な実装は以下のようなものになるでしょう。
chain.doFilter())して次のエンティティをチェーン実行する、しないのどちらかを選択する。
request - クライアントのリクエストが含まれるServletRequestのオブジェクトresponse - フィルターのレスポンスが含まれるServletResponseのオブジェクトchain - the 次のフィルターやリソースの実行に使用されるFilterChainIOException - 処理中にI/O関係のエラーが発生したServletException - フィルターの通常の処理で例外が発生したUnavailableExceptiondefault void destroy()
フィルターがサービスから取り除かれるときにサーブレットコンテナにより呼び出されます。
このメソッドはすべてのスレッドでフィルターのdoFilterメソッドが終了したかタイムアウトした後に一度だけ呼び出されます。
サーブレットコンテナはこのメソッドを呼出した後に同じインスタンスでdoFilterメソッドを再度呼び出すことはありません。
このメソッドは保持されているすべてのリソース(メモリ、ファイルハンドル、スレッドなど)をクリーンアップする機会を与えます。 また、フィルターのメモリ上の状態とあらゆる永続状態が同期されるように注意してください。
Copyright © 1999-2017, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms. Portions Copyright © 1999-2002 The Apache Software Foundation. Portions Copyright © 2017- @megascus. Translated by @megascus.