Package nablarch.common.web.session
Class SessionUtil
java.lang.Object
nablarch.common.web.session.SessionUtil
セッションに関するユーティリティ。
業務Actionハンドラからは、必ず本クラスを使用してセッションの読み書きを行う。
セッションへの登録処理は
SessionManager
によって提供される。
SessionManager
の実装は、SystemRepository
からコンポーネント名"sessionManager"で取得される。
本クラスはSessionStoreHandler
と併せて使用すること。-
Method Summary
Modifier and TypeMethodDescriptionstatic void
changeId
(ExecutionContext ctx) セッションIDを変更する。static <T> T
delete
(ExecutionContext ctx, String name) セッションを削除する。static <T> T
get
(ExecutionContext ctx, String name) 名称を指定してセッションからオブジェクトを取得する。static void
セッションを無効化する。static <T> T
or
(ExecutionContext ctx, String name, T defaultValue) 名称を指定してセッションからオブジェクトを取得する。static <T> T
orNull
(ExecutionContext ctx, String name) 名称を指定してセッションからオブジェクトを取得する。static void
put
(ExecutionContext ctx, String name, Object value) SessionStore
に変数を保存する。static void
put
(ExecutionContext ctx, String name, Object value, String storeName) 保存先のSessionStore
を指定して、セッションに変数を保存する。
-
Method Details
-
get
名称を指定してセッションからオブジェクトを取得する。 セッションに指定した名称をもつオブジェクトが存在しない場合、SessionKeyNotFoundException
を送出する。// "userName"という名称のオブジェクトがセッションに登録済み。設定値は"Nabu Rakutaro" SessionUtil.get(ctx, "userName"); // -> "Nabu Rakutaro" // セッションに存在しないオブジェクトを指定 SessionUtil.get(ctx, "test"); // -> SessionKeyNotFoundExceptionを送出
- Type Parameters:
T
- セッションに格納されているオブジェクトの型- Parameters:
ctx
- 実行コンテキストname
- セッションに登録したオブジェクトの名称- Returns:
- セッションから取得したオブジェクト
- Throws:
SessionKeyNotFoundException
- 指定したオブジェクトの名称がセッションに存在しない場合
-
orNull
名称を指定してセッションからオブジェクトを取得する。 セッションに指定した名称をもつオブジェクトが存在しない場合、nullを返す。// "userName"という名称のオブジェクトがセッションに登録済み。設定値は"Nabu Rakutaro" SessionUtil.orNull(ctx, "userName"); // -> "Nabu Rakutaro" // セッションに存在しないオブジェクトを指定 SessionUtil.orNull(ctx, "test"); // -> null
- Type Parameters:
T
- セッションに格納されているオブジェクトの型- Parameters:
ctx
- 実行コンテキストname
- セッションに登録したオブジェクトの名称- Returns:
- セッションから取得したオブジェクト
-
or
名称を指定してセッションからオブジェクトを取得する。 セッションに指定した名称をもつオブジェクトが存在しない場合、デフォルト値を返す。// "userName"という名称のオブジェクトがセッションに登録済み。設定値は"Nabu Rakutaro" SessionUtil.or(ctx, "userName", "デフォルト値"); // -> "Nabu Rakutaro" // セッションに存在しないオブジェクトを指定 SessionUtil.or(ctx, "test", "デフォルト値"); // -> "デフォルト値"
- Type Parameters:
T
- セッションに格納されているオブジェクトの型- Parameters:
ctx
- 実行コンテキストname
- セッションに登録したオブジェクトの名称defaultValue
- デフォルト値- Returns:
- セッションから取得したオブジェクト
-
put
SessionStore
に変数を保存する。 オブジェクトの保存先はSessionManager
で指定したSessionStore
が選択される。 同一の登録名をもつオブジェクトは上書きされる。 よって、複数のSessionStore
を利用する場合でも、 同一の登録名をもつオブジェクトは一つしか登録できない。 注意:セッションで管理できるオブジェクトの制限について、put(ExecutionContext, String, Object, String)
を参照すること。SessionUtil.put(ctx, "userName", "Nabu Rakutaro");
- Parameters:
ctx
- 実行コンテキストname
- セッションに登録するオブジェクトの名称value
- セッションに登録するオブジェクト
-
put
保存先のSessionStore
を指定して、セッションに変数を保存する。 同一の登録名をもつオブジェクトは上書きされる。 よって、複数のSessionStore
を利用する場合でも、 同一の登録名をもつオブジェクトは一つしか登録できない。 注意:セッションに直接格納し、復元ができるオブジェクトの制限について
セッションに直接格納できるのは、下記条件を満たすJava Beanオブジェクトのみである。- デフォルトコンストラクタが定義されていること
- 値を保持したいプロパティに対し、setter及びgetterが定義されていること
- シリアライズ可能であること
SessionUtil.put(ctx, "userName", "Nabu Rakutaro", "httpSession");
- Parameters:
ctx
- 実行コンテキストname
- セッションに登録するオブジェクトの名称value
- セッションに登録するオブジェクトstoreName
- 登録対象のセッションストア名
-
delete
セッションを削除する。 指定した名称のセッションオブジェクトが存在しない場合は無視される。// Sessionスコープに"sessionProject"という名称でオブジェクトが登録されている前提 SessionUtil.delete(context, "sessionProject");
- Parameters:
ctx
- 実行コンテキストname
- セッションに登録したオブジェクトの名称- Returns:
- 削除されたセッションの値(セッションオブジェクトが存在しない場合は
null
)
-
invalidate
セッションを無効化する。- Parameters:
ctx
- 実行コンテキスト
-
changeId
セッションIDを変更する。このメソッドを実行すると、セッションIDだけが変更され セッションに保存した情報は維持される。
- Parameters:
ctx
- 実行コンテキスト
-