public interface HttpSession
サーブレットコンテナはこのインターフェースを使用してHTTPクライアントとHTTPサーバーの間のセッションを作成します。 セッションは指定された期間ユーザーからの複数の接続またはページリクエストにわたって永続化されます。 1つのセッションは通常、何回もサイトにアクセスする1人のユーザーに対応しています。 サーバーはCookieを使用したりURLを書き換えたりすることでセッションを維持できます。
このインターフェースによりサーブレットは以下のようなことができます。
アプリケーションがセッションにオブジェクトを格納したり削除したりすると、
セッションはそのオブジェクトが HttpSessionBindingListener
を実装しているかどうかをチェックします。
そうであれば、サーブレットはオブジェクトにセッションに格納されたこと、削除されたことをオブジェクトに通知します。格納、削除のメソッドの完了後に通知が送信されます。
セッションが無効または期限切れになった場合はその後に通知が送信されます。
コンテナが分散コンテナ設定のVM間でセッションを移動した場合はHttpSessionActivationListener
インターフェイスを実装するすべてのセッション属性が通知されます。
サーブレットはCookieが意図的にオフになったときなど、クライアントがセッションに参加しないことを選択したケースを処理できる必要があります。
クライアントがセッションに参加するまで、 isNew
はtrue
を返します 。
クライアントがセッションに参加しないことを選択した場合、 getSession
は各リクエストで異なるセッションを返し、isNew
は常にtrue
を返します。
セッション情報は現在のWebアプリケーション(ServletContext
)のみにスコープが設定されているため、あるコンテキストに格納されている情報は別のコンテキストでは直接参照されません。
HttpSessionBindingListener
,
HttpSessionContext
修飾子とタイプ | メソッドと説明 |
---|---|
Object |
getAttribute(String name)
このセッションに指定された名前で設定されたオブジェクトを返します。
|
Enumeration<String> |
getAttributeNames()
セッションに関連付けられたオブジェクトを示すすべての名前を含んだ
String オブジェクトのEnumeration を返します。 |
long |
getCreationTime()
セッションが作られた日時を1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数で返します。
|
String |
getId()
このセッションに割り当てられた一意の識別子を含む文字列を返します。
|
long |
getLastAccessedTime()
このセッションによって関連付けられたクライアントが最後にリクエストを投げ
コンテナが受信した日時を1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数で返します。
|
int |
getMaxInactiveInterval()
サーブレットコンテナがこのセッションをクライアントからのアクセスの間に保持し続ける最大の間隔を秒単位で返します。
|
ServletContext |
getServletContext()
セッションが所属するServletContextを返します。
|
HttpSessionContext |
getSessionContext()
非推奨です。
セキュリティの理由によりJava(tm) Servlet API 2.1以降非推奨です。
代替手段はありません。
のちのバージョンでこのAPIは削除されます。
|
Object |
getValue(String name)
非推奨です。
Version 2.2から
getAttribute(java.lang.String) に置き換えられました |
String[] |
getValueNames()
非推奨です。
Version 2.2から
getAttributeNames() に置き換えられました |
void |
invalidate()
このセッションを保存されているすべての値を取り除いてから無効化します。
|
boolean |
isNew()
クライアントがセッションについてまだ認識していない場合、
またはクライアントがセッションに参加しないことを選択した場合は
true を返します。 |
void |
putValue(String name,
Object value)
非推奨です。
Version 2.2から
setAttribute(java.lang.String, java.lang.Object) に置き換えられました |
void |
removeAttribute(String name)
このセッションから指定された名前で存在するオブジェクトを削除します。
|
void |
removeValue(String name)
非推奨です。
Version 2.2から
removeAttribute(java.lang.String) に置き換えられました |
void |
setAttribute(String name,
Object value)
指定された名前を使用して、このセッションにオブジェクトを追加します。
|
void |
setMaxInactiveInterval(int interval)
サーブレットコンテナがこのセッションを無効にするまでのクライアントからのリクエストの最大の間隔を秒単位で指定します。
|
long getCreationTime()
long
IllegalStateException
- もしこのメソッドが無効なセッションで呼び出された場合String getId()
long getLastAccessedTime()
アプリケーションが実行したセッションに関連付けられた値の取得や設定などのアクションはアクセス時間に影響しません。
long
IllegalStateException
- もしこのメソッドが無効なセッションで呼び出された場合ServletContext getServletContext()
void setMaxInactiveInterval(int interval)
0以下の interval の値はセッションがタイムアウトしないほうが良いことを示します。
interval
- 秒数を指定する整数int getMaxInactiveInterval()
setMaxInactiveInterval
メソッドで設定できます。
0以下の戻り値はセッションが決してタイムアウトしないことを示します。
setMaxInactiveInterval(int)
@Deprecated HttpSessionContext getSessionContext()
HttpSessionContext
Object getAttribute(String name)
null
を返します。name
- オブジェクトの名前を示す文字列IllegalStateException
- もしこのメソッドが無効なセッションで呼び出された場合@Deprecated Object getValue(String name)
getAttribute(java.lang.String)
に置き換えられましたname
- オブジェクトの名前を示す文字列IllegalStateException
- もしこのメソッドが無効なセッションで呼び出された場合Enumeration<String> getAttributeNames()
String
オブジェクトのEnumeration
を返します。String
オブジェクトのEnumeration
IllegalStateException
- もしこのメソッドが無効なセッションで呼び出された場合@Deprecated String[] getValueNames()
getAttributeNames()
に置き換えられましたString
オブジェクトの配列IllegalStateException
- もしこのメソッドが無効なセッションで呼び出された場合void setAttribute(String name, Object value)
このメソッドの実行後、新しいオブジェクトがHttpSessionBindingListener
を実装する場合、
コンテナはHttpSessionBindingListener.valueBound
を呼び出します。
次にコンテナはWebアプリケーション内のHttpSessionAttributeListener
に通知します。
このセッションにすでに存在したオブジェクトがHttpSessionBindingListener
を実装している場合はHttpSessionBindingListener.valueUnbound
メソッドが呼び出されます。
渡された値がnullの場合はremoveAttribute()を呼び出すのと同じ効果があります。
name
- オブジェクトを追加する名前;nullにはできないvalue
- 追加されるオブジェクトIllegalStateException
- もしこのメソッドが無効なセッションで呼び出された場合@Deprecated void putValue(String name, Object value)
setAttribute(java.lang.String, java.lang.Object)
に置き換えられましたname
- オブジェクトを追加する名前;nullにはできないvalue
- 追加されるオブジェクト;nullにはできないIllegalStateException
- もしこのメソッドが無効なセッションで呼び出された場合void removeAttribute(String name)
オブジェクトがHttpSessionBindingListener
を実装する場合はこのメソッドの実行後に
コンテナはHttpSessionBindingListener.valueUnbound
を呼び出します。
次にコンテナはWebアプリケーション内のHttpSessionAttributeListener
に通知します。
name
- セッションから取り除くオブジェクトの名前IllegalStateException
- もしこのメソッドが無効なセッションで呼び出された場合@Deprecated void removeValue(String name)
removeAttribute(java.lang.String)
に置き換えられましたname
- セッションから取り除くオブジェクトの名前IllegalStateException
- もしこのメソッドが無効なセッションで呼び出された場合void invalidate()
IllegalStateException
- すでに無効になっているセッションで呼び出された場合boolean isNew()
true
を返します。
たとえば、サーバーがCookieベースのセッションのみを使用し、クライアントがCookieの使用を無効にしていた場合、
セッションは各リクエストに対して新しく生成されます。true
ならばサーバーがセッションを作成したが、クライアントはセッションに参加していないIllegalStateException
- もしこのメソッドが無効なセッションで呼び出された場合Copyright © 1999-2017, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms. Portions Copyright © 1999-2002 The Apache Software Foundation. Portions Copyright © 2017- @megascus. Translated by @megascus.