セッション管理

一般に,HTTPによるWWWページへのアクセスはアドホックなもののため,接続のセッションを管理することができません.
セッションとは,例えば,あるシステムにログインしてからログオフするまでの期間を指します.

これを解決する方法としては,ページを返すときにセッションを表す情報を埋め込んでおくなどの工夫が必要です.しかし,この方法では,その情報がクライアント側にも見えてしまいます.

JSP/Servlet は,Webアクセスに対するセッションを管理する機能を持っています.これは,クッキーを利用した枠組みです.セッションが継続している間,保持する情報 は全てサーバ側にあります.サーバクライアント間を行き来する情報は,セッションを特定するためのクッキー情報だけです.この枠組みは,ASPやPHPで も使われています.

セッションの管理は,HttpSessionクラスで行います.

  • 変数の設定 ・・・   session.setAttribute("変数名",値)

  • 変数の呼び出し ・・・ session.getAttribute("変数名")

と,セッションのクラスをあらかじめ継承しているので,そのまま使えます.

注意点

 getAttributeするときは,必ず変数のキャストをしてください.

Stirng test = (String)session.getAttribute("xx");

sessionの終了

session.invalidate()メソッドでOKです.


セッション管理(上級編)

上記の方法を用いれば,いくらでもセッション変数を設定することができますが,数が多くなると呼び出す時に面倒になってきます.そこで,オブジェクト指向 の特徴を生かし,データをJavaBeansで管理するのが定石です.そして,そのクラスをセッション変数として保存するようにします.こうすると, session.getAttributeは1回だけで済みますし,JavaBeansの特徴を生かして変数管理を行うことができます.EJBean化す れば,もっと高度なデータ管理も可能です.

将来的にJSPと組み合わせることを考慮すれば,絶対にJavaBeans化しておくべきです.

「Java Beans」「JSPとのBeansの連携」については別の講で述べます.

Comments