Presentation is loading. Please wait.

Presentation is loading. Please wait.

セッション管理 J2EE I 第9回 / 2005-01-15.

Similar presentations


Presentation on theme: "セッション管理 J2EE I 第9回 / 2005-01-15."— Presentation transcript:

1 セッション管理 J2EE I 第9回 /

2 ここでの内容 セッション管理の基本を知る。 HttpSession の使い方を知る。

3 セッションとは何か 次の一連の流れのこと WebブラウザとWebサーバが接続される Webブラウザが要求を出す Webサーバが応答を返す
接続を切る

4 セッション管理 あるセッションと別のセッションとは無関係 ところが、セッション同士を関係付けたい場合もある
例えばショッピングサイトで、商品Aと商品Bを同じ人がショッピングカートに入れ、購入したい場合 セッションをひとまとめにする仕組みが「セッション管理」

5 セッションID Webサーバは、セッション管理が必要になる時点で、Webブラウザに「セッションID」を発行する。
Cookie と URL Rewriting

6 Cookie Webブラウザ側のコンピュータにテキストファイルとして保存 (保存しない場合もある)
セッションID のほか、関連するさまざまな情報を含めることができる。ただしテキストベース。 Cookie を使えない場合もある Webブラウザ側でCookie を受入を拒否できる 携帯電話のブラウザ

7 URL Rewriting Cookie が使えないときに用いられる
HTTPの応答で返されるHTMLに、セッションID を含めたリンクを用意する <a href=“/select?id=12345>購入</a> このリンクをクリックすると “/select?id=12345” が要求となる セッションIDによってブラウザを識別できる セッションIDが露出しているので、セキュリティ上問題がある。

8 HttpSession (1) Java で セッション管理を行うためのインタフェース HttpSession の取得
HttpSession session = request.getSession(); HttpSession が無い場合には新しく生成。このとき、セッションIDも生成

9 HttpSession (2) HttpSession にオブジェクトを登録 HttpSession からオブジェクトを取得
session.setAttribute(“bookList”, list); HttpSession からオブジェクトを取得 List list = session.getAttribute(“bookList”); HttpSession からオブジェクトを削除 session.removeAttribute(“bookList”); HttpSession を終了 session.invalidate();

10 HttpSession による セッションIDの受け渡し (1)
普段は Cookie を使う Cookieに入る値はセッションIDだけ。 ほかの情報は、サーバ側で保存される。 そのユーザの購入履歴やパスワードなど

11 HttpSession による セッションIDの受け渡し (2)
Cookie が使えない場合、URLRewriting response.encodeURL(" Cookie を利用する場合は、そのまま URLRewriting の場合は セッションIDを自動的に付加

12 セッションタイムアウトの処理 HttpSession には有効期間がある HttpSession を使いまわす場合
デフォルトでは30分間アクセスがないと廃棄される HttpSession を使いまわす場合 新規に作成するのは最初の1回だけにしておく。 途中でタイムアウトが起きるといろいろ面倒だから。 HttpSession session = request.getSession(false);


Download ppt "セッション管理 J2EE I 第9回 / 2005-01-15."

Similar presentations


Ads by Google