public interface HttpSession
サーブレットコンテナーはこのインターフェースを使用して、HTTP クライアントと HTTP サーバー間のセッションを作成します。セッションは、ユーザーからの複数の接続またはページリクエストにわたって、指定された期間持続します。通常、セッションは 1 人のユーザーに対応し、ユーザーは何度もサイトにアクセスします。サーバーは、Cookie の使用や URL の書き換えなど、さまざまな方法でセッションを維持できます。
このインターフェースにより、サーブレットは
アプリケーションがセッションにオブジェクトを保存したり、セッションからオブジェクトを削除すると、セッションはオブジェクトが HttpSessionBindingListener
を実装しているかどうかをチェックします。存在する場合、サーブレットはオブジェクトに、セッションにバインドされたか、セッションからアンバインドされたことを通知します。バインディングメソッドが完了すると、通知が送信されます。無効化または期限切れのセッションについては、セッションが無効化または期限切れになった後に通知が送信されます。
コンテナーが分散コンテナー設定で VM 間のセッションを移行すると、HttpSessionActivationListener
インターフェースを実装するすべてのセッション属性が通知されます。
サーブレットは、Cookie が意図的にオフにされている場合など、クライアントがセッションへの参加を選択しない場合を処理できる必要があります。クライアントがセッションに参加するまで、isNew
は true
を返します。クライアントがセッションに参加しないことを選択した場合、getSession
はリクエストごとに異なるセッションを返し、isNew
は常に true
を返します。
セッション情報のスコープは現在の Web アプリケーション(ServletContext
)のみであるため、あるコンテキストに保存された情報は別のコンテキストでは直接表示されません。
HttpSessionBindingListener
, HttpSessionContext
修飾子と型 | メソッドと説明 |
---|---|
ObjectSE | getAttribute(StringSE name) このセッションで指定された名前でバインドされたオブジェクトを返します。名前でオブジェクトがバインドされていない場合は null を返します。 |
EnumerationSE<StringSE> | getAttributeNames() このセッションにバインドされたすべてのオブジェクトの名前を含む String オブジェクトの Enumeration を返します。 |
long | getCreationTime() 1970 年 1 月 1 日 GMT 午前 0 時からミリ秒単位で測定された、このセッションが作成された時刻を返します。 |
StringSE | getId() このセッションに割り当てられた一意の識別子を含む文字列を返します。 |
long | getLastAccessedTime() クライアントがこのセッションに関連付けられたリクエストを最後に送信した時刻を、グリニッジ標準時 1970 年 1 月 1 日午前 0 時からのミリ秒数で返し、コンテナーがリクエストを受信した時間でマークします。 |
int | getMaxInactiveInterval() サーブレットコンテナーがクライアントアクセス間でこのセッションを開いたままにする最大時間間隔を秒単位で返します。 |
ServletContext | getServletContext() このセッションが属する ServletContext を返します。 |
HttpSessionContext | getSessionContext() 使用すべきではありません。 バージョン 2.1 以降、このメソッドは廃止され、代替はありません。Java Servlet API の将来のバージョンでは削除される予定です。 |
ObjectSE | getValue(StringSE name) 使用すべきではありません。 バージョン 2.2 では、このメソッドは getAttribute(java.lang.String) に置き換えられています。 |
StringSE[] | getValueNames() 使用すべきではありません。 バージョン 2.2 以降、このメソッドは getAttributeNames() に置き換えられました |
void | invalidate() このセッションを無効にし、それにバインドされているオブジェクトのバインドを解除します。 |
boolean | isNew() クライアントがセッションについてまだ知らない場合、またはクライアントがセッションに参加しないことを選択した場合、 true を返します。 |
void | putValue(StringSE name, ObjectSE value) 使用すべきではありません。 バージョン 2.2 以降、このメソッドは setAttribute(java.lang.String, java.lang.Object) に置き換えられました |
void | removeAttribute(StringSE name) 指定された名前でバインドされたオブジェクトをこのセッションから削除します。 |
void | removeValue(StringSE name) 使用すべきではありません。 バージョン 2.2 以降、このメソッドは removeAttribute(java.lang.String) に置き換えられました |
void | setAttribute(StringSE name, ObjectSE value) 指定した名前を使用して、オブジェクトをこのセッションにバインドします。 |
void | setMaxInactiveInterval(int interval) サーブレットコンテナーがこのセッションを無効化するまでのクライアントリクエスト間の時間を秒単位で指定します。 |
long getCreationTime()
long
。1/1/1970 GMT 以降のミリ秒で表されます IllegalStateExceptionSE
- 無効化されたセッションでこのメソッドが呼び出された場合 StringSE getId()
long getLastAccessedTime()
セッションに関連付けられた値の取得や設定など、アプリケーションが実行するアクションは、アクセス時間に影響しません。
long
。1/1/1970 GMT からのミリ秒単位で表されます IllegalStateExceptionSE
- 無効化されたセッションでこのメソッドが呼び出された場合 ServletContext getServletContext()
void setMaxInactiveInterval(int interval)
ゼロ以下の interval 値は、セッションがタイムアウトしないことを示します。
interval
- 秒数を指定する整数 int getMaxInactiveInterval()
setMaxInactiveInterval
メソッドで設定できます。ゼロ以下の戻り値は、セッションがタイムアウトしないことを示します。
setMaxInactiveInterval(int)
@DeprecatedSE HttpSessionContext getSessionContext()
HttpSessionContext
。ObjectSE getAttribute(StringSE name)
null
を返します。name
- オブジェクトの名前を指定する文字列 IllegalStateExceptionSE
- 無効化されたセッションでこのメソッドが呼び出された場合 @DeprecatedSE ObjectSE getValue(StringSE name)
getAttribute(java.lang.String)
に置き換えられました。name
- オブジェクトの名前を指定する文字列 IllegalStateExceptionSE
- 無効化されたセッションでこのメソッドが呼び出された場合 EnumerationSE<StringSE> getAttributeNames()
String
オブジェクトの Enumeration
を返します。String
オブジェクトの Enumeration
IllegalStateExceptionSE
- 無効化されたセッションでこのメソッドが呼び出された場合 @DeprecatedSE StringSE[] getValueNames()
getAttributeNames()
に置き換えられました。String
オブジェクトの配列 IllegalStateExceptionSE
- 無効化されたセッションでこのメソッドが呼び出された場合 void setAttribute(StringSE name, ObjectSE value)
このメソッドの実行後、新しいオブジェクトが HttpSessionBindingListener
を実装する場合、コンテナーは HttpSessionBindingListener.valueBound
を呼び出します。その後、コンテナーは Web アプリケーションの HttpSessionAttributeListener
を通知します。
HttpSessionBindingListener
を実装するこの名前のこのセッションにオブジェクトがすでにバインドされている場合、その HttpSessionBindingListener.valueUnbound
メソッドが呼び出されます。
渡された値が null の場合、これは removeAttribute()
を呼び出すのと同じ効果があります。
name
- オブジェクトがバインドされている名前。null にすることはできません value
- バインドされるオブジェクト IllegalStateExceptionSE
- 無効化されたセッションでこのメソッドが呼び出された場合 @DeprecatedSE void putValue(StringSE name, ObjectSE value)
setAttribute(java.lang.String, java.lang.Object)
に置き換えられました。name
- オブジェクトがバインドされている名前。null にすることはできません value
- バインドされるオブジェクト。null にすることはできません IllegalStateExceptionSE
- 無効化されたセッションでこのメソッドが呼び出された場合 void removeAttribute(StringSE name)
このメソッドの実行後、オブジェクトが HttpSessionBindingListener
を実装している場合、コンテナーは HttpSessionBindingListener.valueUnbound
を呼び出します。その後、コンテナーは Web アプリケーションの HttpSessionAttributeListener
を通知します。
name
- このセッションから削除するオブジェクトの名前 IllegalStateExceptionSE
- 無効化されたセッションでこのメソッドが呼び出された場合 @DeprecatedSE void removeValue(StringSE name)
removeAttribute(java.lang.String)
に置き換えられました。name
- このセッションから削除するオブジェクトの名前 IllegalStateExceptionSE
- 無効化されたセッションでこのメソッドが呼び出された場合 void invalidate()
IllegalStateExceptionSE
- このメソッドがすでに無効化されたセッションで呼び出された場合 boolean isNew()
true
を返します。例: サーバーが Cookie ベースのセッションのみを使用し、クライアントが Cookie の使用を無効にした場合、セッションはリクエストごとに新しくなります。true
IllegalStateExceptionSE
- このメソッドがすでに無効化されたセッションで呼び出された場合 Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.