【サーブレット&JSP】セッションスコープ
こんにちは。のわです。
今回は、セッションスコープの使い方を整理したいと思います。
スコープとは
スコープは【インスタンスを保存できる領域】のことです。
スコープを利用することで
【サーブレットクラスで生成したインスタンスをJSPファイルで利用する】
ことが可能になります。
インスタンス使用時はスコープを経由することになるということです。
スコープに保存できるものはインスタンスのみです。
intやdouble型などの基本データ型は保存できません。
利用方法(サーブレットクラス)
サーブレットクラスでの利用方法です。
まずは、セッションスコープを利用するための準備です。
利用には【javax.servlet.http.HttpSession】インスタンスのメソッドを使います。
HttpSession取得
まずは、HttpSessionインスタンスを取得します。
構文は以下のとおりです。
HttpSession s = request.getSession();
//javax.servlet.http.HttpSessionをimportしておく
インスタンス取得時は【getSession()メソッド】を使用します。
保存
次に、保存したいインスタンスを指定します。
s.setAttribute("属性名", インスタンス名) //引数は、第1引数にString型, 第2引数にObject型を指定
保存するときは【setAttribute()メソッド】を使用します。
第1引数はString型、第2引数はObject型となっています。
属性値はインスタンス管理用の名前です。
JSPで利用する際に使用します。
ここで注意したいのが第2引数です。
第2引数に自分が保存したいインスタンスを格納します。
引数の型はObjectのため、どんな型でも入れることができます。
ただし、利用するときは型の変換(キャスト)が必要になります。
注意しましょう。
取得
次に保存したインスタンスを取り出す構文です。
取得するインスタンス型 変数名 = (取得するインスタンス型) s.getAttribute("属性名");
保存したものを取得するときは【getAttribute()メソッド】を使用します。
引数には保存時に指定した属性名を入れます。
また、取得するときは型変換(キャスト)することを忘れないようにしましょう。
削除
最後に削除するときです。
s.removeAttribute("属性名");
削除するときは【removeAttribute()メソッド】を使用します。
利用方法(JSPファイル)
次にJSPファイルでの利用方法です。
JSPファイルではHttpSessionインスタンスを生成する必要はありません。
暗黙オブジェクトである【session】を使用します。
取得するインスタンス型 変数名 = (取得するインスタンス型) session.getAttribute("属性名");
使用方法はサーブレットクラスのときと大差ありません。
今回は、セッションスコープについてまとめてみました。
Web上でJavaプログラムを動かせるようになりました。
今度は簡単なWebアプリケーションを作成し、ブログにアップしたいと思います!
最後まで読んでいただき、ありがとうございました。