jp.terasoluna.fw.web.struts.actions
クラス MakeSessionDirectoryAction

java.lang.Object
  上位を拡張 Action
      上位を拡張 jp.terasoluna.fw.web.struts.actions.ActionEx
          上位を拡張 jp.terasoluna.fw.web.struts.actions.MakeSessionDirectoryAction

public class MakeSessionDirectoryAction
extends ActionEx

セッションディレクトリを作成するアクション。

サーバサイドで生成されたPDFファイルなどを格納するための一時ディレクトリ (以降、セッションディレクトリ)をログオンユーザ毎に作成する。

この機能を使うためにはシステム設定プロパティファイル(system.properties) にセッションディレクトリベースパスを記述しておく必要がある。

システム設定プロパティファイル(system.properties)の設定
session.dir.base=/tmp/sessions
セッションディレクトリの作成には以下の二つの方法で利用可能である。

(1)MakeSessionDirectoryActionクラスの利用
ログオンに成功したらMakeSessionDirectoryActionに遷移する。
struts-config.xmlでactionプロパティのparameter属性に指定した先にフォワードする。
struts-config.xml及びBean定義ファイルの設定は下記のとおりである。
struts-config.xmlの設定
 <action path="/makeSessionDir"
     scope="session"
     parameter="/foo.jsp">;
 </action>
 
Bean定義ファイルの設定
 <bean name="/makeSessionDir" scope="prototype"
   class="jp.terasoluna.fw.web.struts.actions.MakeSessionDirectoryAction">
 </bean>
 
(2)アクションクラスで直接セッションディレクトリ作成
MakeSessionDirectoryAction以外のアクションでは、ユーザログイン後に HttpSessionが取得可能な場所で FileUtil#makeSessionDirectory(String sessionId)を呼び出す必要がある。


セッションディレクトリの削除は以下の方法で利用可能である。

(1)HttpSessionListener実装クラスの利用
デプロイメントディスクリプタ(web.xml)に HttpSessionListener実装クラスをリスナとして登録し、 セッションが破棄されたときセッションディレクトリを削除する処理 (FileUtil#removeSessionDirectory(String sessionId))を リスナに実装する。
web.xmlの設定は下記のとおりである。
デプロイメントディスクリプタ(web.xml)の設定
 <web-app>
   ・・・
   <listener>
     <listener-class>
       jp.terasoluna.fw.web.MyHttpSessionListener
     </listener-class>
   </listener>
 </web-app>
 


フィールドの概要
private static java.lang.String FORWARD_ERRORPAGE_ERROR
          エラーページ(404)遷移失敗を示すエラーコード。
private static Log log
          ログクラス。
private static java.lang.String SESSION_NOT_FOUND_ERROR
          セッション取得失敗を示すエラーコード。
 
クラス jp.terasoluna.fw.web.struts.actions.ActionEx から継承されたフィールド
FORWARD_TXTOKEN_ERROR
 
コンストラクタの概要
MakeSessionDirectoryAction()
           
 
メソッドの概要
 ActionForward doExecute(ActionMapping mapping, ActionForm form, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
           セッションディレクトリを生成する。
 
クラス jp.terasoluna.fw.web.struts.actions.ActionEx から継承されたメソッド
addErrors, addMessages, execute, isSaveToken, isTokenCheck, processTokenCheck, setSaveToken, setTokenCheck
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

log

private static Log log
ログクラス。


SESSION_NOT_FOUND_ERROR

private static final java.lang.String SESSION_NOT_FOUND_ERROR
セッション取得失敗を示すエラーコード。

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

FORWARD_ERRORPAGE_ERROR

private static final java.lang.String FORWARD_ERRORPAGE_ERROR
エラーページ(404)遷移失敗を示すエラーコード。

関連項目:
定数フィールド値
コンストラクタの詳細

MakeSessionDirectoryAction

public MakeSessionDirectoryAction()
メソッドの詳細

doExecute

public ActionForward doExecute(ActionMapping mapping,
                               ActionForm form,
                               javax.servlet.http.HttpServletRequest req,
                               javax.servlet.http.HttpServletResponse res)

セッションディレクトリを生成する。
セッションが取得できた場合、セッションディレクトリを作成した後 パラメータ属性に設定された遷移先をアクションフォワードにセットして返す。
パラメータ属性が設定されていない場合、(404)エラーを返す。
セッションが取得できなかった場合、システム例外を起こす。

定義:
クラス ActionEx 内の doExecute
パラメータ:
mapping - アクションマッピング
form - アクションフォーム
req - HTTPリクエスト
res - HTTPレスポンス
戻り値:
遷移先のアクションフォワード。