E
- コントローラクラスを指定する。public abstract class AbstractControlFilter<E> extends Object implements javax.servlet.Filter
このクラスは、DIコンテナから取得したbeanを用いてアクセス制御を行うクラスの
上位クラスである。
このクラスの実装クラスを使用するには デプロイメントディスクリプタ(web.xml)
とBean定義ファイルに以下のように設定する。
このとき、Bean定義ファイルに定義するid属性が、
sampleXxxControllerである<bean>要素の
class属性には、各フィルタが指定するインタフェース(ここではxxxController)を
実装したクラス(ここではSampleXxxController)を設定する。
※Xxxは各機能を提供するFilterによって変わる。
<filter>
<filter-name>
xxxControlFilter
</filter-name>
<filter-class>
jp.terasoluna.sample.XxxControlFilter
</filter-class>
<init-param>
<param-name>controller</param-name>
<param-value>
"sampleXxxController"
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>xxxControlFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<error-page>
<exception-type>
jp.terasoluna.sample.XxxException
</exception-type>
<location>/XxxError.jsp</location>
</error-page>
Bean定義ファイル
<bean id="sampleXxxController"
class="jp.terasoluna…SampleXxxController" />
なお、フィルタによっては、Bean定義ファイルに定義する<bean>要素の id属性にデフォルト値を用意している。 その場合は、デプロイメントディスクリプタ(web.xml)内の<filter>要素から <init-param>要素を省略することができる。
修飾子とタイプ | フィールドと説明 |
---|---|
protected javax.servlet.FilterConfig |
config
フィルタ設定情報。
|
コンストラクタと説明 |
---|
AbstractControlFilter() |
修飾子とタイプ | メソッドと説明 |
---|---|
void |
destroy()
フィルタ処理時に呼び出される。
|
abstract void |
doFilter(javax.servlet.ServletRequest req,
javax.servlet.ServletResponse res,
javax.servlet.FilterChain chain)
アクセス制御を行う。
|
protected E |
getController()
DIコンテナからコントローラインスタンスを取得してくる。
|
protected abstract Class |
getControllerClass()
アクセス制御を行うクラスが実装すべきインタフェースを返す。
|
abstract String |
getDefaultControllerBeanId()
DIコンテナからコントローラを取得する際のデフォルトのidを返す。
|
protected abstract String |
getErrorCode()
コントローラの生成失敗を示すエラーコードを返す。
|
void |
init(javax.servlet.FilterConfig config)
フィルタがサービス開始状態になる際に、コンテナによって呼び出される。
|
protected void |
setConfig(javax.servlet.FilterConfig config)
フィルタ設定情報を設定する。
|
public void init(javax.servlet.FilterConfig config) throws javax.servlet.ServletException
init
インタフェース内 javax.servlet.Filter
config
- FilterConfigインスタンス。javax.servlet.ServletException
- 初期化異常時にスローされる例外。Filter.init(javax.servlet.FilterConfig)
protected void setConfig(javax.servlet.FilterConfig config)
config
- フィルタ設定情報protected E getController()
protected abstract Class getControllerClass()
protected abstract String getErrorCode()
public abstract String getDefaultControllerBeanId()
public abstract void doFilter(javax.servlet.ServletRequest req, javax.servlet.ServletResponse res, javax.servlet.FilterChain chain) throws IOException, javax.servlet.ServletException
doFilter
インタフェース内 javax.servlet.Filter
req
- HTTPリクエストres
- HTTPレスポンスchain
- フィルタチェーンIOException
- I/Oエラーjavax.servlet.ServletException
- サーブレット例外Filter.doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse,
javax.servlet.FilterChain)
public void destroy()
destroy
インタフェース内 javax.servlet.Filter
Filter.destroy()
Copyright © 2014. All Rights Reserved.