HttpSessionよくある使い方
2009/05/11 19:12Update
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ドキュメント
Sponsored Link
Comments
- Relative Articles