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 次のフィルターやリソースの実行に使用されるFilterChain
IOException
- 処理中にI/O関係のエラーが発生したServletException
- フィルターの通常の処理で例外が発生したUnavailableException
default 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.