jp.morpho.webapp.servlet
クラス AbstractFilter

java.lang.Object
  |
  +--jp.morpho.webapp.servlet.AbstractFilter
すべての実装インタフェース:
javax.servlet.Filter
直系の既知のサブクラス:
CharacterEncodingFilter, FormDataParseFilter

public abstract class AbstractFilter
extends java.lang.Object
implements javax.servlet.Filter

このクラスは、Filter インタフェースのスケルトン実装を提供し、このインタフェースを実装するのに必要な作業量を最小限に抑えます。 Filter は、リソース (サーブレット、静的コンテンツ) の要求、リソースからの応答、またはその両方に対してフィルタリング作業を実行するオブジェクトです。

Filter は、doFilter メソッドにおいてフィルタリングを実行します。すべての Filter は FilterConfig オブジェクトへアクセスでき、このオブジェクトから、初期化パラメータと、フィルタリングに必要なリソースのロードなどに使用できる ServletContext への参照を取得することができます。

Filter は、Web アプリケーションの配備記述子内で設定されます。

Filter の例には、次のものがあります。
1) 認証フィルタ
2) ログおよび監査のフィルタ
3) イメージ変換フィルタ
4) データ圧縮フィルタ
5) 暗号化フィルタ
6) トークン化フィルタ
7) リソースへのアクセスイベントを発生させるフィルタ
8) XSL/T フィルタ
9) MiME タイプチェ−ンフィルタ

作成者:
Kumiko Hiroi

コンストラクタの概要
AbstractFilter()
           AbstractFilter を構築します。
 
メソッドの概要
 void destroy()
           フィルタがサービス状態を終える際に、Web コンテナによって呼び出されます。
 void doFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain)
           Filter の doFilter メソッドは、チェーンの終端にあるリソースをクライアントが要求することをきっかけとして、要求と応答のペアがチェ−ンに沿って渡されていくごとに、コンテナに呼び出されます。
 java.util.Map getInitParameterMap()
           すべての初期化パラメータのマッピングが格納された Map を返します。
 javax.servlet.ServletContext getServletContext()
           呼び出し元が現在実行している ServletContext への参照を返します。
 void init(javax.servlet.FilterConfig filterConfig)
           フィルタがサービス開始状態になる際に、Web コンテナによって呼び出されます。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

AbstractFilter

public AbstractFilter()

AbstractFilter を構築します。

メソッドの詳細

init

public void init(javax.servlet.FilterConfig filterConfig)
          throws javax.servlet.ServletException

フィルタがサービス開始状態になる際に、Web コンテナによって呼び出されます。 サーブレットコンテナは、フィルタをインスタンス化した後に、init メソッドを 1 回だけ呼び出します。 フィルタにフィルタリング作業を実行するように要求するには、init メソッドが正常に終了していなければなりません。

このメソッドは、すべての初期化パラメータを取得するように実装されています。 取得された初期化パラメータは、getInitParameterMap() メソッドで Map として取得できます。 このメソッドをオーバーライドする場合は、super.init(filterConfig) を呼び出してください。

init メソッドが次のいずれかの状態の場合、Web コンテナはフィルタをサービス状態にできません。
1.ServletException をスローした
2.Web コンテナによって定義された時間内に、復帰しない

定義:
インタフェース javax.servlet.Filter 内の init
パラメータ:
filterConfig - サーブレットコンテナによって使用されるフィルタ設定のためのオブジェクト
例外:
javax.servlet.ServletException - フィルタを初期化できなかった場合
関連項目:
Filter.init(FilterConfig)

doFilter

public void doFilter(javax.servlet.ServletRequest request,
                     javax.servlet.ServletResponse response,
                     javax.servlet.FilterChain chain)
              throws java.io.IOException,
                     javax.servlet.ServletException

Filter の doFilter メソッドは、チェーンの終端にあるリソースをクライアントが要求することをきっかけとして、要求と応答のペアがチェ−ンに沿って渡されていくごとに、コンテナに呼び出されます。 このメソッドへ渡される FilterChain によって、Filter は要求と応答をチェ−ン内の次のエンティティに渡すことができます。

Filter の doFilter メソッドは、チェーンの終端にあるリソースをクライアントが要求することをきっかけとして、要求と応答のペアがチェ−ンに沿って渡されていくごとに、コンテナに呼び出されます。このメソッドへ渡される FilterChain によって、Filter は要求と応答をチェ−ン内の次のエンティティに渡すことができます。

このメソッドの典型的な実装は、次のように行われます。
1. 要求を検査する
2. オプションとして、入力フィルタリング用にコンテンツまたはヘッダをフィルタリングするカスタム実装により、要求オブジェクトをラップする
3. オプションとして、出力フィルタリング用にコンテンツまたはヘッダをフィルタリングするカスタム実装により、応答オブジェクトをラップする
4. a) FilterChain オブジェクトを使用してチェーン内の次のエンティティを呼び出す (chain.doFilter())
4. b) または、要求に対する処理を打ち切るため、フィルタチェーン内の次のエンティティに要求と応答のペアを渡さない
5. フィルタチェーン内の次のエンティティを呼び出した後に、応答に対してヘッダを直接設定する

このメソッドは空の定義をしています。 必要でならば AbstractFilter クラスのサブクラス化によって、このメソッドを実装できます。

定義:
インタフェース javax.servlet.Filter 内の doFilter
パラメータ:
request - クライアントがサーブレットに行う要求を含む ServletRequest オブジェクト
response - サーブレットがクライアントに送信する応答を含む ServletResponse オブジェクト
chain - フィルタチェーン
例外:
java.io.IOException - フィルタが要求を処理するときに、入出力エラーが検出された場合
javax.servlet.ServletException - 要求を処理できなかった場合
関連項目:
Filter.doFilter(ServletRequest, ServletResponse, FilterChain)

destroy

public void destroy()

フィルタがサービス状態を終える際に、Web コンテナによって呼び出されます。 フィルタの doFilter メソッド内のすべてのスレッドが終了した後、またはタイムアウト期間が過ぎた後にのみ、このメソッドは呼び出されます。 このメソッドを呼び出した後は、Web コンテナはフィルタのこのインスタンスに対し doFilter を二度と呼び出すことはありません。

このメソッドは、メモリ、ファイルハンドラ、スレッドなどの保持されているリソースを解放する機会、およびすべての持続的状態と、メモリ内のフィルタの現在の状態との同期を取るための機会を提供します。

このメソッドは空の定義をしています。 必要でならば AbstractFilter クラスのサブクラス化によって、このメソッドを実装できます。

定義:
インタフェース javax.servlet.Filter 内の destroy
関連項目:
Filter.destroy()

getInitParameterMap

public java.util.Map getInitParameterMap()

すべての初期化パラメータのマッピングが格納された Map を返します。 パラメータが存在しない場合は、空の Map を返します。

返される Map の実装は、ConversionMap です。

戻り値:
すべての初期化パラメータのマッピングが格納された Map

getServletContext

public javax.servlet.ServletContext getServletContext()

呼び出し元が現在実行している ServletContext への参照を返します。

戻り値:
呼び出し元がサーブレットコンテナとの対話のために使用している ServletContext オブジェクト