Package nablarch.common.web.session
Class SessionUtil
java.lang.Object
nablarch.common.web.session.SessionUtil
セッションに関するユーティリティ。
業務Actionハンドラからは、必ず本クラスを使用してセッションの読み書きを行う。
セッションへの登録処理は
SessionManagerによって提供される。
SessionManagerの実装は、SystemRepositoryからコンポーネント名"sessionManager"で取得される。
本クラスはSessionStoreHandlerと併せて使用すること。- Author:
- kawasima, tajima
-
Method Summary
Modifier and TypeMethodDescriptionstatic voidchangeId(ExecutionContext ctx) セッションIDを変更する。static <T> Tdelete(ExecutionContext ctx, String name) セッションを削除する。static <T> Tget(ExecutionContext ctx, String name) 名称を指定してセッションからオブジェクトを取得する。static voidセッションを無効化する。static <T> Tor(ExecutionContext ctx, String name, T defaultValue) 名称を指定してセッションからオブジェクトを取得する。static <T> TorNull(ExecutionContext ctx, String name) 名称を指定してセッションからオブジェクトを取得する。static voidput(ExecutionContext ctx, String name, Object value) SessionStoreに変数を保存する。static voidput(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- 実行コンテキスト
-