セッション追跡
HTTP にはセッションはありませんので HTTP だけではセッションを追跡でいない。
セッション追跡のメカニズム
クッキーの使用
URL 書き換え
クッキーを無効にしているブラウザへの対応。
SSL(Secure Sockets Layer) セッション
Java では javax.servlet.http.HttpSession インターフェースを使ってセッションを構成します。
セッションオブジェクトの取得
HttpServletRequest#getSession
現在のセッションを返す。
現在のセッションがなければ新たに作成する。
HttpServletRequest#getSession(boolean create)
現在のセッションを返す。
現在のセッションがなくて create が true なら新たに作成する。
false を指定すると新たにセッションを作成しない。
セッションと属性
セッションにオブジェクトをセット
HttpSession#setAttribute(String name, Object value)
セッションからオブジェクトを所得
HttpSession#getAttribute(String name)
HttpSession#getAttributeNames() は String オブジェクトの Enumeration を返す
セッションタイムアウト
HttpSession#setMaxInactiveInterval(int interval)
タイムアウト値を秒で設定する。
-(ネガティブ)を設定するとタイムアウトしない。
又は
web.xml の設定。タイムアウト値を分で設定。
<session-config>
<session-timeout>
20
</session-timeout>
</session-config>
-(ネガティブ)または 0 を設定するとタイムアウトしない。
セッションオブジェクトの削除
HttpSession#invalidate メソッドを呼び出します。関連付けられているオブジェクトも削除します。
セッションが作成、破棄されたときに通知を受ける
javax.servlet.http.HttpSessionListener
HttpSession オブジェクトはスレッドセーフではない。
HttpSession オブジェクトはスレッドセーフではありません。
参照 スレッドの同期化
0 件のコメント:
コメントを投稿