public interface WebRequest extends RequestAttributes
WebRequestInterceptor
REFERENCE_REQUEST, REFERENCE_SESSION, SCOPE_REQUEST, SCOPE_SESSION
修飾子と型 | メソッドと説明 |
---|---|
boolean | checkNotModified(long lastModifiedTimestamp) 提供された最終変更タイムスタンプ(アプリケーションによって決定)を使用して、リクエストされたリソースが変更されたかどうかを確認します。 |
boolean | checkNotModified(StringSE etag) 提供された ETag (エンティティタグ)を使用して、アプリケーションによって決定された、リクエストされたリソースが変更されたかどうかを確認します。 |
boolean | checkNotModified(StringSE etag, long lastModifiedTimestamp) 提供された ETag (エンティティタグ)およびアプリケーションによって決定された最終変更タイムスタンプを指定して、リクエストされたリソースが変更されたかどうかを確認します。 |
StringSE | getContextPath() このリクエストのコンテキストパスを返します(通常、現在の Web アプリケーションがマップされているベースパス)。 |
StringSE | getDescription(boolean includeClientInfo) 通常、リクエスト URI とセッション ID を含む、このリクエストの簡単な説明を取得します。 |
StringSE | getHeader(StringSE headerName) 指定された名前のリクエストヘッダーを返します。ない場合は null を返します。 |
IteratorSE<StringSE> | getHeaderNames() リクエストヘッダー名のイテレーターを返します。 |
StringSE[] | getHeaderValues(StringSE headerName) 指定されたヘッダー名のリクエストヘッダー値を返します。ない場合は null を返します。 |
LocaleSE | getLocale() このリクエストのプライマリロケールを返します。 |
StringSE | getParameter(StringSE paramName) 指定された名前のリクエストパラメーター、または存在しない場合は null を返します。 |
MapSE<StringSE, StringSE[]> | getParameterMap() パラメーター名をマップキー、パラメーター値をマップ値として、リクエストパラメーターの不変のマップを返します。 |
IteratorSE<StringSE> | getParameterNames() リクエストパラメーター名のイテレーターを返します。 |
StringSE[] | getParameterValues(StringSE paramName) 指定されたパラメーター名のリクエストパラメーター値を返します。ない場合は null を返します。 |
StringSE | getRemoteUser() 存在する場合、このリクエストのリモートユーザーを返します。 |
PrincipalSE | getUserPrincipal() このリクエストのユーザープリンシパルがあれば、それを返します。 |
boolean | isSecure() このリクエストが安全な転送メカニズム(SSL など)を介して送信されたかどうかを返します。 |
boolean | isUserInRole(StringSE role) ユーザーがこのリクエストに対して指定されたロールを持っているかどうかを判断します。 |
getAttribute, getAttributeNames, getSessionId, getSessionMutex, registerDestructionCallback, removeAttribute, resolveReference, setAttribute
@Nullable StringSE getHeader(StringSE headerName)
null
を返します。複数値ヘッダーの場合、最初のヘッダー値を取得します。
HttpServletRequest.getHeader(String)
EE@Nullable StringSE[] getHeaderValues(StringSE headerName)
null
を返します。単一値のヘッダーは、単一の要素を持つ配列として公開されます。
HttpServletRequest.getHeaders(String)
EEIteratorSE<StringSE> getHeaderNames()
HttpServletRequest.getHeaderNames()
EE@Nullable StringSE getParameter(StringSE paramName)
null
を返します。複数値パラメーターの場合、最初のパラメーター値を取得します。
@Nullable StringSE[] getParameterValues(StringSE paramName)
null
を返します。単一値パラメーターは、単一の要素を持つ配列として公開されます。
IteratorSE<StringSE> getParameterNames()
ServletRequest.getParameterNames()
EEMapSE<StringSE,StringSE[]> getParameterMap()
単一値パラメーターは、単一の要素を持つ配列として公開されます。
LocaleSE getLocale()
StringSE getContextPath()
@Nullable PrincipalSE getUserPrincipal()
boolean isUserInRole(StringSE role)
boolean isSecure()
boolean checkNotModified(long lastModifiedTimestamp)
これにより、"Last-Modified" レスポンスヘッダーと HTTP ステータスが透過的に設定されます(該当する場合)。
典型的な使用箇所:
public String myHandleMethod(WebRequest request, Model model) { long lastModified = // application-specific calculation if (request.checkNotModified(lastModified)) { // shortcut exit - no further processing necessary return null; } // further request processing, actually building content model.addAttribute(...); return "myViewName"; }
このメソッドは、条件付きの GET/HEAD リクエストで機能しますが、条件付きの POST/PUT/DELETE リクエストでも機能します。
注意 : この #checkNotModified(long)
メソッドのいずれかを使用できます。または checkNotModified(String)
。HTTP 仕様で推奨されているように、強力なエンティティタグと Last-Modified 値の両方を適用する場合は、checkNotModified(String, long)
を使用する必要があります。
"If-Modified-Since" ヘッダーが設定されているが日付値に解析できない場合、このメソッドはヘッダーを無視し、レスポンスの最終変更タイムスタンプの設定に進みます。
lastModifiedTimestamp
- アプリケーションが基礎となるリソースに対して決定したミリ秒単位の最終変更タイムスタンプ boolean checkNotModified(StringSE etag)
ETag
(エンティティタグ)を使用して、アプリケーションによって決定された、リクエストされたリソースが変更されたかどうかを確認します。これにより、該当する場合は "ETag" レスポンスヘッダーと HTTP ステータスが透過的に設定されます。
典型的な使用箇所:
public String myHandleMethod(WebRequest request, Model model) { String eTag = // application-specific calculation if (request.checkNotModified(eTag)) { // shortcut exit - no further processing necessary return null; } // further request processing, actually building content model.addAttribute(...); return "myViewName"; }
注意 : この #checkNotModified(String)
メソッドのいずれかを使用できます。または checkNotModified(long)
。HTTP 仕様で推奨されているように、強力なエンティティタグと Last-Modified 値の両方を適用する場合は、checkNotModified(String, long)
を使用する必要があります。
etag
- アプリケーションが基になるリソースに対して決定したエンティティタグ。このパラメーターには、必要に応じて引用符(")が埋め込まれます。boolean checkNotModified(@Nullable StringSE etag, long lastModifiedTimestamp)
ETag
(エンティティタグ)およびアプリケーションによって決定された最終変更タイムスタンプを指定して、リクエストされたリソースが変更されたかどうかを確認します。これにより、"ETag" と "Last-Modified" のレスポンスヘッダー、および該当する場合は HTTP ステータスが透過的に設定されます。
典型的な使用箇所:
public String myHandleMethod(WebRequest request, Model model) { String eTag = // application-specific calculation long lastModified = // application-specific calculation if (request.checkNotModified(eTag, lastModified)) { // shortcut exit - no further processing necessary return null; } // further request processing, actually building content model.addAttribute(...); return "myViewName"; }
このメソッドは、条件付きの GET/HEAD リクエストで機能しますが、条件付きの POST/PUT/DELETE リクエストでも機能します。
注意 : HTTP 仕様では、ETag 値と Last-Modified 値の両方を設定することを推奨していますが、#checkNotModified(String)
または checkNotModified(long)
を使用することもできます。
etag
- アプリケーションが基になるリソースに対して決定したエンティティタグ。このパラメーターには、必要に応じて引用符(")が埋め込まれます。lastModifiedTimestamp
- アプリケーションが基礎となるリソースに対して決定したミリ秒単位の最終変更タイムスタンプ StringSE getDescription(boolean includeClientInfo)
includeClientInfo
- セッション ID やユーザー名などのクライアント固有の情報を含めるかどうか