JSPの基礎知識

JSPでセッションを設定する方法

テンアートニ 中越智哉
2001/6/27

 サーブレットでは、HttpSessionインターフェイスを使ってセッション管理を行うことができますが、JSPでもセッションに関する設定を行うことができます。

 JSPの<%@ page %>タグにはsessionという属性があり、この属性にtrue/falseを指定することで、セッションに関する設定を行います。

■セッションの使用を宣言する

<%@ page session="true" %>

 このJSPタグでセッションを使用することを宣言します。もし、サーブレットやほかのページですでに開始されているセッションがあれば、そのセッションオブジェクトを使用します。セッションがまだ開始されていなければ、ここで新たに開始し、セッションオブジェクトも作成します。

※session属性の指定を省略すると、session="true"が設定されたものと見なされます。

■セッションを使用しないことを宣言する

<%@ page session="false" %>

 このJSPタグでセッションを使用しないことを宣言します。この指定がある場合に、JSP内でセッションの操作を行うコードを記述すると、コンパイル時にエラーになります。当然、セッションが開始されていない場合に、新たに開始する必要はありません。

 逆に、この指定があったしても、継続しているセッションが切断されてしまうということもありません。あくまで、このページ内ではセッションを「使用しない」ということを宣言しているだけだからです。

■session属性の使い分け

 これら2つのパターンは、どのように使い分ければいいのでしょうか? 2つの性質を考えれば、

  • まだセッションを開始すべきでないページ=false
  • セッション終了後のページ=false
  • セッションは継続しているが、セッションオブジェクトを使用しないページ=false
  • セッションが継続していて、セッションオブジェクトを使用するページ=true

と使い分けるのが一般的です。また、session属性を省略した場合は、trueと見なされることに注意してください。セッションについて意識せずにJSPをコーディングしたつもりでも、不必要なセッションが開始されてしまい、不具合が発生する場合がありますので注意してください。


「Java Solution FAQ」




Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間