|
Mergedoc Translation |
||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface HttpSession
ユーザが Web サイト内の複数のページを訪れる際にユーザを識別したりユーザに関する情報を保存するための方法を提供します。
Servlet コンテナは HTTP クライアントと HTTP サーバの間にセッションを生成するためにこのインタフェースを使用します。 セッションはユーザからの複数回の接続すなわちページリクエストに跨って、指定された期間持続します。 通常 1 セッションはサイトをよく訪れる1ユーザに対応します。 サーバは Cookie を利用したり URL を書き直したりといった様々な方法でセッションを維持します。
Servlet はこのインタフェースを用いて次のようなことができます。
アプリケーションがセッションにオブジェクトを結び付けたりセッションからオブジェクトを削除したりする際に、セッションはそのオブジェクトが HttpSessionBindingListener
を実装しているかどうかを調べます。
実装しているならば、Servlet はそのオブジェクトに対してセッションに結び付けられたのかセッションから削除されたのかといった通知を行ないます。
通知は結び付けや削除メソッドが完了した後に送られます。
また、無効化されたり期限の切れたセッションの場合、通知はセッションが無効になったか期限切れになった後に送られます。
分散 Servlet コンテナとして設定されている Servlet コンテナが VM 間でセッションを移動させる時には、HttpSessionActivationListener
インタフェースを実装している全てのセッションの属性に対して通知が行なわれます。
Serlvet は例えば Cookie が明示的に無効になっている場合などの、クライアントがセッションに参加しないことを選ぶケースを扱うことができるべきです。
クライアントがセッションに参加するまでは isNew
は true
を返します。
クライアントがセッションに参加しないことを選んだ場合、getSession
はリクエスト毎に異なるセッションを返します。
また isNew
は常に true
を返します。
セッション情報は現在の Web アプリケーション (ServletContext
) でのみ参照可能です。
従って、あるコンテキストに保存された情報は他のコンテキストからは直接参照することはできません。
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 コンテナがクライアントから最後にリクエストを受けてからこのセッションを無効化するまでの最大の秒数を指定します。 |
メソッドの詳細 |
---|
long getCreationTime()
long
値。
この値は1970年1月1日グリニッジ標準時 00:00:00.000 からの経過時間をミリ秒で表したもの
java.lang.IllegalStateException
- 無効なセッションについてこのメソッドの呼び出しが行なわれた場合java.lang.String getId()
java.lang.IllegalStateException
- 無効なセッションについてこのメソッドの呼び出しが行なわれた場合long getLastAccessedTime()
セッションに関連づけられている値を取得したり設定したりといったアクションをアプリケーションが受けても、このアクセス時刻は更新されません。
long
値。
返される値は、1970年1月1日グリニッジ標準時 00:00:00.000 からの経過時間をミリ秒で表した数値
java.lang.IllegalStateException
- 無効なセッションについてこのメソッドの呼び出しが行なわれた場合ServletContext getServletContext()
void setMaxInactiveInterval(int interval)
interval
- 秒数を表す整数値int getMaxInactiveInterval()
setMaxInactiveInterval
メソッドで設定することができます。
この値が負の値である場合、セッションはタイムアウトしません。
setMaxInactiveInterval(int)
HttpSessionContext getSessionContext()
java.lang.Object getAttribute(java.lang.String name)
null
を返します。
name
- オブジェクトの名前を表す文字列
java.lang.IllegalStateException
- 無効なセッションについてこのメソッドの呼び出しが行なわれた場合java.lang.Object getValue(java.lang.String name)
getAttribute(java.lang.String)
に置き換えられています。
name
- オブジェクトの名前を表す文字列
java.lang.IllegalStateException
- 無効なセッションについてこのメソッドの呼び出しが行なわれた場合java.util.Enumeration getAttributeNames()
String
オブジェクトの Enumeration
オブジェクトを返します。
String
オブジェクトの Enumeration
java.lang.IllegalStateException
- 無効なセッションについてこのメソッドの呼び出しが行なわれた場合java.lang.String[] getValueNames()
getAttributeNames()
に置き換えられています。
String
オブジェクトの配列
java.lang.IllegalStateException
- 無効なセッションについてこのメソッドの呼び出しが行なわれた場合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
- 無効なセッションについてこのメソッドの呼び出しが行なわれた場合void putValue(java.lang.String name, java.lang.Object value)
setAttribute(java.lang.String, java.lang.Object)
に置き換えられています。
name
- オブジェクトをセッションに結びつける際の名前。
null であってはいけません。value
- セッションに結びつけるオブジェクト。
null であってはいけません
java.lang.IllegalStateException
- 無効なセッションについてこのメソッドの呼び出しが行なわれた場合void removeAttribute(java.lang.String name)
オブジェクトが HttpSessionBindingListener
を実装している場合、コンテナはこのメソッドを呼び出した後に HttpSessionBindingListener.valueUnbound
を呼び出し、その後にWeb アプリケーション中の全ての HttpSessionAttributeListener
に通知をします。
name
- セッションから削除するオブジェクトの名前
java.lang.IllegalStateException
- 無効なセッションについてこのメソッドの呼び出しが行なわれた場合void removeValue(java.lang.String name)
removeAttribute(java.lang.String)
に置き換えられています。
name
- セッションから削除するオブジェクトの名前
java.lang.IllegalStateException
- 既に無効なセッションについてこのメソッドの呼び出しが行なわれた場合void invalidate()
java.lang.IllegalStateException
- 既に無効なセッションについてこのメソッドの呼び出しが行なわれた場。boolean isNew()
true
を返します。
例えば、サーバがクッキーを用いたセッションだけを利用しており、クライアントがクッキーを使用しない設定になっている場合は、リクエスト毎にセッションが生成されます。
true
java.lang.IllegalStateException
- 既に無効なセッションについてこのメソッドの呼び出しが行なわれた場合
|
Mergedoc Translation |
||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |