クラス WebUtils

java.lang.ObjectSE
org.springframework.web.util.WebUtils

public abstract class WebUtils extends ObjectSE
Web アプリケーション用のその他のユーティリティ。

さまざまなフレームワーククラスで使用されます。

作成者:
Rod Johnson, Juergen Hoeller, Sebastien Deleuze, Sam Brannen
  • フィールドの詳細

    • INCLUDE_REQUEST_URI_ATTRIBUTE

      public static final StringSE INCLUDE_REQUEST_URI_ATTRIBUTE
      インクルードリクエスト URI の標準 Servlet 2.3+ 仕様リクエスト属性。

      RequestDispatcher を介して含まれている場合、現在のリソースには元のリクエストが表示されます。独自のリクエスト URI がリクエスト属性として公開されます。

      関連事項:
    • INCLUDE_CONTEXT_PATH_ATTRIBUTE

      public static final StringSE INCLUDE_CONTEXT_PATH_ATTRIBUTE
      インクルードコンテキストパスの標準 Servlet 2.3+ 仕様リクエスト属性。

      RequestDispatcher を介して含まれている場合、現在のリソースには元のコンテキストパスが表示されます。独自のコンテキストパスがリクエスト属性として公開されます。

      関連事項:
    • INCLUDE_SERVLET_PATH_ATTRIBUTE

      public static final StringSE INCLUDE_SERVLET_PATH_ATTRIBUTE
      インクルードサーブレットパスの標準 Servlet 2.3+ 仕様リクエスト属性。

      RequestDispatcher を介して含まれている場合、現在のリソースには元のサーブレットパスが表示されます。独自のサーブレットパスがリクエスト属性として公開されます。

      関連事項:
    • INCLUDE_PATH_INFO_ATTRIBUTE

      public static final StringSE INCLUDE_PATH_INFO_ATTRIBUTE
      インクルードパス情報の標準 Servlet 2.3+ 仕様リクエスト属性。

      RequestDispatcher を介して含まれている場合、現在のリソースには元のパス情報が表示されます。独自のパス情報がリクエスト属性として公開されます。

      関連事項:
    • INCLUDE_QUERY_STRING_ATTRIBUTE

      public static final StringSE INCLUDE_QUERY_STRING_ATTRIBUTE
      インクルードクエリ文字列の標準 Servlet 2.3+ 仕様リクエスト属性。

      RequestDispatcher を介して含まれている場合、現在のリソースには元のクエリ文字列が表示されます。独自のクエリ文字列はリクエスト属性として公開されます。

      関連事項:
    • FORWARD_REQUEST_URI_ATTRIBUTE

      public static final StringSE FORWARD_REQUEST_URI_ATTRIBUTE
      転送リクエスト URI の標準 Servlet 2.4+ 仕様リクエスト属性。

      RequestDispatcher 経由でに転送された場合、現在のリソースには独自のリクエスト URI が表示されます。元のリクエスト URI はリクエスト属性として公開されます。

      関連事項:
    • FORWARD_CONTEXT_PATH_ATTRIBUTE

      public static final StringSE FORWARD_CONTEXT_PATH_ATTRIBUTE
      フォワードコンテキストパスの標準 Servlet 2.4+ 仕様リクエスト属性。

      RequestDispatcher を介してに転送された場合、現在のリソースには独自のコンテキストパスが表示されます。元のコンテキストパスはリクエスト属性として公開されます。

      関連事項:
    • FORWARD_SERVLET_PATH_ATTRIBUTE

      public static final StringSE FORWARD_SERVLET_PATH_ATTRIBUTE
      フォワードサーブレットパスの標準 Servlet 2.4+ 仕様リクエスト属性。

      RequestDispatcher 経由でに転送された場合、現在のリソースには独自のサーブレットパスが表示されます。元のサーブレットパスは、リクエスト属性として公開されます。

      関連事項:
    • FORWARD_PATH_INFO_ATTRIBUTE

      public static final StringSE FORWARD_PATH_INFO_ATTRIBUTE
      フォワードパス情報の標準 Servlet 2.4+ 仕様リクエスト属性。

      RequestDispatcher を介してに転送された場合、現在のリソースには独自のパスが表示されます。元のパス情報はリクエスト属性として公開されます。

      関連事項:
    • FORWARD_QUERY_STRING_ATTRIBUTE

      public static final StringSE FORWARD_QUERY_STRING_ATTRIBUTE
      前方クエリ文字列の標準 Servlet 2.4+ 仕様リクエスト属性。

      RequestDispatcher 経由でに転送された場合、現在のリソースには独自のクエリ文字列が表示されます。元のクエリ文字列はリクエスト属性として公開されます。

      関連事項:
    • ERROR_STATUS_CODE_ATTRIBUTE

      public static final StringSE ERROR_STATUS_CODE_ATTRIBUTE
      エラーページステータスコードの標準 Servlet 2.3+ 仕様リクエスト属性。

      エラーページとしてマークされている JSP に公開されるため、サーブレットコンテナーのエラーページ解決メカニズムを介してではなく、JSP に直接転送します。

      関連事項:
    • ERROR_EXCEPTION_TYPE_ATTRIBUTE

      public static final StringSE ERROR_EXCEPTION_TYPE_ATTRIBUTE
      エラーページ例外型の標準 Servlet 2.3+ 仕様リクエスト属性。

      エラーページとしてマークされている JSP に公開されるため、サーブレットコンテナーのエラーページ解決メカニズムを介してではなく、JSP に直接転送します。

      関連事項:
    • ERROR_MESSAGE_ATTRIBUTE

      public static final StringSE ERROR_MESSAGE_ATTRIBUTE
      エラーページメッセージの標準 Servlet 2.3+ 仕様リクエスト属性。

      エラーページとしてマークされている JSP に公開されるため、サーブレットコンテナーのエラーページ解決メカニズムを介してではなく、JSP に直接転送します。

      関連事項:
    • ERROR_EXCEPTION_ATTRIBUTE

      public static final StringSE ERROR_EXCEPTION_ATTRIBUTE
      エラーページ例外の標準 Servlet 2.3+ 仕様リクエスト属性。

      エラーページとしてマークされている JSP に公開されるため、サーブレットコンテナーのエラーページ解決メカニズムを介してではなく、JSP に直接転送します。

      関連事項:
    • ERROR_REQUEST_URI_ATTRIBUTE

      public static final StringSE ERROR_REQUEST_URI_ATTRIBUTE
      エラーページリクエスト URI の標準 Servlet 2.3+ 仕様リクエスト属性。

      エラーページとしてマークされている JSP に公開されるため、サーブレットコンテナーのエラーページ解決メカニズムを介してではなく、JSP に直接転送します。

      関連事項:
    • ERROR_SERVLET_NAME_ATTRIBUTE

      public static final StringSE ERROR_SERVLET_NAME_ATTRIBUTE
      エラーページサーブレット名の標準 Servlet 2.3+ 仕様リクエスト属性。

      エラーページとしてマークされている JSP に公開されるため、サーブレットコンテナーのエラーページ解決メカニズムを介してではなく、JSP に直接転送します。

      関連事項:
    • CONTENT_TYPE_CHARSET_PREFIX

      public static final StringSE CONTENT_TYPE_CHARSET_PREFIX
      コンテンツ型文字列の文字セット句の接頭辞: "; charset ="。
      関連事項:
    • DEFAULT_CHARACTER_ENCODING

      public static final StringSE DEFAULT_CHARACTER_ENCODING
      サーブレットの仕様に従って、request.getCharacterEncoding が null を返すときに使用するデフォルトの文字エンコーディング。
      関連事項:
    • TEMP_DIR_CONTEXT_ATTRIBUTE

      public static final StringSE TEMP_DIR_CONTEXT_ATTRIBUTE
      型 java.io.File の、現在の Web アプリケーションの一時ディレクトリを指定する標準サーブレット仕様コンテキスト属性。
      関連事項:
    • HTML_ESCAPE_CONTEXT_PARAM

      public static final StringSE HTML_ESCAPE_CONTEXT_PARAM
      サーブレットコンテキストレベルの HTML エスケープパラメーター(web.xml の context-param): "defaultHtmlEscape"。
      関連事項:
    • RESPONSE_ENCODED_HTML_ESCAPE_CONTEXT_PARAM

      public static final StringSE RESPONSE_ENCODED_HTML_ESCAPE_CONTEXT_PARAM
      サーブレットコンテキストレベルでの HTML エスケープパラメーターのレスポンスエンコーディングの使用(つまり、web.xml の context-param): "responseEncodedHtmlEscape"。
      導入:
      4.1.2
      関連事項:
    • WEB_APP_ROOT_KEY_PARAM

      public static final StringSE WEB_APP_ROOT_KEY_PARAM
      サーブレットコンテキストレベルの Web アプリルートキーパラメーター(つまり、web.xml の context-param): "webAppRootKey"。
      関連事項:
    • DEFAULT_WEB_APP_ROOT_KEY

      public static final StringSE DEFAULT_WEB_APP_ROOT_KEY
      デフォルトの Web アプリのルートキー: "webapp.root"。
      関連事項:
    • SUBMIT_IMAGE_SUFFIXES

      public static final StringSE[] SUBMIT_IMAGE_SUFFIXES
      イメージボタンの場合は名前のサフィックス。
    • SESSION_MUTEX_ATTRIBUTE

      public static final StringSE SESSION_MUTEX_ATTRIBUTE
      mutex セッション属性のキー。
  • コンストラクターの詳細

    • WebUtils

      public WebUtils()
  • メソッドの詳細

    • setWebAppRootSystemProperty

      public static void setWebAppRootSystemProperty(ServletContextEE servletContext) throws IllegalStateExceptionSE
      システムプロパティを Web アプリケーションのルートディレクトリに設定します。システムプロパティのキーは、web.xml の "webAppRootKey" context-param で定義できます。デフォルトは "webapp.root" です。

      ログファイルの場所内の log4j の "${key}" 構文など、System.getProperty 値での置換をサポートするツールに使用できます。

      パラメーター:
      servletContext - Web アプリケーションのサーブレットコンテキスト
      例外:
      IllegalStateExceptionSE - システムプロパティがすでに設定されている場合、または WAR ファイルが展開されていない場合
      関連事項:
    • removeWebAppRootSystemProperty

      public static void removeWebAppRootSystemProperty(ServletContextEE servletContext)
      Web アプリのルートディレクトリを指すシステムプロパティを削除します。Web アプリケーションのシャットダウン時に呼び出されます。
      パラメーター:
      servletContext - Web アプリケーションのサーブレットコンテキスト
      関連事項:
    • getDefaultHtmlEscape

      @Nullable public static BooleanSE getDefaultHtmlEscape(@Nullable ServletContextEE servletContext)
      Web アプリケーションでデフォルトの HTML エスケープが有効かどうかを返します。つまり、web.xml の "defaultHtmlEscape" context-param の値(ある場合)を返します。

      このメソッドは、パラメーターがまったく指定されていないことと指定された実際のブール値を区別し、グローバルレベルで設定がない場合にコンテキスト固有のデフォルトを設定できるようにします。

      パラメーター:
      servletContext - Web アプリケーションのサーブレットコンテキスト
      戻り値:
      指定されたアプリケーションでデフォルトの HTML エスケープが有効かどうか (null = 明示的なデフォルトなし)
    • getResponseEncodedHtmlEscape

      @Nullable public static BooleanSE getResponseEncodedHtmlEscape(@Nullable ServletContextEE servletContext)
      HTML が文字をエスケープするときにレスポンスエンコーディングを使用する必要があるかどうかを返します。つまり、UTF- * エンコーディングで XML マークアップの重要な文字のみをエスケープします。このオプションは、ServletContext param、つまり web.xml の "responseEncodedHtmlEscape" context-param(存在する場合)の値を持つ Web アプリケーションで有効になります。

      このメソッドは、パラメーターがまったく指定されていないことと指定された実際のブール値を区別し、グローバルレベルで設定がない場合にコンテキスト固有のデフォルトを設定できるようにします。

      パラメーター:
      servletContext - Web アプリケーションのサーブレットコンテキスト
      戻り値:
      レスポンスエンコーディングを HTML エスケープに使用するかどうか (null = 明示的なデフォルトなし)
      導入:
      4.1.2
    • getTempDir

      public static FileSE getTempDir(ServletContextEE servletContext)
      サーブレットコンテナーによって提供される、現在の Web アプリケーションの一時ディレクトリを返します。
      パラメーター:
      servletContext - Web アプリケーションのサーブレットコンテキスト
      戻り値:
      一時ディレクトリを表すファイル
    • getRealPath

      public static StringSE getRealPath(ServletContextEE servletContext, StringSE path) throws FileNotFoundExceptionSE
      サーブレットコンテナーによって提供される、Web アプリケーション内の指定されたパスの実際のパスを返します。

      パスがスラッシュで始まっていない場合はスラッシュを付加し、パスをリソースに解決できない場合は FileNotFoundException をスローします(ServletContext の getRealPath は null を返します)。

      パラメーター:
      servletContext - Web アプリケーションのサーブレットコンテキスト
      path - Web アプリケーション内のパス
      戻り値:
      対応する実際のパス
      例外:
      FileNotFoundExceptionSE - パスをリソースに解決できない場合
      関連事項:
    • getSessionId

      @Nullable public static StringSE getSessionId(HttpServletRequestEE request)
      指定されたリクエストのセッション ID を確認します(ある場合)。
      パラメーター:
      request - 現在の HTTP リクエスト
      戻り値:
      セッション ID、ない場合は null 
    • getSessionAttribute

      @Nullable public static ObjectSE getSessionAttribute(HttpServletRequestEE request, StringSE name)
      指定された名前のセッション属性について、指定されたリクエストを確認してください。セッションがない場合、またはセッションにそのような属性がない場合は、null を返します。以前にセッションが存在しない場合、新しいセッションを作成しません!
      パラメーター:
      request - 現在の HTTP リクエスト
      name - セッション属性の名前
      戻り値:
      セッション属性の値。見つからない場合は null 
    • getRequiredSessionAttribute

      public static ObjectSE getRequiredSessionAttribute(HttpServletRequestEE request, StringSE name) throws IllegalStateExceptionSE
      指定された名前のセッション属性について、指定されたリクエストを確認してください。セッションがない場合、またはセッションにそのような属性がない場合は、例外をスローします。以前にセッションが存在しない場合、新しいセッションを作成しません!
      パラメーター:
      request - 現在の HTTP リクエスト
      name - セッション属性の名前
      戻り値:
      セッション属性の値。見つからない場合は null 
      例外:
      IllegalStateExceptionSE - セッション属性が見つからなかった場合
    • setSessionAttribute

      public static void setSessionAttribute(HttpServletRequestEE request, StringSE name, @Nullable ObjectSE value)
      指定された名前のセッション属性を指定された値に設定します。セッションが存在する場合、値が null の場合にセッション属性を削除します。必要がない場合は、新しいセッションを作成しません。
      パラメーター:
      request - 現在の HTTP リクエスト
      name - セッション属性の名前
      value - セッション属性の値
    • getSessionMutex

      public static ObjectSE getSessionMutex(HttpSessionEE session)
      指定されたセッションで利用可能な最良のミューテックスを返します。つまり、指定されたセッションで同期するオブジェクトです。

      利用可能な場合はセッションミューテックス属性を返します。通常、これは HttpSessionMutexListener を web.xml で定義する必要があることを意味します。mutex 属性が見つからない場合は、HttpSession 自体にフォールバックします。

      セッションミューテックスは、セッションのライフタイム全体を通じて同じオブジェクトであることが保証されており、SESSION_MUTEX_ATTRIBUTE 定数で定義されたキーで使用できます。これは、現在のセッションのロックを同期するための安全な参照として機能します。

      多くの場合、HttpSession 参照自体も、同じアクティブな論理セッションに対する常に同じオブジェクト参照になるため、安全なミューテックスです。ただし、これは異なるサーブレットコンテナー間では保証されません。唯一の 100% 安全な方法は、セッションミューテックスです。

      パラメーター:
      session - ミューテックスを見つける HttpSession
      戻り値:
      ミューテックスオブジェクト (非 null)
      関連事項:
    • getNativeRequest

      @Nullable public static <T> T getNativeRequest(ServletRequestEE request, @Nullable ClassSE<T> requiredType)
      指定された型の適切なリクエストオブジェクトを返します(可能な場合)。必要に応じて、指定されたリクエストをアンラップします。
      パラメーター:
      request - イントロスペクトするサーブレットリクエスト
      requiredType - 目的の型のリクエストオブジェクト
      戻り値:
      一致するリクエストオブジェクト、またはその型が利用できない場合は null 
    • getNativeResponse

      @Nullable public static <T> T getNativeResponse(ServletResponseEE response, @Nullable ClassSE<T> requiredType)
      指定された型の適切なレスポンスオブジェクトを返します(可能な場合)。必要に応じて、指定されたレスポンスをラップします。
      パラメーター:
      response - イントロスペクトに対するサーブレットのレスポンス
      requiredType - 希望する型のレスポンスオブジェクト
      戻り値:
      一致するレスポンスオブジェクト、またはその型が利用できない場合は null 
    • isIncludeRequest

      public static boolean isIncludeRequest(ServletRequestEE request)
      指定されたリクエストがインクルードリクエストであるかどうか、つまり外部から入ってくるトップレベルの HTTP リクエストではないかどうかを判断します。

      "jakarta.servlet.include.request_uri" リクエスト属性の存在を確認します。インクルードリクエストにのみ存在するリクエスト属性をチェックできます。

      パラメーター:
      request - 現在のサーブレットリクエスト
      戻り値:
      指定されたリクエストがインクルードリクエストかどうか
    • exposeErrorRequestAttributes

      public static void exposeErrorRequestAttributes(HttpServletRequestEE request, ThrowableSE ex, @Nullable StringSE servletName)
      サーブレットコンテナーのエラーページの解決方法 jakarta.servlet.error.status_codejakarta.servlet.error.exception_typejakarta.servlet.error.messagejakarta.servlet.error.exceptionjakarta.servlet.error.request_urijakarta.servlet.error.servlet_name ではなく直接レンダリングされるエラーページについて、Servlet 2.3 仕様で定義されたキーにある HttpServletRequestEE 属性としてサーブレット仕様のエラー属性を公開します。

      以前に明示的に公開された属性値を考慮するために、すでに存在する場合は値をオーバーライドしません。

      デフォルトでステータスコード 200 を公開します。異なるステータスコードを公開するために、"jakarta.servlet.error.status_code" 属性を明示的に(前または後に)設定します。

      パラメーター:
      request - 現在のサーブレットリクエスト
      ex - 発生した例外
      servletName - 問題のあるサーブレットの名前
    • clearErrorRequestAttributes

      public static void clearErrorRequestAttributes(HttpServletRequestEE request)
      サーブレット仕様のエラー属性を、Servlet 2.3 仕様で定義されているキー jakarta.servlet.error.status_codejakarta.servlet.error.exception_typejakarta.servlet.error.messagejakarta.servlet.error.exceptionjakarta.servlet.error.request_urijakarta.servlet.error.servlet_nameHttpServletRequestEE 属性としてクリアします。
      パラメーター:
      request - 現在のサーブレットリクエスト
    • getCookie

      @Nullable public static CookieEE getCookie(HttpServletRequestEE request, StringSE name)
      指定された名前の最初の Cookie を取得します。複数の Cookie に同じ名前を付けることができますが、パスまたはドメインが異なることに注意してください。
      パラメーター:
      request - 現在のサーブレットリクエスト
      name - クッキー名
      戻り値:
      指定された名前の最初の Cookie。見つからない場合は null 
    • hasSubmitParameter

      public static boolean hasSubmitParameter(ServletRequestEE request, StringSE name)
      特定の入力 type="submit" パラメーターがリクエストで送信されたかどうかを、ボタン(直接名前で)またはイメージ(名前 + ".x" または名前 + ".y" )で送信したかどうかを確認します。
      パラメーター:
      request - 現在の HTTP リクエスト
      name - パラメーターの名前
      戻り値:
      パラメーターが送信された場合
      関連事項:
    • findParameterValue

      @Nullable public static StringSE findParameterValue(ServletRequestEE request, StringSE name)
      指定されたリクエストパラメーターから名前付きパラメーターを取得します。

      ルックアップアルゴリズムの説明については、findParameterValue(java.util.Map, String) を参照してください。

      パラメーター:
      request - 現在の HTTP リクエスト
      name - リクエストパラメーターの論理
      戻り値:
      パラメーターの値、または指定されたリクエストにパラメーターが存在しない場合は null 
    • findParameterValue

      @Nullable public static StringSE findParameterValue(MapSE<StringSE,?> parameters, StringSE name)
      指定されたリクエストパラメーターから名前付きパラメーターを取得します。

      このメソッドは、次のアルゴリズムを使用してパラメーター値を取得しようとします。

      1. 指定された論理名だけを使用してパラメーター値を取得してみてください。これは、形式 logicalName = value のパラメーターを処理します。非表示の HTML フォームフィールドを使用して送信されるなど、通常のパラメーターの場合、リクエストされた値が返されます。
      2. パラメーター名からパラメーター値を取得してみてください。リクエスト内のパラメーター名は logicalName_value = xyz の形式で、構成された区切り文字は "_" です。これは、HTML フォームの送信ボタンを使用して送信されたパラメーター値を処理します。
      3. 前の手順で取得した値に ".x" または ".y" の接尾辞が付いている場合は、それを削除します。これは、HTML フォームのイメージボタンを使用して値が送信された場合を処理します。この場合、リクエストのパラメーターは実際には logicalName_value.x = 123 の形式になります。
      パラメーター:
      parameters - 利用可能なパラメーターマップ
      name - リクエストパラメーターの論理
      戻り値:
      パラメーターの値、または指定されたリクエストにパラメーターが存在しない場合は null 
    • getParametersStartingWith

      public static MapSE<StringSE,ObjectSE> getParametersStartingWith(ServletRequestEE request, @Nullable StringSE prefix)
      指定されたプレフィックスを持つすべてのパラメーターを含むマップを返します。単一の値を文字列に、複数の値を文字列配列にマップします。

      例: "spring _"、"spring_param1"、"spring_param2" の接頭辞を使用すると、"param1" と "param2" をキーとするマップが作成されます。

      パラメーター:
      request - パラメーターを探す HTTP リクエスト
      prefix - パラメーター名の始まり (これが null または空の文字列の場合、すべてのパラメーターが一致します)
      戻り値:
      接頭辞なしのリクエストパラメーターを 含むマップ。値として文字列または文字列配列を含みます
      関連事項:
    • parseMatrixVariables

      public static MultiValueMap<StringSE,StringSE> parseMatrixVariables(StringSE matrixVariables)
      与えられた文字列を行列変数で解析します。文字列の例は、次の "q1=a;q1=b;q2=a,b,c" のようになります。結果のマップには、キー "q1" および "q2" が含まれ、それぞれ値 ["a","b"] および ["a","b","c"] が含まれます。
      パラメーター:
      matrixVariables - 解析されていない行列変数文字列
      戻り値:
      行列変数の名前と値を含むマップ (非 null)
      導入:
      3.2
    • isValidOrigin

      public static boolean isValidOrigin(HttpRequest request, CollectionSE<StringSE> allowedOrigins)
      指定されたリクエストの起点を、許可された起点のリストと照合してください。"*" を含むリストは、すべての発信元が許可されることを意味します。空のリストは、同じオリジンのみが許可されることを意味します。

      注意 : 5.1 以降、このメソッドは、クライアントが発信したアドレスを指定する "Forwarded" および "X-Forwarded-*" ヘッダーを無視します。ForwardedHeaderFilter を使用して、このようなヘッダーを抽出して使用するか、破棄することを検討してください。

      戻り値:
      リクエスト元が有効な場合は true、それ以外の場合は false 
      導入:
      4.1.5
      関連事項:
    • isSameOrigin

      public static boolean isSameOrigin(HttpRequest request)
      OriginHostForwardedX-Forwarded-ProtoX-Forwarded-HostX-Forwarded-Port ヘッダーに基づいて、リクエストが同一生成元のものであるかどうかを確認します。

      注意 : 5.1 以降、このメソッドは、クライアントが発信したアドレスを指定する "Forwarded" および "X-Forwarded-*" ヘッダーを無視します。ForwardedHeaderFilter を使用して、このようなヘッダーを抽出して使用するか、破棄することを検討してください。

      戻り値:
      リクエストが同一オリジンの場合は true、クロスオリジンリクエストの場合は false 
      導入:
      4.2