|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
複数ページにわたる要求により Web サイトの閲覧を行うユーザを一意に識別し、そのユーザについての情報を格納する方法を提供します。
サーブレットコンテナは、このインタフェースを使用して、HTTP クライアントと HTTP サーバ間にセッションを作成します。セッションは、ユーザからの複数の接続すなわちページ要求にまたがって一定期間持続します。通常 1 つのセッションはサイトに何度も接続する 1 人のユーザに対応します。サーバは、クッキーの使用や URL の書き換えなどといったさまざまな方法で、セッションを維持することができます。
このインタフェースによって、サーブレットは次のことを実行できます。
アプリケーションがセッション内にオブジェクトを格納したり、セッションからオブジェクトを削除したりする際に、セッションは、オブジェクトが HttpSessionBindingListener を実装しているかどうかをチェックします。実装している場合は、セッションにオブジェクトがバインドされたこと、またはセッションからオブジェクトがアンバインドされたことを、サーブレットからオブジェクトに通知します。通知は、バインドあるいはアンバインドのメソッドが終了した後に、送信されます。無効化されたり、期限切れになったりしたセッションの場合は、セッションが無効化されたり、期限切れになったりした後に通知が送信されます。
分散コンテナの場合、セッションが VM 間を移動すると、HttpSessionActivationListener インタフェースを実装しているすべてのセッション属性に対して通知が行われます。
サーブレットは、クッキーが意図的にオフにされた場合など、クライアントがセッションへの参加を選択しない場合に対処できるようにする必要があります。クライアントがセッションに参加するまで、isNew は true を返します。クライアントがセッションに参加しない場合、getSession は各要求に対して別のセッションを返し、isNew は常に true を返します。
セッション情報の有効範囲は現在の Web アプリケーション (ServletContext) のみなので、1 つのコンテキスト内に格納された情報を、別のコンテキスト内で直接見ることはできません。
HttpSessionBindingListener,
HttpSessionContext| メソッドの概要 | |
java.lang.Object |
getAttribute(java.lang.String name)
指定された名前でこのセッションにバインドされたオブジェクトを返します。 |
java.util.Enumeration |
getAttributeNames()
このセッションにバインドされたすべてのオブジェクトの名前が格納された、 String オブジェクトの Enumeration を返します。 |
long |
getCreationTime()
このセッションが作成された時刻を、GMT 1970年 1 月 1 日 0 時からのミリ秒単位で返します。 |
java.lang.String |
getId()
このセッションに割り当てられた一意の識別子が格納された文字列を返します。 |
long |
getLastAccessedTime()
このセッションに関連付けられた要求をクライアントが最後に送信した時刻を GMT 1970 年 1 月 1 日 0 時からのミリ秒数として返します。 |
int |
getMaxInactiveInterval()
クライアントのアクセスとアクセスの間に、サーブレットコンテナがこのセッションを保ち続ける最大の時間間隔を秒数で返します。 |
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)
サーブレットコンテナがこのセッションを無効化するまでの、クライアントの要求と要求の間の時間を秒数で指定します。 |
| メソッドの詳細 |
public long getCreationTime()
longjava.lang.IllegalStateException - 無効化されたセッションでこのメソッドが呼び出された場合public java.lang.String getId()
java.lang.IllegalStateException - 無効化されたセッションでこのメソッドが呼び出された場合public long getLastAccessedTime()
セッションに関連付けられた値の取得や設定といった操作をアプリケーションが実行しても、このアクセス時刻は更新されません。
longjava.lang.IllegalStateException - 無効化されたセッションでこのメソッドが呼び出された場合public ServletContext getServletContext()
public void setMaxInactiveInterval(int interval)
interval - 秒数を指定する整数public int getMaxInactiveInterval()
setMaxInactiveInterval メソッドで設定できます。負の値は、セッションがタイムアウトにならないことを示します。setMaxInactiveInterval(int)public HttpSessionContext getSessionContext()
public java.lang.Object getAttribute(java.lang.String name)
null を返します。name - オブジェクトの名前を指定する文字列java.lang.IllegalStateException - 無効化されたセッションでこのメソッドが呼び出された場合public java.lang.Object getValue(java.lang.String name)
getAttribute(java.lang.String) に置き換えられています。
name - オブジェクトの名前を指定する文字列java.lang.IllegalStateException - 無効化されたセッションでこのメソッドが呼び出された場合public java.util.Enumeration getAttributeNames()
String オブジェクトの Enumeration を返します。String オブジェクトの Enumerationjava.lang.IllegalStateException - 無効化されたセッションでこのメソッドが呼び出された場合public java.lang.String[] getValueNames()
getAttributeNames() に置き換えられています。
String オブジェクトの配列java.lang.IllegalStateException - 無効化されたセッションでこのメソッドが呼び出された場合
public 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 - 無効化されたセッションでこのメソッドが呼び出された場合
public void putValue(java.lang.String name,
java.lang.Object value)
setAttribute(java.lang.String, java.lang.Object) に置き換えられています。
name - オブジェクトがバインドされる名前。null であってはならないvalue - バインドされるオブジェクト。null であってはならないjava.lang.IllegalStateException - 無効化されたセッションでこのメソッドが呼び出された場合public void removeAttribute(java.lang.String name)
オブジェクトが HttpSessionBindingListener を実装している場合は、このメソッドが実行された後にコンテナが HttpSessionBindingListener.valueUnbound を呼び出します。次にコンテナは、Web アプリケーション内の HttpSessionAttributeListener に通知します。
name - このセッションから削除されるオブジェクトの名前java.lang.IllegalStateException - 無効化されたセッションでこのメソッドが呼び出された場合public void removeValue(java.lang.String name)
removeAttribute(java.lang.String) に置き換えられています。
name - このセッションから削除されるオブジェクトの名前java.lang.IllegalStateException - 無効化されたセッションでこのメソッドが呼び出された場合public void invalidate()
java.lang.IllegalStateException - すでに無効化されたセッションでこのメソッドが呼び出された場合public boolean isNew()
true を返します。たとえば、サーバがクッキーベースのセッションのみを使用し、クライアントがクッキーの使用を無効にした場合は、要求ごとに新しいセッションが生成されます。truejava.lang.IllegalStateException - すでに無効化されたセッションでこのメソッドが呼び出された場合
|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||