public interface Filterフィルターは、リソース(サーブレットまたは静的コンテンツ)へのリクエスト、リソースからのレスポンス、その両方でフィルタリングタスクを実行するオブジェクトです。
フィルターは、doFilter メソッドでフィルタリングを実行します。すべてのフィルターは、初期化パラメーターを取得できる FilterConfig オブジェクトへのアクセスと、タスクのフィルタリングに必要なリソースのロードなどに使用できる ServletContext への参照を持っています。
フィルターは、Web アプリケーションのデプロイ記述子で構成されます。
この設計で特定された例は次のとおりです。
| 修飾子と型 | メソッドと説明 |
|---|---|
default void | destroy()Web コンテナーによって呼び出され、サービスが停止されていることをフィルターに示します。 |
void | doFilter(ServletRequest request, ServletResponse response, FilterChain chain)Filter の doFilter メソッドは、チェーンの終わりにあるリソースに対するクライアントリクエストのために、リクエスト / レスポンスペアがチェーンを通過するたびにコンテナーによって呼び出されます。 |
default void | init(FilterConfig filterConfig)Web コンテナーによって呼び出され、サービスに配置されていることをフィルターに示します。 |
default void init(FilterConfig filterConfig) throws ServletException
Web コンテナーによって呼び出され、サービスに配置されていることをフィルターに示します。
サーブレットコンテナーは、フィルターをインスタンス化した後、init メソッドを 1 回だけ呼び出します。init メソッドは、フィルターがフィルター処理を行うように要求される前に正常に完了する必要があります。
init メソッドが次のいずれかの場合、Web コンテナーはフィルターをサービスに配置できません。
filterConfig - フィルターの構成および初期化パラメーターを含む FilterConfig オブジェクト ServletException - フィルターの通常の操作を妨げる例外が発生した場合 void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOExceptionSE, ServletException
doFilter メソッドは、チェーンの終わりにあるリソースに対するクライアントリクエストのために、リクエスト / レスポンスペアがチェーンを通過するたびにコンテナーによって呼び出されます。このメソッドに渡された FilterChain により、フィルターはチェーンの次のエンティティにリクエストとレスポンスを渡すことができます。このメソッドの典型的な実装は、次のパターンに従います。
chain.doFilter())を使用してチェーンの次のエンティティを呼び出すかrequest - ServletRequest オブジェクトにはクライアントのリクエストが含まれます response - ServletResponse オブジェクトにはフィルターのレスポンスが含まれます chain - 次のフィルターまたはリソースを呼び出すための FilterChain IOExceptionSE - 処理中に I/O 関連のエラーが発生した場合 ServletException - フィルターの通常の操作を妨げる例外が発生した場合 UnavailableExceptiondefault void destroy()
Web コンテナーによって呼び出され、サービスが停止されていることをフィルターに示します。
このメソッドは、フィルターの doFilter メソッド内のすべてのスレッドが終了した後、またはタイムアウト期間が経過した後にのみ呼び出されます。Web コンテナーがこのメソッドを呼び出した後は、フィルターのこのインスタンスで doFilter メソッドを再度呼び出すことはありません。
このメソッドは、フィルターが保持されているリソース(メモリ、ファイルハンドル、スレッドなど)をクリーンアップし、永続状態がメモリ内のフィルターの現在の状態と同期することを確認する機会を提供します。
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.