クラス WebContentGenerator
- 実装されたすべてのインターフェース:
Aware
、ApplicationContextAware
、ServletContextAware
- 既知の直属サブクラス
AbstractController
、AbstractHandlerMethodAdapter
、ResourceHttpRequestHandler
、WebContentInterceptor
AbstractController
や WebContentInterceptor
など、あらゆる種類の Web コンテンツジェネレーターに便利なスーパークラス。独自の HandlerAdapter
を持つカスタムハンドラーにも使用できます。HTTP キャッシュ制御オプションをサポートします。対応する HTTP ヘッダーの使用は、"cacheSeconds"
および "cacheControl"
プロパティを介して制御できます。
注意 : Spring 4.2 以降、setCacheSeconds(int)
のみを使用すると、このジェネレーターのデフォルトの動作が変更され、現在のブラウザーとプロキシの実装と一致する HTTP レスポンスヘッダーが送信されます(つまり、HTTP 1.0 ヘッダーはもうありません)。以前の動作に戻すには、新しく廃止されたメソッド setUseExpiresHeader(boolean)
、setUseCacheControlHeader(boolean)
、setUseCacheControlNoStore(boolean)
または setAlwaysMustRevalidate(boolean)
。
- 作成者:
- Rod Johnson, Juergen Hoeller, Brian Clozel, Rossen Stoyanchev
- 関連事項:
フィールドサマリー
修飾子と型フィールド説明protected static final StringSE
static final StringSE
HTTP メソッド "GET"。static final StringSE
HTTP メソッド "HEAD"。static final StringSE
HTTP メソッド "POST"。クラス org.springframework.context.support.ApplicationObjectSupport から継承されたフィールド
logger
コンストラクターのサマリー
コンストラクター説明HTTP メソッド GET、HEAD、POST をデフォルトでサポートする新しい WebContentGenerator を作成します。WebContentGenerator
(boolean restrictDefaultSupportedMethods) 新しい WebContentGenerator を作成します。WebContentGenerator
(StringSE... supportedMethods) 新しい WebContentGenerator を作成します。メソッドのサマリー
修飾子と型メソッド説明protected final void
applyCacheControl
(HttpServletResponseEE response, CacheControl cacheControl) 指定された設定に従って HTTP Cache-Control ヘッダーを設定します。protected final void
applyCacheSeconds
(HttpServletResponseEE response, int cacheSeconds) 指定されたキャッシュ秒を適用し、対応する HTTP ヘッダーを生成します。protected final void
applyCacheSeconds
(HttpServletResponseEE response, int cacheSeconds, boolean mustRevalidate) 使用すべきではありません。protected final void
cacheForSeconds
(HttpServletResponseEE response, int seconds) protected final void
cacheForSeconds
(HttpServletResponseEE response, int seconds, boolean mustRevalidate) protected final void
checkAndPrepare
(HttpServletRequestEE request, HttpServletResponseEE response, int cacheSeconds, boolean lastModified) 使用すべきではありません。4.2 の時点で、lastModified
フラグは事実上無視され、明示的に構成されている場合にのみ must-revalidate ヘッダーが生成されるためprotected final void
checkRequest
(HttpServletRequestEE request) サポートされているメソッドと必要なセッションがある場合は、指定されたリクエストを確認してください。protected StringSE
構成済みのsupported methods
に基づく HTTP OPTIONS リクエストへのレスポンスで使用する "Allow" ヘッダー値を返します。サポートされるメソッドとして存在しない場合でも、リストに "OPTIONS" を自動的に追加します。final CacheControl
Cache-Control HTTP レスポンスヘッダーを作成するCacheControl
インスタンスを取得します。final int
コンテンツがキャッシュされる秒数を返します。final StringSE[]
このコンテンツジェネレーターがサポートする HTTP メソッドを返します。final StringSE[]
"Vary" レスポンスヘッダーの構成済みリクエストヘッダー名を返します。final boolean
使用すべきではありません。4.2 現在、getCacheControl()
を推奨final boolean
リクエストの処理にセッションが必要かどうかを返します。final boolean
使用すべきではありません。4.2 現在、getCacheControl()
を推奨final boolean
使用すべきではありません。4.2 現在、getCacheControl()
を推奨final boolean
使用すべきではありません。4.2 現在、getCacheControl()
を推奨protected final void
prepareResponse
(HttpServletResponseEE response) このジェネレーターの設定に従って、指定されたレスポンスを準備します。protected final void
preventCaching
(HttpServletResponseEE response) final void
setAlwaysMustRevalidate
(boolean mustRevalidate) 使用すべきではありません。final void
setCacheControl
(CacheControl cacheControl) CacheControl
インスタンスを設定して、Cache-Control HTTP レスポンスヘッダーを構築します。final void
setCacheSeconds
(int seconds) キャッシュ関連の HTTP ヘッダーをレスポンスに書き込むことにより、指定された秒数の間コンテンツをキャッシュします。秒 == -1(デフォルト値): 生成キャッシュ関連のヘッダーなし == 0: "Cache-Control:no-store" 秒を超えるキャッシュを防ぎます。> 0: "Cache-Control:max-age = seconds" はコンテンツのキャッシュを要求しますfinal void
setRequireSession
(boolean requireSession) リクエストを処理するためにセッションが必要かどうかを設定します。final void
setSupportedMethods
(StringSE... methods) このコンテンツジェネレーターがサポートする HTTP メソッドを設定します。final void
setUseCacheControlHeader
(boolean useCacheControlHeader) 使用すべきではありません。4.2 の時点で、今後は HTTP 1.1 キャッシュ制御ヘッダーが必要になり、HTTP 1.0 ヘッダーは消えますfinal void
setUseCacheControlNoStore
(boolean useCacheControlNoStore) 使用すべきではありません。final void
setUseExpiresHeader
(boolean useExpiresHeader) 使用すべきではありません。4.2 の時点で、今後は HTTP 1.1 キャッシュ制御ヘッダーが必要になり、HTTP 1.0 ヘッダーは消えますfinal void
setVaryByRequestHeaders
(StringSE... varyByRequestHeaders) 1 つ以上のリクエストヘッダー名を構成します(例:クラス org.springframework.web.context.support.WebApplicationObjectSupport から継承されたメソッド
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
クラス org.springframework.context.support.ApplicationObjectSupport から継承されたメソッド
getApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContext
フィールドの詳細
コンストラクターの詳細
WebContentGenerator
public WebContentGenerator()HTTP メソッド GET、HEAD、POST をデフォルトでサポートする新しい WebContentGenerator を作成します。WebContentGenerator
public WebContentGenerator(boolean restrictDefaultSupportedMethods) 新しい WebContentGenerator を作成します。- パラメーター:
restrictDefaultSupportedMethods
- このジェネレーターがデフォルトで HTTP メソッド GET、HEAD、POST をサポートする必要がある場合はtrue
、制限されていない場合はfalse
WebContentGenerator
新しい WebContentGenerator を作成します。- パラメーター:
supportedMethods
- このコンテンツジェネレーターでサポートされている HTTP メソッド
メソッドの詳細
setSupportedMethods
このコンテンツジェネレーターがサポートする HTTP メソッドを設定します。デフォルトは、単純なフォームコントローラー型の GET、HEAD、POST です。一般的なコントローラーとインターセプターには制限がありません。
getSupportedMethods
このコンテンツジェネレーターがサポートする HTTP メソッドを返します。getAllowHeader
構成済みのsupported methods
に基づく HTTP OPTIONS リクエストへのレスポンスで使用する "Allow" ヘッダー値を返します。サポートされるメソッドとして存在しない場合でも、リストに "OPTIONS" を自動的に追加します。これは、checkRequest(HttpServletRequest)
を呼び出す前に HTTP OPTIONS リクエストが処理される限り、サブクラスがサポートされているメソッドとして "OPTIONS" を明示的にリストする必要がないことを意味します。- 導入:
- 4.3
setRequireSession
public final void setRequireSession(boolean requireSession) リクエストを処理するためにセッションが必要かどうかを設定します。isRequireSession
public final boolean isRequireSession()リクエストの処理にセッションが必要かどうかを返します。setCacheControl
CacheControl
インスタンスを設定して、Cache-Control HTTP レスポンスヘッダーを構築します。- 導入:
- 4.2
getCacheControl
Cache-Control HTTP レスポンスヘッダーを作成するCacheControl
インスタンスを取得します。- 導入:
- 4.2
setCacheSeconds
public final void setCacheSeconds(int seconds) レスポンスにキャッシュ関連の HTTP ヘッダーを書き込むことにより、指定された秒数の間コンテンツをキャッシュします。- 秒 == -1(デフォルト値): 生成キャッシュ関連のヘッダーなし
- 秒 == 0: 「キャッシュ制御: no-store」はキャッシュを防ぎます
- 秒> 0: 「キャッシュ制御: max-age = seconds」はコンテンツのキャッシュを要求します
より具体的なニーズについては、カスタム
CacheControl
を使用する必要があります。getCacheSeconds
public final int getCacheSeconds()コンテンツがキャッシュされる秒数を返します。setVaryByRequestHeaders
1 つ以上のリクエストヘッダー名(例: "Accept-Language" )を設定して、"Vary" レスポンスヘッダーに追加し、指定されたリクエストヘッダーの値に基づいて、レスポンスがコンテンツネゴシエーションと差異の対象であることをクライアントに通知します。構成されたリクエストヘッダー名は、レスポンス "Vary" ヘッダーにまだ存在しない場合にのみ追加されます。- パラメーター:
varyByRequestHeaders
- 1 つ以上のリクエストヘッダー名- 導入:
- 4.3
getVaryByRequestHeaders
"Vary" レスポンスヘッダーの構成済みリクエストヘッダー名を返します。- 導入:
- 4.3
setUseExpiresHeader
使用すべきではありません。4.2 の時点で、今後は HTTP 1.1 キャッシュ制御ヘッダーが必要になり、HTTP 1.0 ヘッダーは消えますHTTP 1.0 expires ヘッダーを使用するかどうかを設定します。4.2 の時点で、デフォルトは "false" です。メモ: キャッシュヘッダーが適用されるのは、現在のリクエストでキャッシュが有効になっている(または明示的に禁止されている)場合のみです。
isUseExpiresHeader
使用すべきではありません。4.2 現在、getCacheControl()
を推奨HTTP 1.0 expires ヘッダーが使用されているかどうかを返します。setUseCacheControlHeader
使用すべきではありません。4.2 の時点で、今後は HTTP 1.1 キャッシュ制御ヘッダーが必要になり、HTTP 1.0 ヘッダーは消えますHTTP 1.1 キャッシュ制御ヘッダーを使用するかどうかを設定します。デフォルトは "true" です。メモ: キャッシュヘッダーが適用されるのは、現在のリクエストでキャッシュが有効になっている(または明示的に禁止されている)場合のみです。
isUseCacheControlHeader
使用すべきではありません。4.2 現在、getCacheControl()
を推奨HTTP 1.1 キャッシュ制御ヘッダーが使用されているかどうかを返します。setUseCacheControlNoStore
使用すべきではありません。キャッシュを防止するときに HTTP 1.1 キャッシュ制御ヘッダー値 "no-store" を使用するかどうかを設定します。デフォルトは "true" です。isUseCacheControlNoStore
使用すべきではありません。4.2 現在、getCacheControl()
を推奨HTTP 1.1 キャッシュ制御ヘッダー値 "no-store" が使用されているかどうかを返します。setAlwaysMustRevalidate
使用すべきではありません。すべての Cache-Control ヘッダーに "must-revalidate" を追加するオプション。これは、WebRequest.checkNotModified(long)
に従って、最後に変更された計算をプログラムで実行できるアノテーション付きコントローラーメソッドで役立つ場合があります。デフォルトは「false」。
isAlwaysMustRevalidate
使用すべきではありません。4.2 現在、getCacheControl()
を推奨すべての Cache-Control ヘッダーに "must-revalidate" を追加するかどうかを返します。checkRequest
サポートされているメソッドと必要なセッションがある場合は、指定されたリクエストを確認してください。- パラメーター:
request
- 現在の HTTP リクエスト- 例外:
ServletExceptionEE
- チェックが失敗したためにリクエストを処理できない場合- 導入:
- 4.2
prepareResponse
このジェネレーターの設定に従って、指定されたレスポンスを準備します。このジェネレーターに指定されたキャッシュ秒数を適用します。- パラメーター:
response
- 現在の HTTP レスポンス- 導入:
- 4.2
applyCacheControl
指定された設定に従って HTTP Cache-Control ヘッダーを設定します。- パラメーター:
response
- 現在の HTTP レスポンスcacheControl
- 事前設定されたキャッシュ制御設定- 導入:
- 4.2
applyCacheSeconds
指定されたキャッシュ秒を適用し、対応する HTTP ヘッダーを生成します。つまり、正の値の場合は指定された秒数のキャッシュを許可し、0 の値が指定された場合はキャッシュを禁止します。ブラウザーにリソースの再検証を指示しません。- パラメーター:
response
- 現在の HTTP レスポンスcacheSeconds
- レスポンスがキャッシュ可能になる未来の正の秒数、キャッシュを防ぐための 0
checkAndPrepare
@DeprecatedSE protected final void checkAndPrepare(HttpServletRequestEE request, HttpServletResponseEE response, int cacheSeconds, boolean lastModified) throws ServletExceptionEE 使用すべきではありません。4.2 の時点で、lastModified
フラグは事実上無視され、明示的に構成されている場合にのみ must-revalidate ヘッダーが生成されるためこのジェネレーターの設定に従って、指定されたリクエストとレスポンスを確認して準備します。applyCacheSeconds
@DeprecatedSE protected final void applyCacheSeconds(HttpServletResponseEE response, int cacheSeconds, boolean mustRevalidate) 使用すべきではありません。指定されたキャッシュ秒を適用し、それぞれの HTTP ヘッダーを生成します。つまり、正の値の場合は指定された秒数の間キャッシュを許可し、0 の値が指定された場合はキャッシュを禁止し、そうでない場合は何もしません(つまり、キャッシュはクライアントに任せます)。
- パラメーター:
response
- 現在の HTTP レスポンスcacheSeconds
- レスポンスがキャッシュ可能であるべき将来の(正の)秒数。キャッシングを防ぐには 0。キャッシュをクライアントに残すための負の値。mustRevalidate
- クライアントがリソースを再検証する必要があるかどうか (通常、最後に変更されたサポートを持つコントローラーにのみ必要)
cacheForSeconds
使用すべきではありません。HTTP ヘッダーを設定して、指定された秒数の間キャッシュを許可します。ブラウザーにリソースの再検証を指示しません。- パラメーター:
response
- 現在の HTTP レスポンスseconds
- レスポンスがキャッシュ可能な未来までの秒数
cacheForSeconds
@DeprecatedSE protected final void cacheForSeconds(HttpServletResponseEE response, int seconds, boolean mustRevalidate) 使用すべきではありません。指定された秒数の間キャッシュを許可するように HTTP ヘッダーを設定します。mustRevalidate がtrue
の場合、リソースを再検証するようにブラウザーに指示します。- パラメーター:
response
- 現在の HTTP レスポンスseconds
- レスポンスがキャッシュ可能な未来までの秒数mustRevalidate
- クライアントがリソースを再検証する必要があるかどうか (通常、最後に変更されたサポートを持つコントローラーにのみ必要)
preventCaching
使用すべきではありません。レスポンスがキャッシュされないようにします。HTTP 1.0 互換モードでのみ呼び出されます。https://www.mnot.net/cache_docs
を参照してください。
applyCacheControl(jakarta.servlet.http.HttpServletResponse, org.springframework.http.CacheControl)
を推奨