Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 > Servlet・JSP > JSP −8.暗黙オブジェクト(session)
更新日:2006/10/7
JSP−8.暗黙オブジェクト(session)
JSPでは、宣言せずに使用できるオブジェクトとして9つの暗黙オブジェクト(request, response, pageContext, session, application, config, page, exception)が用意されています。それぞれの暗黙オブジェクトにはJSPプログラムで頻繁に使用するメソッドが定義されています。ここでは、暗黙オブジェクトのうち、sessionについて解説します。
メソッド
暗黙オブジェクトsessionは、javax.servlet.http.HttpSessionインタフェースのオブジェクト変数です。クライアントとサーバ間のセッション管理に使用します。セッション管理の詳細はJavaの道:Servlet(セッション管理)を参照してください。pageディレクティブのsession属性にfalseが設定されている場合は、この暗黙オブジェクトを使用することはできません。以下にsessionオブジェクトで使用できる主なメソッドを紹介します。
戻り型
メソッド
説明
Object
getAttribute(String)
引数に指定されたデータ名に該当するセッションスコープのデータ値を返します。該当のデータ名がない場合にはnullを返します。
Enumeration
getAttributeNames( )
セッションスコープで利用可能なすべてのデータ名を返します。
String getId( ) セッションに割り当てられた一意のセッションIDを返します。
int getMaxInactiveInterval( ) セッションごとのセッション保持時間を秒数で返します。
ServletContext getServletContext( ) セッションが属しているServletContextオブジェクトを返します。
void
invalidate( )
生成されているセッションIDを破棄します。
boolean isNew( ) クライアントがセッション管理されていないときにtrueを返します(初めてアクセスしたとき、クラインアントがcookieを使えないときなど)。
void removeAttribute(String) 引数に指定されたデータ名をセッションスコープから削除します。
void setAttribute(String, Object)

第一引数にデータ名、第二引数にデータ値を指定し、セッションスコープを持つデータ値を登録します。すでにデータ名が存在する場合は、新しく指定されたデータ値が上書きされます。

void
setMaxInactiveInterval(int)
セッションごとのセッション保持時間を秒数で指定します。
※その他のメソッドについてはAPIリファレンスをご参照ください。
使用例
sessionオブジェクトの使用例について解説します。セッション管理されているかどうかを判別して、クライアントがセッション管理されていないときに「Java Nice to meet you.」を表示し、セッション管理されているときには「Hello! Java」を表示します。
【exSession.jsp】
<%@ page language="java" contentType="text/html; charset=windows-31j"
	pageEncoding="windows-31j"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
  //(1)isNewメソッドでセッション管理されているか確認します。
  if (session.isNew()) {
		
    //(2)セッション管理されていない場合、セッションスコープを持つ
    //   データid(値はJava)を登録します。
    session.setAttribute("id", "Java");
    //(3)セッションスコープを持つデータidを表示します。
    out.println(session.getAttribute("id") + " Nice to meet you.");

  } else {

    //(4)セッション管理されている場合、セッションスコープを持つ
    //   データidを表示します。
    out.println("Hello! " + session.getAttribute("id"));

  }
%>
</body>
</html>
【実行結果】JSPプログラムの実行方法に関しては、Javaの道:Tomcat(プログラム配置・実行)を参照してください。
【初めてアクセスした場合(セッション管理されていない)】
Javaの道_session_実行結果1
【2回目以降アクセスした場合(セッション管理されている)】
Javaの道_session_実行結果2



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道