public interface RequestAttributes
あらゆる種類のリクエスト / セッションメカニズム、特にサーブレットリクエストに対して実装できます。
ServletRequestAttributes
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | REFERENCE_REQUEST リクエストオブジェクトへの標準参照の名前: 「リクエスト」。 |
static StringSE | REFERENCE_SESSION セッションオブジェクトへの標準参照の名前: 「セッション」。 |
static int | SCOPE_REQUEST リクエストのスコープを示す定数。 |
static int | SCOPE_SESSION セッションのスコープを示す定数。 |
修飾子と型 | メソッドと説明 |
---|---|
ObjectSE | getAttribute(StringSE name, int scope) 指定された名前のスコープ付き属性の値を返します(ある場合)。 |
StringSE[] | getAttributeNames(int scope) スコープ内のすべての属性の名前を取得します。 |
StringSE | getSessionId() 現在の基本的なセッションの ID を返します。 |
ObjectSE | getSessionMutex() 基盤となるセッションで利用可能な最良のミューテックス、つまり、基盤となるセッションで同期するオブジェクトを公開します。 |
void | registerDestructionCallback(StringSE name, RunnableSE callback, int scope) 指定されたスコープ内の指定された属性の破棄時に実行されるコールバックを登録します。 |
void | removeAttribute(StringSE name, int scope) 指定された名前のスコープ属性が存在する場合は削除します。 |
ObjectSE | resolveReference(StringSE key) 指定されたキーのコンテキスト参照を解決します(ある場合)。 |
void | setAttribute(StringSE name, ObjectSE value, int scope) 指定された名前のスコープ属性の値を設定し、既存の値(存在する場合)を置き換えます。 |
static final int SCOPE_REQUEST
static final int SCOPE_SESSION
これは、そのような区別が利用できる場合、ローカルに分離されたセッションを指します。それ以外の場合は、単に共通セッションを指します。
static final StringSE REFERENCE_REQUEST
static final StringSE REFERENCE_SESSION
@Nullable ObjectSE getAttribute(StringSE name, int scope)
name
- 属性の名前 scope
- スコープ識別子 null
void setAttribute(StringSE name, ObjectSE value, int scope)
name
- 属性の名前 scope
- スコープ識別子 value
- 属性の値 void removeAttribute(StringSE name, int scope)
実装では、指定された属性に登録されている破棄コールバックも削除する必要があることに注意してください。ただし、この場合、登録された破棄コールバックを実行する必要はありません。オブジェクトが呼び出し側によって破棄されるためです(該当する場合)。
name
- 属性の名前 scope
- スコープ識別子 StringSE[] getAttributeNames(int scope)
scope
- スコープ識別子 void registerDestructionCallback(StringSE name, RunnableSE callback, int scope)
実装は、適切なときに、つまり、それぞれリクエストの補完時またはセッションの終了時にコールバックを実行するために最善を尽くす必要があります。そのようなコールバックが基本的なランタイム環境でサポートされていない場合は、コールバックを無視して、対応する警告をログに記録する必要があります。
「破棄」は通常、スコープ全体の破棄に対応し、アプリケーションによって明示的に削除された個々の属性には対応しないことに注意してください。このファサードの removeAttribute(String, int)
メソッドを介して属性が削除された場合、削除されたオブジェクトが再利用されるか手動で破棄されると想定して、登録されている破棄コールバックも無効にする必要があります。
注意 : コールバックオブジェクトは、セッションスコープに登録されている場合、通常は直列化可能である必要があります。そうしないと、コールバック(またはセッション全体)が Web アプリの再起動に耐えられない可能性があります。
name
- コールバックを登録する属性の名前 callback
- 実行される破棄コールバック scope
- スコープ識別子 @Nullable ObjectSE resolveReference(StringSE key)
最低でも: キー「リクエスト」の HttpServletRequest リファレンス、およびキー「セッション」の HttpSession リファレンス。
key
- コンテキストキー null
StringSE getSessionId()
null
)ObjectSE getSessionMutex()
null
)