クラス UrlPathHelper
RequestDispatcher インクルードの URL パスのサポートと、一貫した URL デコードのサポートを提供します。AbstractUrlHandlerMapping および RequestContext で、パスのマッチングや URI の決定に使用されます。
- 導入:
- 14.01.2004
- 作成者:
- Juergen Hoeller, Rob Harrop, Rossen Stoyanchev
- 関連事項:
フィールドのサマリー
フィールド修飾子と型フィールド説明static final UrlPathHelperデフォルトの共有読み取り専用インスタンス。static final StringSEresolvedlookupPath を保持するサーブレットリクエスト属性の名前。static final UrlPathHelperエンコードされた完全なパスの共有された読み取り専用インスタンス。コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明decodeMatrixVariables(HttpServletRequestEE request, MultiValueMap<StringSE, StringSE> vars) setUrlDecode(boolean)がtrueに設定されていない限り、指定されたマトリックス変数をdecodeRequestString(jakarta.servlet.http.HttpServletRequest, java.lang.String)を介してデコードします。この場合、変数の抽出元の URL パスはgetLookupPathForRequest(HttpServletRequest)の呼び出しによってすでにデコードされていると見なされます。decodePathVariables(HttpServletRequestEE request, MapSE<StringSE, StringSE> vars) setUrlDecode(boolean)がtrueに設定されていない限り、指定された URI パス変数をdecodeRequestString(jakarta.servlet.http.HttpServletRequest, java.lang.String)を介してデコードします。この場合、変数の抽出元の URL パスはgetLookupPathForRequest(HttpServletRequest)の呼び出しによってすでにデコードされていると見なされます。decodeRequestString(HttpServletRequestEE request, StringSE source) 指定されたソース文字列を URLDecoder でデコードします。protected StringSEdetermineEncoding(HttpServletRequestEE request) 指定されたリクエストのエンコーディングを決定します。getContextPath(HttpServletRequestEE request) RequestDispatcher インクルード内で呼び出された場合にインクルードリクエスト URL を検出して、指定されたリクエストのコンテキストパスを返します。protected StringSEURL のデコードに使用するデフォルトの文字エンコーディングを返します。該当する場合は現在のサーブレットマッピング内、そうでない場合は Web アプリケーション内で、指定されたリクエストのマッピングルックアップパスを返します。getLookupPathForRequest(HttpServletRequestEE request, StringSE name) 使用すべきではありません。RequestDispatcher インクルード内で呼び出された場合にインクルードリクエスト URL を検出して、指定されたリクエストのコンテキストパスを返します。指定されたリクエストの URL のクエリ文字列部分を返します。指定されたリクエストのリクエスト URI を返します。RequestDispatcher インクルード内で呼び出された場合にインクルードリクエスト URL を検出して、指定されたリクエストのサーブレットパスを返します。指定されたリクエストの Web アプリケーション内のパスを返します。指定されたリクエストのサーブレットマッピング内のパスを返します。protected StringSEgetPathWithinServletMapping(HttpServletRequestEE request, StringSE pathWithinApp) 指定されたリクエストのサーブレットマッピング内のパスを返します。getRequestUri(HttpServletRequestEE request) 指定されたリクエストのリクエスト URI を返します。RequestDispatcher インクルード内で呼び出された場合、インクルードリクエスト URL を検出します。static StringSEgetResolvedLookupPath(ServletRequestEE request) 以前のresolvedlookupPath を返します。getServletPath(HttpServletRequestEE request) RequestDispatcher インクルード内で呼び出された場合、インクルードリクエスト URL に関して、指定されたリクエストのサーブレットパスを返します。booleanルックアップパスを決定するときにリクエスト URI をデコードするかどうか。removeSemicolonContent(StringSE requestUri) removeSemicolonContent プロパティが "true" に設定されている場合、指定されたリクエスト URI から ";" (セミコロン) コンテンツを削除します。lookupPath をResolveし、キーPATH_ATTRIBUTEを使用してリクエスト属性にキャッシュし、その後getResolvedLookupPath(ServletRequest)経由でアクセスできるようにします。voidsetAlwaysUseFullPath(boolean alwaysUseFullPath) URL ルックアップが常に現在の Web アプリケーションコンテキスト内の絶対パスを使用するかどうか、つまりvoidsetDefaultEncoding(StringSE defaultEncoding) URL デコードに使用するデフォルトの文字エンコードを設定します。voidsetRemoveSemicolonContent(boolean removeSemicolonContent) ";" の場合に設定(セミコロン)コンテンツはリクエスト URI から削除する必要があります。voidsetUrlDecode(boolean urlDecode) コンテキストパスとリクエスト URI をデコードする必要があるかどうか。どちらも、サーブレットパスとは対照的に、サーブレット API によってデコードされずに返されます。boolean";" を削除するように設定されているかどうか(セミコロン)リクエスト URI のコンテンツ。
フィールドの詳細
PATH_ATTRIBUTE
resolvedlookupPath を保持するサーブレットリクエスト属性の名前。- 導入:
- 5.3
defaultInstance
デフォルトの共有読み取り専用インスタンス。以下が適用されます。alwaysUseFullPath=falseurlDecode=trueremoveSemicolon=truedefaultEncoding=WebUtils.DEFAULT_CHARACTER_ENCODING
rawPathInstance
エンコードされた完全なパスの共有された読み取り専用インスタンス。以下が適用されます。alwaysUseFullPath=trueurlDecode=falseremoveSemicolon=falsedefaultEncoding=WebUtils.DEFAULT_CHARACTER_ENCODING
コンストラクターの詳細
UrlPathHelper
public UrlPathHelper()
メソッドの詳細
setAlwaysUseFullPath
public void setAlwaysUseFullPath(boolean alwaysUseFullPath) URL ルックアップが常に現在の Web アプリケーションコンテキスト内、つまりServletContext.getContextPath()EE 内の絶対パスを使用するかどうか。false に設定すると、該当する場合は、代わりに現在のサーブレットマッピング内のパスが使用されます(つまり、"/myServlet/*" などのプレフィックスベースのサーブレットマッピングの場合)。
デフォルトでは、これは "false" に設定されています。
setUrlDecode
public void setUrlDecode(boolean urlDecode) コンテキストパスとリクエスト URI をデコードする必要があるかどうか。どちらも、サーブレットパスとは対照的に、サーブレット API によってデコードされずに返されます。"true" に設定すると、リクエストエンコーディングまたはデフォルトのサーブレット仕様エンコーディング(ISO-8859-1)のいずれかが使用されます。
デフォルトでは true に設定されています。
注意 : エンコードされたパスと比較すると、サーブレットのパスが一致しないことに注意してください。
urlDecode=falseの使用は、接頭辞ベースのサーブレットマッピングと互換性がなく、同様にalwaysUseFullPath=trueの設定も意味します。isUrlDecode
public boolean isUrlDecode()ルックアップパスを決定するときにリクエスト URI をデコードするかどうか。- 導入:
- 4.3.13
setRemoveSemicolonContent
public void setRemoveSemicolonContent(boolean removeSemicolonContent) ";" の場合に設定(セミコロン)コンテンツはリクエスト URI から削除する必要があります。デフォルトは「true」。
shouldRemoveSemicolonContent
public boolean shouldRemoveSemicolonContent()";" を削除するように設定されているかどうか(セミコロン)リクエスト URI のコンテンツ。setDefaultEncoding
URL デコードに使用するデフォルトの文字エンコードを設定します。サーブレット仕様によると、デフォルトは ISO-8859-1 です。リクエスト自体が文字エンコーディングを指定している場合、リクエストのエンコーディングはこの設定をオーバーライドします。これにより、
ServletRequest.setCharacterEncodingメソッドを呼び出すフィルターの文字エンコードを一般的にオーバーライドすることもできます。- パラメーター:
defaultEncoding- 使用する文字エンコーディング- 関連事項:
getDefaultEncoding
URL のデコードに使用するデフォルトの文字エンコーディングを返します。resolveAndCacheLookupPath
lookupPath をResolveし、キーPATH_ATTRIBUTEを使用してリクエスト属性にキャッシュし、その後getResolvedLookupPath(ServletRequest)経由でアクセスできるようにします。- パラメーター:
request- 現在のリクエスト- 戻り値:
- 解決されたパス
- 導入:
- 5.3
getResolvedLookupPath
以前のresolvedlookupPath を返します。- パラメーター:
request- 現在のリクエスト- 戻り値:
- 以前に解決された lookupPath
- 例外:
IllegalArgumentExceptionSE- ルックアップパスが見つからない場合- 導入:
- 5.3
getLookupPathForRequest
@DeprecatedSE public StringSE getLookupPathForRequest(HttpServletRequestEE request, @Nullable StringSE name) 使用すべきではありません。resolveAndCacheLookupPath(HttpServletRequest)およびgetResolvedLookupPath(ServletRequest)の使用を推奨する 5.3 以降。リクエスト属性として保存された、以前に計算された lookupPath のチェックを自動化するgetLookupPathForRequest(HttpServletRequest)のバリアント。この属性は、検索目的でのみ使用されます。- パラメーター:
request- 現在の HTTP リクエストname- lookupPath を保持するリクエスト属性- 戻り値:
- ルックアップパス
- 導入:
- 5.2
getLookupPathForRequest
該当する場合は現在のサーブレットマッピング内、そうでない場合は Web アプリケーション内で、指定されたリクエストのマッピングルックアップパスを返します。RequestDispatcher include 内で呼び出された場合、include リクエスト URL を検出します。
- パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- ルックアップパス
- 関連事項:
getPathWithinServletMapping
指定されたリクエストのサーブレットマッピング内のパス、つまりサーブレットを呼び出した部分を超えるリクエストの URL の部分、または URL 全体がサーブレットの識別に使用されている場合は "" を返します。- パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- サーブレットマッピング内のパス、または ""
- 関連事項:
getPathWithinServletMapping
protected StringSE getPathWithinServletMapping(HttpServletRequestEE request, StringSE pathWithinApp) 指定されたリクエストのサーブレットマッピング内のパス、つまりサーブレットを呼び出した部分を超えるリクエストの URL の部分、または URL 全体がサーブレットの識別に使用されている場合は "" を返します。RequestDispatcher include 内で呼び出された場合、include リクエスト URL を検出します。
次に例を示します: サーブレットマッピング ="/*"; リクエスト URI="/test/a" → "/test/a"。
次に例を示します: サーブレットマッピング ="/"; リクエスト URI="/test/a" → "/test/a"。
次に例を示します: サーブレットマッピング ="/test/*"; リクエスト URI="/test/a" → "/a"。
次に例を示します: サーブレットマッピング ="/test"; リクエスト URI="/test" → ""。
次に例を示します: サーブレットマッピング ="/*.test"; リクエスト URI="/a.test" → ""。
- パラメーター:
request- 現在の HTTP リクエストpathWithinApp- アプリケーション内の事前計算されたパス- 戻り値:
- サーブレットマッピング内のパス、または ""
- 導入:
- 5.2.9
- 関連事項:
getPathWithinApplication
指定されたリクエストの Web アプリケーション内のパスを返します。RequestDispatcher include 内で呼び出された場合、include リクエスト URL を検出します。
- パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- Web アプリケーション内のパス
- 関連事項:
getRequestUri
指定されたリクエストのリクエスト URI を返します。RequestDispatcher インクルード内で呼び出された場合、インクルードリクエスト URL を検出します。request.getRequestURI()によって返される値はサーブレットコンテナーによってデコードされないため、このメソッドはそれをデコードします。Web コンテナーが解決する URI は正しいはずですが、JBoss/Jetty などの一部のコンテナーには ";" が誤って含まれています。URI の "; jsessionid" のような文字列。このメソッドは、このような誤った付録を切り捨てます。
- パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- リクエスト URI
getContextPath
RequestDispatcher インクルード内で呼び出された場合にインクルードリクエスト URL を検出して、指定されたリクエストのコンテキストパスを返します。request.getContextPath()によって返される値はサーブレットコンテナーによってデコードされないため、このメソッドはそれをデコードします。- パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- コンテキストパス
getServletPath
RequestDispatcher インクルード内で呼び出された場合、インクルードリクエスト URL に関して、指定されたリクエストのサーブレットパスを返します。request.getServletPath()によって返された値はサーブレットコンテナーによってすでにデコードされているため、このメソッドはそれをデコードしようとしません。- パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- サーブレットのパス
getOriginatingRequestUri
指定されたリクエストのリクエスト URI を返します。これが転送されたリクエストである場合、元のリクエストのリクエスト URI に正しく解決されます。getOriginatingContextPath
RequestDispatcher インクルード内で呼び出された場合にインクルードリクエスト URL を検出して、指定されたリクエストのコンテキストパスを返します。request.getContextPath()によって返される値はサーブレットコンテナーによってデコードされないため、このメソッドはそれをデコードします。- パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- コンテキストパス
getOriginatingServletPath
RequestDispatcher インクルード内で呼び出された場合にインクルードリクエスト URL を検出して、指定されたリクエストのサーブレットパスを返します。- パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- サーブレットのパス
getOriginatingQueryString
指定されたリクエストの URL のクエリ文字列部分を返します。これが転送されたリクエストである場合、元のリクエストのクエリ文字列に正しく解決されます。- パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- クエリ文字列
decodeRequestString
指定されたソース文字列を URLDecoder でデコードします。エンコーディングはリクエストから取得され、デフォルトの "ISO-8859-1" にフォールバックします。デフォルトの実装では
URLDecoder.decode(input, enc)を使用します。- パラメーター:
request- 現在の HTTP リクエストsource- デコードする文字列- 戻り値:
- デコードされた文字列
- 関連事項:
determineEncoding
指定されたリクエストのエンコーディングを決定します。サブクラスでオーバーライドできます。デフォルトの実装では、リクエストのエンコーディングをチェックし、このリゾルバーに指定されているデフォルトのエンコーディングにフォールバックします。
- パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- リクエストのエンコーディング (非
null) - 関連事項:
removeSemicolonContent
removeSemicolonContent プロパティが "true" に設定されている場合、指定されたリクエスト URI から ";" (セミコロン) コンテンツを削除します。"jsessionid" は常に削除されることに注意してください。- パラメーター:
requestUri- 削除するリクエスト URI 文字列 ";" からのコンテンツ- 戻り値:
- 更新された URI 文字列
decodePathVariables
public MapSE<StringSE,StringSE> decodePathVariables(HttpServletRequestEE request, MapSE<StringSE, StringSE> vars) setUrlDecode(boolean)がtrueに設定されていない限り、指定された URI パス変数をdecodeRequestString(jakarta.servlet.http.HttpServletRequest, java.lang.String)を介してデコードします。この場合、変数の抽出元の URL パスはgetLookupPathForRequest(HttpServletRequest)の呼び出しによってすでにデコードされていると見なされます。- パラメーター:
request- 現在の HTTP リクエストvars- URL パスから抽出された URI 変数- 戻り値:
- 同じ Map または新しい Map インスタンス
decodeMatrixVariables
public MultiValueMap<StringSE,StringSE> decodeMatrixVariables(HttpServletRequestEE request, MultiValueMap<StringSE, StringSE> vars) setUrlDecode(boolean)がtrueに設定されていない限り、指定されたマトリックス変数をdecodeRequestString(jakarta.servlet.http.HttpServletRequest, java.lang.String)を介してデコードします。この場合、変数の抽出元の URL パスはgetLookupPathForRequest(HttpServletRequest)の呼び出しによってすでにデコードされていると見なされます。- パラメーター:
request- 現在の HTTP リクエストvars- URL パスから抽出された URI 変数- 戻り値:
- 同じ Map または新しい Map インスタンス
resolveAndCacheLookupPath(HttpServletRequest)およびgetResolvedLookupPath(ServletRequest)の使用を推奨する 5.3 以降。