HttpSessionよくある使い方

2009/05/11 19:12Update
TAGS: HttpSession | セッション | getSession | setAttribute | getAttribute | invalidate | removeAttribute

javax.servlet.http.HttpSessionよくある使い方:セッションの取得、セッションにオブジェクトのバインド、セッションからバインドされたオブジェクトの削除など、セッションの無効化などを解説します。

セッションとは


セッションはWebユーザのサイトアクセス単位です。ユーザは初めてサイトにアクセスしたときにセッションが作られ、切断・タイムアウトされるまでそのセッションが持ち続けることができます。

そのため、セッションは同一ユーザのページの間のデータ共有などに利用されています。

javax.servlet.http.HttpSessionはセッション操作主なインタフェースです。

HttpSession(セッション)の取得


例:
HttpServletRequest req = ...;
HttpSession session = req.getSession(true);


1、HttpServletRequest.getSession(boolean)からHttpSessionを取得できます。
2、HttpServletRequest.getSession(true)の場合、セッションが存在しなかった場合は新規にセッションを作ります。
3、HttpServletRequest.getSession(false)の場合、セッションが存在しなかった場合は新規にセッションを作らず、nullと返されます。


HttpSession(セッション)にデータをバインド


void     setAttribute(java.lang.String name, java.lang.Object value)

@param name キー。HttpSessionはこのキーによるバインドされるオブジェクトを管理します。
@param value バインド対象となるオブジェクト。
例:
session.setAttribute("name", "セッション太郎");

User user = ...;
session.setAttribute("user", user);


HttpSession(セッション)からバインドされたオブジェクトを取得


java.lang.Object     getAttribute(java.lang.String name)

@param name キー。
@return Object。指定するキーにバインドされるオブジェクトを返します。存在しなかった場合nullを返します。

例:
String name = (String)session.getAttribute("name");

User user = (User)session.getAttribute("user");


HttpSession(セッション)からバインドされるオブジェクトの削除



void     removeAttribute(java.lang.String name)

@param name キー。

例:
session.removeAttribute("name");

session.getAttribute("user");



セッションの無効化(すべて削除)



void     invalidate()

例:
session.invalidate();

invalidate()は、sessionにバインドされるすべてのオブジェクトが解放されます。

セッションの一意IDを取得


HttpSession#getId()でセッションの一意IDを取得できます。

java.lang.String     getId()

例:
HttpSession session = ..
System.out.println("SessionID=" + session.getId());


参考資料


HttpServletRequest APIドキュメント
HttpSession APIドキュメント

有关作者
Syboos.jp編集長システム設計や開発、保守運営などを行ってます。オープンソース技術に興味があります。

Sponsored Link


Comments

用户名 (required)

Email (will not be published) (required)

URL

Evaluation

  • Relative Articles