easyaction
クラス Action

java.lang.Object
  上位を拡張 easyaction.Action

public abstract class Action
extends java.lang.Object

ブラウザからのリクエストを受け付けるActionクラスを実装するための抽象クラスです。 各Actionクラスはこのクラスをextendsする必要があります。 このクラスをextendsしたものはすべてスレッドセーフです。


フィールドの概要
private  java.lang.StringBuffer _errorMessage
          エラーメッセージ格納オブジェクト
private  javax.servlet.http.HttpServlet _servlet
          このActionに関連づけられているコントローラServletです。
 
コンストラクタの概要
Action()
           
 
メソッドの概要
abstract  java.lang.String execute(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          ブラウザからのリクエスト処理を受け付けます。
 boolean existErrorMessage()
          エラーメッセージが格納されているかどうか調べます。
 java.lang.String getErrorMessage()
          全てのエラーメッセージを取得します。
 java.lang.String getParameter(javax.servlet.http.HttpServletRequest request, java.lang.String parameter)
          リクエストパラメータを取得します。
 javax.servlet.http.HttpServlet getServlet()
          このActionに関連づけられているコントローラServlet(ActionServlet)のインスタンスを返します。
 boolean isTokenValid(javax.servlet.http.HttpServletRequest request)
          transactionTokenが有効かどうか調べます。
 boolean isTokenValid(javax.servlet.http.HttpServletRequest request, boolean reset)
          transactionTokenが有効かどうか調べます。
 void resetToken(javax.servlet.http.HttpServletRequest request)
          sessionのtransactionTokenを削除します。
 java.lang.String sanitize(java.lang.String value)
          サニタイズします。
 void saveToken(javax.servlet.http.HttpServletRequest request)
          ユニークな文字列(transactionToken)を生成し,sessionスコープに格納します。
 void setErrorMessage(java.lang.String errorMessage)
          エラーメッセージを格納します。
 void setServlet(javax.servlet.http.HttpServlet servlet)
          このActionに関連づけられているコントローラServlet(ActionServlet)のインスタンスを設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

_servlet

private javax.servlet.http.HttpServlet _servlet
このActionに関連づけられているコントローラServletです。 つまり,ブラウザからの唯一の受付窓口サーブレットであるActionServletです。


_errorMessage

private java.lang.StringBuffer _errorMessage
エラーメッセージ格納オブジェクト

コンストラクタの詳細

Action

public Action()
メソッドの詳細

setServlet

public void setServlet(javax.servlet.http.HttpServlet servlet)
このActionに関連づけられているコントローラServlet(ActionServlet)のインスタンスを設定します。

パラメータ:
servlet - サーブレット

getServlet

public javax.servlet.http.HttpServlet getServlet()
このActionに関連づけられているコントローラServlet(ActionServlet)のインスタンスを返します。 サーブレットのいろいろなメソッドを利用するときに呼び出します。例えば,getInitParameterや getSrevletContextを利用したい場合は
 String param = getServlet().getInitParameter("paramName");
 ServletContext sc = getServlet().getServletContext();
 
などとします。

戻り値:
このActionに関連づけられているコントローラServlet(ActionServlet)のインスタンス

execute

public abstract java.lang.String execute(javax.servlet.http.HttpServletRequest request,
                                         javax.servlet.http.HttpServletResponse response)
                                  throws java.io.IOException,
                                         javax.servlet.ServletException
ブラウザからのリクエスト処理を受け付けます。基本的に,HttpServletのdoGetやdoPostと同じです。 strutsと違い,戻り値には,次ページのアドレスを直接記入します。

パラメータ:
request - リクエスト
response - レスポンス
戻り値:
次ページのアドレス(例 /next.jsp ) / が必要ですので注意してください。
例外:
java.io.IOException
javax.servlet.ServletException

saveToken

public void saveToken(javax.servlet.http.HttpServletRequest request)
ユニークな文字列(transactionToken)を生成し,sessionスコープに格納します。 また,jsp側にもreauestスコープとして送られます。 基本的に,strutsのsaveTokenと同じでが,この文字列を受け取ったjspの方で,
[リクエスト先アドレス]?transactionToken=${requestScope.transactionToken}
のように,受け取ったtransactionTokenをそのままサーブレット(Action)側へ戻してやる必要があります。

パラメータ:
request - リクエスト

isTokenValid

public boolean isTokenValid(javax.servlet.http.HttpServletRequest request,
                            boolean reset)
transactionTokenが有効かどうか調べます。第2引数をtrueに設定すると判定後,sessionのtransactionTokenは 削除されます。基本的に,strutsのisTokenValidと同じです。つまり,戻り値がtrueのとき正しいフロー, falseのとき不正なフローを意味します。

パラメータ:
request - リクエスト
reset - 判定後にsessionのtransactionTokenを削除するかどうかのフラグ。trueで削除,falseで何もしない
戻り値:
有効のときtrue,無効のときfalse

isTokenValid

public boolean isTokenValid(javax.servlet.http.HttpServletRequest request)
transactionTokenが有効かどうか調べます。isTokenValid(HttpServletRequest request, boolean reset) のresetにfalseを渡した場合と同じです。つまり判定後,sessionのtransactionTokenは削除しません。 基本的に,strutsのisTokenValidと同じです。戻り値がtrueのとき正しいフロー, falseのとき不正なフローを意味します。

パラメータ:
request - リクエスト
戻り値:
有効のときtrue,無効のときfalse

resetToken

public void resetToken(javax.servlet.http.HttpServletRequest request)
sessionのtransactionTokenを削除します。基本的に,strutsのresetTokenと同じです。

パラメータ:
request - リクエスト

setErrorMessage

public void setErrorMessage(java.lang.String errorMessage)
エラーメッセージを格納します。

パラメータ:
errorMessage - エラーメッセージ

getErrorMessage

public java.lang.String getErrorMessage()
全てのエラーメッセージを取得します。

パラメータ:
servlet - エラーメッセージ

existErrorMessage

public boolean existErrorMessage()
エラーメッセージが格納されているかどうか調べます。

戻り値:
エラーメッセージがあるときtrue,ないときfalse

getParameter

public java.lang.String getParameter(javax.servlet.http.HttpServletRequest request,
                                     java.lang.String parameter)
リクエストパラメータを取得します。サニタイズも実施します。 HttpServletRequestのgetParameterとの違いは,サニタイズもするというところです。 HttpServletRequestのgetParameterの後に必ずサニタイズをするのであれば使用する必要はありませんが, 忘れっぽい人はこのメソッドに慣れるとよいかもしれません。

パラメータ:
request - リクエスト
parameter - パラメータ名
戻り値:
パラメータ名の値

sanitize

public java.lang.String sanitize(java.lang.String value)
サニタイズします。(strutsのResponseUtilsクラスのfilterメソッドから拝借)

パラメータ:
value - サニタイズしたい文字列
戻り値:
サニタイズ後の文字列