クラス WebContentGenerator

実装されたすべてのインターフェース:
AwareApplicationContextAwareServletContextAware
既知の直属サブクラス
AbstractControllerAbstractHandlerMethodAdapterResourceHttpRequestHandlerWebContentInterceptor

public abstract class WebContentGenerator extends WebApplicationObjectSupport
AbstractControllerWebContentInterceptor など、あらゆる種類の 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
関連事項:
  • フィールドの詳細

  • コンストラクターの詳細

    • WebContentGenerator

      public WebContentGenerator()
      HTTP メソッド GET、HEAD、POST をデフォルトでサポートする新しい WebContentGenerator を作成します。
    • WebContentGenerator

      public WebContentGenerator(boolean restrictDefaultSupportedMethods)
      新しい WebContentGenerator を作成します。
      パラメーター:
      restrictDefaultSupportedMethods - このジェネレーターがデフォルトで HTTP メソッド GET、HEAD、POST をサポートする必要がある場合は true、制限されていない場合は false 
    • WebContentGenerator

      public WebContentGenerator(StringSE... supportedMethods)
      新しい WebContentGenerator を作成します。
      パラメーター:
      supportedMethods - このコンテンツジェネレーターでサポートされている HTTP メソッド
  • メソッドの詳細

    • setSupportedMethods

      public final void setSupportedMethods(@Nullable StringSE... methods)
      このコンテンツジェネレーターがサポートする HTTP メソッドを設定します。

      デフォルトは、単純なフォームコントローラー型の GET、HEAD、POST です。一般的なコントローラーとインターセプターには制限がありません。

    • getSupportedMethods

      @Nullable public final StringSE[] getSupportedMethods()
      このコンテンツジェネレーターがサポートする HTTP メソッドを返します。
    • getAllowHeader

      @Nullable protected StringSE 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

      public final void setCacheControl(@Nullable CacheControl cacheControl)
      CacheControl インスタンスを設定して、Cache-Control HTTP レスポンスヘッダーを構築します。
      導入:
      4.2
    • getCacheControl

      @Nullable public final CacheControl 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

      public final void setVaryByRequestHeaders(@Nullable StringSE... varyByRequestHeaders)
      1 つ以上のリクエストヘッダー名(例: "Accept-Language" )を設定して、"Vary" レスポンスヘッダーに追加し、指定されたリクエストヘッダーの値に基づいて、レスポンスがコンテンツネゴシエーションと差異の対象であることをクライアントに通知します。構成されたリクエストヘッダー名は、レスポンス "Vary" ヘッダーにまだ存在しない場合にのみ追加されます。
      パラメーター:
      varyByRequestHeaders - 1 つ以上のリクエストヘッダー名
      導入:
      4.3
    • getVaryByRequestHeaders

      @Nullable public final StringSE[] getVaryByRequestHeaders()
      "Vary" レスポンスヘッダーの構成済みリクエストヘッダー名を返します。
      導入:
      4.3
    • setUseExpiresHeader

      @DeprecatedSE public final void setUseExpiresHeader(boolean useExpiresHeader)
      使用すべきではありません。
      4.2 の時点で、今後は HTTP 1.1 キャッシュ制御ヘッダーが必要になり、HTTP 1.0 ヘッダーは消えます
      HTTP 1.0 expires ヘッダーを使用するかどうかを設定します。4.2 の時点で、デフォルトは "false" です。

      メモ: キャッシュヘッダーが適用されるのは、現在のリクエストでキャッシュが有効になっている(または明示的に禁止されている)場合のみです。

    • isUseExpiresHeader

      @DeprecatedSE public final boolean isUseExpiresHeader()
      使用すべきではありません。
      4.2 現在、getCacheControl() を推奨
      HTTP 1.0 expires ヘッダーが使用されているかどうかを返します。
    • setUseCacheControlHeader

      @DeprecatedSE public final void setUseCacheControlHeader(boolean useCacheControlHeader)
      使用すべきではありません。
      4.2 の時点で、今後は HTTP 1.1 キャッシュ制御ヘッダーが必要になり、HTTP 1.0 ヘッダーは消えます
      HTTP 1.1 キャッシュ制御ヘッダーを使用するかどうかを設定します。デフォルトは "true" です。

      メモ: キャッシュヘッダーが適用されるのは、現在のリクエストでキャッシュが有効になっている(または明示的に禁止されている)場合のみです。

    • isUseCacheControlHeader

      @DeprecatedSE public final boolean isUseCacheControlHeader()
      使用すべきではありません。
      4.2 現在、getCacheControl() を推奨
      HTTP 1.1 キャッシュ制御ヘッダーが使用されているかどうかを返します。
    • setUseCacheControlNoStore

      @DeprecatedSE public final void setUseCacheControlNoStore(boolean useCacheControlNoStore)
      使用すべきではありません。
      キャッシュを防止するときに HTTP 1.1 キャッシュ制御ヘッダー値 "no-store" を使用するかどうかを設定します。デフォルトは "true" です。
    • isUseCacheControlNoStore

      @DeprecatedSE public final boolean isUseCacheControlNoStore()
      使用すべきではありません。
      4.2 現在、getCacheControl() を推奨
      HTTP 1.1 キャッシュ制御ヘッダー値 "no-store" が使用されているかどうかを返します。
    • setAlwaysMustRevalidate

      @DeprecatedSE public final void setAlwaysMustRevalidate(boolean mustRevalidate)
      使用すべきではありません。
      すべての Cache-Control ヘッダーに "must-revalidate" を追加するオプション。これは、WebRequest.checkNotModified(long) に従って、最後に変更された計算をプログラムで実行できるアノテーション付きコントローラーメソッドで役立つ場合があります。

      デフォルトは「false」。

    • isAlwaysMustRevalidate

      @DeprecatedSE public final boolean isAlwaysMustRevalidate()
      使用すべきではありません。
      4.2 現在、getCacheControl() を推奨
      すべての Cache-Control ヘッダーに "must-revalidate" を追加するかどうかを返します。
    • checkRequest

      protected final void checkRequest(HttpServletRequestEE request) throws ServletExceptionEE
      サポートされているメソッドと必要なセッションがある場合は、指定されたリクエストを確認してください。
      パラメーター:
      request - 現在の HTTP リクエスト
      例外:
      ServletExceptionEE - チェックが失敗したためにリクエストを処理できない場合
      導入:
      4.2
    • prepareResponse

      protected final void prepareResponse(HttpServletResponseEE response)
      このジェネレーターの設定に従って、指定されたレスポンスを準備します。このジェネレーターに指定されたキャッシュ秒数を適用します。
      パラメーター:
      response - 現在の HTTP レスポンス
      導入:
      4.2
    • applyCacheControl

      protected final void applyCacheControl(HttpServletResponseEE response, CacheControl cacheControl)
      指定された設定に従って HTTP Cache-Control ヘッダーを設定します。
      パラメーター:
      response - 現在の HTTP レスポンス
      cacheControl - 事前設定されたキャッシュ制御設定
      導入:
      4.2
    • applyCacheSeconds

      protected final void applyCacheSeconds(HttpServletResponseEE response, int cacheSeconds)
      指定されたキャッシュ秒を適用し、対応する 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 ヘッダーが生成されるため
      このジェネレーターの設定に従って、指定されたリクエストとレスポンスを確認して準備します。
      例外:
      ServletExceptionEE
      関連事項:
    • applyCacheSeconds

      @DeprecatedSE protected final void applyCacheSeconds(HttpServletResponseEE response, int cacheSeconds, boolean mustRevalidate)
      指定されたキャッシュ秒を適用し、それぞれの HTTP ヘッダーを生成します。

      つまり、正の値の場合は指定された秒数の間キャッシュを許可し、0 の値が指定された場合はキャッシュを禁止し、そうでない場合は何もしません(つまり、キャッシュはクライアントに任せます)。

      パラメーター:
      response - 現在の HTTP レスポンス
      cacheSeconds - レスポンスがキャッシュ可能であるべき将来の(正の)秒数。キャッシングを防ぐには 0。キャッシュをクライアントに残すための負の値。
      mustRevalidate - クライアントがリソースを再検証する必要があるかどうか (通常、最後に変更されたサポートを持つコントローラーにのみ必要)
    • cacheForSeconds

      @DeprecatedSE protected final void cacheForSeconds(HttpServletResponseEE response, int seconds)
      HTTP ヘッダーを設定して、指定された秒数の間キャッシュを許可します。ブラウザーにリソースの再検証を指示しません。
      パラメーター:
      response - 現在の HTTP レスポンス
      seconds - レスポンスがキャッシュ可能な未来までの秒数
    • cacheForSeconds

      @DeprecatedSE protected final void cacheForSeconds(HttpServletResponseEE response, int seconds, boolean mustRevalidate)
      HTTP ヘッダーを設定して、指定された秒数の間キャッシュを許可します。mustRevalidate が true の場合、リソースを再検証するようブラウザーに指示します。
      パラメーター:
      response - 現在の HTTP レスポンス
      seconds - レスポンスがキャッシュ可能な未来までの秒数
      mustRevalidate - クライアントがリソースを再検証する必要があるかどうか (通常、最後に変更されたサポートを持つコントローラーにのみ必要)
    • preventCaching

      @DeprecatedSE protected final void preventCaching(HttpServletResponseEE response)
      レスポンスがキャッシュされないようにします。HTTP 1.0 互換モードでのみ呼び出されます。

      https://www.mnot.net/cache_docs を参照してください。