セッション管理 ソフトウェア特論 第8回 ここでの内容 セッション管理の基本を知る。 HttpSession の使い方を知る。 セッションとは何か 次の一連の流れのこと – – – – WebブラウザとWebサーバが接続される Webブラウザが要求を出す Webサーバが応答を返す 接続を切る セッション管理 あるセッションと別のセッションとは無関係 ところが、セッション同士を関係付けたい場合もあ る – 例えばショッピングサイトで、商品Aと商品Bを同じ人が 一緒に購入したい場合 セッションをひとまとめにする仕組みが「セッション 管理」 セッションID Webサーバは、セッション管理が必要になる時点 で、Webブラウザに「セッションID」を発行する。 Webブラウザは、そのWebサーバにアクセスする ときに、セッションIDを使用する セッションIDによって、Webブラウザを識別する セッションIDの受け渡し方法 – Cookie と URL Rewriting Cookie Webブラウザ側のコンピュータにテキストファイル として保存 (保存しない場合もある) セッションID のほか、関連するさまざまな情報を含 めることができる。ただしテキストベース。 Cookie を使えない場合もある – – Webブラウザ側でCookie を受入を拒否できる 携帯電話のブラウザ URL Rewriting Cookie が使えないときに用いられる セッションID をURLに含めて渡す – – <a href=“/select?id=12345>購入</a> クリックすると “/select?id=12345” が要求となる セッションIDが露出しているので、セキュリティ上 問題がある。 HttpSession (1) Java で セッション管理を行うためのインタフェース HttpSession の取得 – – HttpSession session = request.getSession(); HttpSession が無い場合には新しく生成。このとき、 セッションIDも生成 HttpSession にオブジェクトを登録 – session.setAttribute(“bookList”, list); HttpSession (2) HttpSession からオブジェクトを取得 – HttpSession からオブジェクトを削除 – List list = session.getAttribute(“bookList”); session.removeAttribute(“bookList”); HttpSession を終了 – session.invalidate(); HttpSession による セッションIDの受け渡し 普段は Cookie を使う – セッションIDだけが Cookie に含まれる。他の情報は サーバ側に。 Cookie が使えない場合、URLRewriting – – – response.encodeURL("http://hogehoge.com/test/sel ect"); Cookie を利用する場合は、そのまま URLRewriting の場合は セッションIDを自動的に付加 http://hogehoge.com/test/select?id=12345 セッションタイムアウトの処理 HttpSession には有効期間がある – デフォルトでは30分間アクセスがないと廃棄される HttpSession を使いまわす場合 – – – 新規に作成するのは最初の1回だけにしておく。 途中でタイムアウトが起きるといろいろ面倒だから。 HttpSession session = request.getSession(false); レポート課題について 第1回は12月5日(金)まで。 第2回は12月26日(金)まで。 詳しくは http://www.wakhok.ac.jp/~tomoharu/tokuron20 03/ を参照のこと。
© Copyright 2024 ExpyDoc