Mergedoc
Translation

javax.servlet.http
インタフェース HttpSession


public interface HttpSession

ユーザが Web サイト内の複数のページを訪れる際にユーザを識別したりユーザに関する情報を保存するための方法を提供します。

Servlet コンテナは HTTP クライアントと HTTP サーバの間にセッションを生成するためにこのインタフェースを使用します。 セッションはユーザからの複数回の接続すなわちページリクエストに跨って、指定された期間持続します。 通常 1 セッションはサイトをよく訪れる1ユーザに対応します。 サーバは Cookie を利用したり URL を書き直したりといった様々な方法でセッションを維持します。

Servlet はこのインタフェースを用いて次のようなことができます。

アプリケーションがセッションにオブジェクトを結び付けたりセッションからオブジェクトを削除したりする際に、セッションはそのオブジェクトが HttpSessionBindingListener を実装しているかどうかを調べます。 実装しているならば、Servlet はそのオブジェクトに対してセッションに結び付けられたのかセッションから削除されたのかといった通知を行ないます。 通知は結び付けや削除メソッドが完了した後に送られます。 また、無効化されたり期限の切れたセッションの場合、通知はセッションが無効になったか期限切れになった後に送られます。

分散 Servlet コンテナとして設定されている Servlet コンテナが VM 間でセッションを移動させる時には、HttpSessionActivationListener インタフェースを実装している全てのセッションの属性に対して通知が行なわれます。

Serlvet は例えば Cookie が明示的に無効になっている場合などの、クライアントがセッションに参加しないことを選ぶケースを扱うことができるべきです。 クライアントがセッションに参加するまでは isNewtrue を返します。 クライアントがセッションに参加しないことを選んだ場合、getSession はリクエスト毎に異なるセッションを返します。 また isNew は常に true を返します。

セッション情報は現在の Web アプリケーション (ServletContext) でのみ参照可能です。 従って、あるコンテキストに保存された情報は他のコンテキストからは直接参照することはできません。

作成者:
Various
関連項目:
HttpSessionBindingListener, HttpSessionContext

メソッドの概要
 java.lang.Object getAttribute(java.lang.String name)
          指定された名前でこのセッションに結びつけられているオブジェクトを返します。
 java.util.Enumeration getAttributeNames()
          このセッションに結びつけられている全てのオブジェクトの名前を表す String オブジェクトの Enumeration オブジェクトを返します。
 long getCreationTime()
          このセッションが生成された時刻を返します。
 java.lang.String getId()
          このセッションに割り当てられている一意な識別子を表す String オブジェクトを返します。
 long getLastAccessedTime()
          このセッションに関連したリクエストをクライアントが送った最後の時刻を返します。
 int getMaxInactiveInterval()
          クライアントが Servlet コンテナに最後にアクセスしてからこのセッションを保ち続ける最大の秒数を指定します。
 ServletContext getServletContext()
          このセッションが属している ServletContext オブジェクトを返します。
 HttpSessionContext getSessionContext()
          推奨されていません。 バージョン 2.1 以降、このメソッドは推奨されていません。 また、代替手段もありません。 このメソッドは Java Servlet API の将来のバージョンでは削除されるでしょう。
 java.lang.Object getValue(java.lang.String name)
          推奨されていません。 バージョン 2.2 以降、このメソッドは getAttribute(java.lang.String) に置き換えられています。
 java.lang.String[] getValueNames()
          推奨されていません。 バージョン 2.2 以降、このメソッドは getAttributeNames() に置き換えられています。
 void invalidate()
          セッションを無効にし、結びつけられている全てのオブジェクトを解放します。
 boolean isNew()
          クライアントがこのセッションについてまだ知らない場合、もしくはクライアントがセッションに参加しない場合に true を返します。
 void putValue(java.lang.String name, java.lang.Object value)
          推奨されていません。 バージョン 2.2 以降、このメソッドは setAttribute(java.lang.String, java.lang.Object) に置き換えられています。
 void removeAttribute(java.lang.String name)
          指定された名前でセッションに結びつけられているオブジェクトをセッションから削除します。
 void removeValue(java.lang.String name)
          推奨されていません。 バージョン 2.2 以降、このメソッドは removeAttribute(java.lang.String) に置き換えられています。
 void setAttribute(java.lang.String name, java.lang.Object value)
          指定された名前でこのセッションにオブジェクトを結びつけます。
 void setMaxInactiveInterval(int interval)
          Servlet コンテナがクライアントから最後にリクエストを受けてからこのセッションを無効化するまでの最大の秒数を指定します。
 

メソッドの詳細

getCreationTime

long getCreationTime()
このセッションが生成された時刻を返します。 返される時刻は、1970年1月1日グリニッジ標準時 00:00:00.000 からの経過時間をミリ秒で表した数値です。

戻り値:
このセッションが生成された時刻を表す long値。 この値は1970年1月1日グリニッジ標準時 00:00:00.000 からの経過時間をミリ秒で表したもの
例外:
java.lang.IllegalStateException - 無効なセッションについてこのメソッドの呼び出しが行なわれた場合

getId

java.lang.String getId()
このセッションに割り当てられている一意な識別子を表す String オブジェクトを返します。 識別子は実装依存であり、Servlet コンテナによって割り当てられます。

戻り値:
セッションに割り当てられている識別子を表す文字列
例外:
java.lang.IllegalStateException - 無効なセッションについてこのメソッドの呼び出しが行なわれた場合

getLastAccessedTime

long getLastAccessedTime()
このセッションに関連したリクエストをクライアントが送った最後の時刻を返します。 この時刻はそのリクエストをコンテナが受け取るまでに記録されます。 返される時刻は、1970年1月1日グリニッジ標準時 00:00:00.000 からの経過時間をミリ秒で表した数値です。

セッションに関連づけられている値を取得したり設定したりといったアクションをアプリケーションが受けても、このアクセス時刻は更新されません。

戻り値:
クライアントがこのセッションに関連したリクエストを送った最終時刻を表すlong値。 返される値は、1970年1月1日グリニッジ標準時 00:00:00.000 からの経過時間をミリ秒で表した数値
例外:
java.lang.IllegalStateException - 無効なセッションについてこのメソッドの呼び出しが行なわれた場合

getServletContext

ServletContext getServletContext()
このセッションが属している ServletContext オブジェクトを返します。

戻り値:
Web アプリケーションの ServletContext オブジェクト
導入されたバージョン:
2.3

setMaxInactiveInterval

void setMaxInactiveInterval(int interval)
Servlet コンテナがクライアントから最後にリクエストを受けてからこのセッションを無効化するまでの最大の秒数を指定します。 負の値を与えるとセッションはタイムアウトしないようになります。

パラメータ:
interval - 秒数を表す整数値

getMaxInactiveInterval

int getMaxInactiveInterval()
クライアントが Servlet コンテナに最後にアクセスしてからこのセッションを保ち続ける最大の秒数を指定します。 この最大秒数は setMaxInactiveInterval メソッドで設定することができます。 この値が負の値である場合、セッションはタイムアウトしません。

戻り値:
クライアントからのリクエストの間に何秒間セッションを持続するかを表す数値
関連項目:
setMaxInactiveInterval(int)

getSessionContext

HttpSessionContext getSessionContext()
推奨されていません。 バージョン 2.1 以降、このメソッドは推奨されていません。 また、代替手段もありません。 このメソッドは Java Servlet API の将来のバージョンでは削除されるでしょう。


getAttribute

java.lang.Object getAttribute(java.lang.String name)
指定された名前でこのセッションに結びつけられているオブジェクトを返します。 指定された名前に結びつけられているオブジェクトが存在しない場合は null を返します。

パラメータ:
name - オブジェクトの名前を表す文字列
戻り値:
指定された名前を持つオブジェクト
例外:
java.lang.IllegalStateException - 無効なセッションについてこのメソッドの呼び出しが行なわれた場合

getValue

java.lang.Object getValue(java.lang.String name)
推奨されていません。 バージョン 2.2 以降、このメソッドは getAttribute(java.lang.String) に置き換えられています。

パラメータ:
name - オブジェクトの名前を表す文字列
戻り値:
指定された名前を持つオブジェクト
例外:
java.lang.IllegalStateException - 無効なセッションについてこのメソッドの呼び出しが行なわれた場合

getAttributeNames

java.util.Enumeration getAttributeNames()
このセッションに結びつけられている全てのオブジェクトの名前を表す String オブジェクトの Enumeration オブジェクトを返します。

戻り値:
このセッションに結びつけられている全てのオブジェクトの名前を表す String オブジェクトの Enumeration
例外:
java.lang.IllegalStateException - 無効なセッションについてこのメソッドの呼び出しが行なわれた場合

getValueNames

java.lang.String[] getValueNames()
推奨されていません。 バージョン 2.2 以降、このメソッドは getAttributeNames() に置き換えられています。

戻り値:
このセッションに結びつけられている全てのオブジェクトの名前を表す String オブジェクトの配列
例外:
java.lang.IllegalStateException - 無効なセッションについてこのメソッドの呼び出しが行なわれた場合

setAttribute

void setAttribute(java.lang.String name,
                  java.lang.Object value)
指定された名前でこのセッションにオブジェクトを結びつけます。 同じ名前を持つオブジェクトが既にこのセッションに結びつけられている場合、そのオブジェクトを置き換えます。

セッションに結びつけようとしているオブジェクトが HttpSessionBindingListener を実装している場合は、このメソッドが呼び出された後にコンテナは HttpSessionBindingListener.valueBound メソッドを呼び出します。 さらにコンテナは Web アプリケーションが持つ全ての HttpSessionAttributeListener に通知します。

指定された名前を持つオブジェクトが既にこのセッションに結びつけられている場合、そのオブジェクトが HttpSessionBindingListener を実装しているならば、そのオブジェクトに対して HttpSessionBindingListener.valueUnbound メソッドが呼び出されます。

オブジェクトとして null が指定された場合は removeAttribute() が呼び出されたのと同じ動作をします。

パラメータ:
name - オブジェクトをセッションに結びつける際の名前。 null であってはいけません。
value - セッションに結びつけるオブジェクト
例外:
java.lang.IllegalStateException - 無効なセッションについてこのメソッドの呼び出しが行なわれた場合

putValue

void putValue(java.lang.String name,
              java.lang.Object value)
推奨されていません。 バージョン 2.2 以降、このメソッドは setAttribute(java.lang.String, java.lang.Object) に置き換えられています。

パラメータ:
name - オブジェクトをセッションに結びつける際の名前。 null であってはいけません。
value - セッションに結びつけるオブジェクト。 null であってはいけません
例外:
java.lang.IllegalStateException - 無効なセッションについてこのメソッドの呼び出しが行なわれた場合

removeAttribute

void removeAttribute(java.lang.String name)
指定された名前でセッションに結びつけられているオブジェクトをセッションから削除します。 指定された名前で結びつけられているオブジェクトがセッションに存在しない場合は何もしません。

オブジェクトが HttpSessionBindingListener を実装している場合、コンテナはこのメソッドを呼び出した後に HttpSessionBindingListener.valueUnbound を呼び出し、その後にWeb アプリケーション中の全ての HttpSessionAttributeListener に通知をします。

パラメータ:
name - セッションから削除するオブジェクトの名前
例外:
java.lang.IllegalStateException - 無効なセッションについてこのメソッドの呼び出しが行なわれた場合

removeValue

void removeValue(java.lang.String name)
推奨されていません。 バージョン 2.2 以降、このメソッドは removeAttribute(java.lang.String) に置き換えられています。

パラメータ:
name - セッションから削除するオブジェクトの名前
例外:
java.lang.IllegalStateException - 既に無効なセッションについてこのメソッドの呼び出しが行なわれた場合

invalidate

void invalidate()
セッションを無効にし、結びつけられている全てのオブジェクトを解放します。

例外:
java.lang.IllegalStateException - 既に無効なセッションについてこのメソッドの呼び出しが行なわれた場。

isNew

boolean isNew()
クライアントがこのセッションについてまだ知らない場合、もしくはクライアントがセッションに参加しない場合に true を返します。 例えば、サーバがクッキーを用いたセッションだけを利用しており、クライアントがクッキーを使用しない設定になっている場合は、リクエスト毎にセッションが生成されます。

戻り値:
サーバがセッションを生成したがクライアントがセッションに参加しない場合、true
例外:
java.lang.IllegalStateException - 既に無効なセッションについてこのメソッドの呼び出しが行なわれた場合

Mergedoc
Translation

Copyright © 2000- The Apache Software Foundation. All rights Reserved.