jp.terasoluna.fw.web.thin
クラス BlockageControlFilter

java.lang.Object
  上位を拡張 jp.terasoluna.fw.web.thin.AbstractControlFilter<BlockageController>
      上位を拡張 jp.terasoluna.fw.web.thin.BlockageControlFilter
すべての実装されたインタフェース:
javax.servlet.Filter

public class BlockageControlFilter
extends AbstractControlFilter<BlockageController>

業務閉塞状態かどうかのチェックを行う。

このクラスではブラウザからのリクエストに対するフィルタ処理を、 Bean定義ファイルで指定された任意のBlockageControllerインスタンスを 呼び出し、 指定されたパスが業務閉塞状態かどうかのチェック処理を委譲する。

業務閉塞チェック機能

アクセスしたパスが業務閉塞状態だった場合は、 BlockageException をスローする。

使用方法

この機能を使用するにはデプロイメントディスクリプタ(web.xml)と Bean定義ファイルに以下のように設定する。このとき、Bean定義ファイルに 定義するid属性が、 sampleBlockageControllerである<bean>要素の class属性には、BlockageControllerインタフェースを 実装したクラスを設定する。
※注意として、このフィルタを用いる場合には、リクエストパスから業務が判別できるようになっていなければ ならない。

デプロイメントディスクリプタ(web.xml)
 <filter>
   <filter-name>
     blockageControlFilter]
   </filter-name>
   <filter-class>
       jp.terasoluna.fw.web.thin.BlockageControlFilter
   </filter-class>
   <init-param>
     <param-name>controller</param-name>
     <param-value>
       "sampleBlockageController"
     </param-value>
   </init-param>
 </filter>

 <filter-mapping>
   <filter-name>blockageControlFilter</filter-name>
   <url-pattern>/*</url-pattern>
 </filter-mapping>

 <error-page>
   <exception-type>
     jp.terasoluna.fw.web.thin.BlockageException
   </exception-type>
   <location>
     /blockageError.jsp
   </location>
 </error-page>
 
Bean定義ファイル
 <bean id="sampleBlockageController"
       class="jp.terasoluna…SampleBlockageController" />
 
なお、Bean定義ファイルに定義する<bean>要素のid属性をデフォルト値である "blockageController"に設定する場合には、 デプロイメントディスクリプタ(web.xml)内の<filter>要素から <init-param>要素を省略することができる。

関連項目:
AuthenticationControlFilter, AuthenticationController, AuthorizationControlFilter, AuthorizationController, BlockageController, ServerBlockageControlFilter, ServerBlockageController

フィールドの概要
static String BLOCKAGE_THRU_KEY
          リクエストがフィルタを通過したことを示すリクエスト属性のキー。
protected static BlockageController controller
          BlockageControllerインスタンス。
static String DEFAULT_BLOCKAGE_BEAN_ID
          DIコンテナからコントローラーの実装クラスを取得するための <bean>要素のid属性に使用されるデフォルトid。
 
クラス jp.terasoluna.fw.web.thin.AbstractControlFilter から継承されたフィールド
config
 
コンストラクタの概要
BlockageControlFilter()
           
 
メソッドの概要
 void doFilter(javax.servlet.ServletRequest req, javax.servlet.ServletResponse res, javax.servlet.FilterChain chain)
          業務閉塞チェックを行う。
static BlockageController getBlockageController()
          BlockageControllerインスタンスを戻す。
protected  Class getControllerClass()
          アクセス制御を行うクラスが実装すべきインタフェースを返す。
 String getDefaultControllerBeanId()
          DIコンテナからコントローラを取得する際のデフォルトのidを返す。
protected  String getErrorCode()
          コントローラの生成失敗を示すエラーコードを返す。
 void init(javax.servlet.FilterConfig config)
          フィルタがサービス開始状態になる際に、コンテナによって呼び出される。
 
クラス jp.terasoluna.fw.web.thin.AbstractControlFilter から継承されたメソッド
destroy, getController, setConfig
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

BLOCKAGE_THRU_KEY

public static final String BLOCKAGE_THRU_KEY
リクエストがフィルタを通過したことを示すリクエスト属性のキー。

関連項目:
定数フィールド値

DEFAULT_BLOCKAGE_BEAN_ID

public static final String DEFAULT_BLOCKAGE_BEAN_ID
DIコンテナからコントローラーの実装クラスを取得するための <bean>要素のid属性に使用されるデフォルトid。

関連項目:
定数フィールド値

controller

protected static BlockageController controller
BlockageControllerインスタンス。

コンストラクタの詳細

BlockageControlFilter

public BlockageControlFilter()
メソッドの詳細

getBlockageController

public static BlockageController getBlockageController()
BlockageControllerインスタンスを戻す。

戻り値:
このフィルタに設定されているBlockageControllerインスタンス

init

public void init(javax.servlet.FilterConfig config)
          throws javax.servlet.ServletException
フィルタがサービス開始状態になる際に、コンテナによって呼び出される。 コンテナは、Filterをインスタンス化した後に、initメソッドを 1 回だけ呼び出す。
Filterにフィルタ処理作業を実行するように要求するには、 init メソッドが正常に 終了していなければならない。 initメソッドが 次のいずれかの状態の場合、コンテナは Filterをサービス状態にできない。

定義:
インタフェース javax.servlet.Filter 内の init
オーバーライド:
クラス AbstractControlFilter<BlockageController> 内の init
パラメータ:
config - FilterConfigインスタンス。
例外:
javax.servlet.ServletException - 初期化異常時にスローされる例外。
関連項目:
Filter.init(javax.servlet.FilterConfig), AbstractControlFilter

doFilter

public void doFilter(javax.servlet.ServletRequest req,
                     javax.servlet.ServletResponse res,
                     javax.servlet.FilterChain chain)
              throws IOException,
                     javax.servlet.ServletException
業務閉塞チェックを行う。

定義:
インタフェース javax.servlet.Filter 内の doFilter
定義:
クラス AbstractControlFilter<BlockageController> 内の doFilter
パラメータ:
req - HTTPリクエスト
res - HTTPレスポンス
chain - フィルタチェーン
例外:
IOException - I/Oエラー
javax.servlet.ServletException - サーブレット例外
関連項目:
Filter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)

getControllerClass

protected Class getControllerClass()
アクセス制御を行うクラスが実装すべきインタフェースを返す。

定義:
クラス AbstractControlFilter<BlockageController> 内の getControllerClass
戻り値:
このフィルタで使用するコントローラのクラス

getErrorCode

protected String getErrorCode()
コントローラの生成失敗を示すエラーコードを返す。

定義:
クラス AbstractControlFilter<BlockageController> 内の getErrorCode
戻り値:
エラーコード

getDefaultControllerBeanId

public String getDefaultControllerBeanId()
DIコンテナからコントローラを取得する際のデフォルトのidを返す。

定義:
クラス AbstractControlFilter<BlockageController> 内の getDefaultControllerBeanId
戻り値:
デフォルトのid属性値


Copyright © 2012. All Rights Reserved.