public class UrlPathHelper
extends java.lang.ObjectAbstractUrlHandlerMapping および RequestContext で、パスのマッチングや URI の決定に使用されます。
| コンストラクターと説明 |
|---|
UrlPathHelper() |
| 修飾子と型 | メソッドと説明 |
|---|---|
MultiValueMap<java.lang.String,java.lang.String> | decodeMatrixVariables(HttpServletRequestEE request, MultiValueMap<java.lang.String,java.lang.String> vars)setUrlDecode(boolean) が true に設定されていない限り、指定されたマトリックス変数を decodeRequestString(HttpServletRequest, String) を介してデコードします。この場合、変数の抽出元の URL パスは getLookupPathForRequest(HttpServletRequest) の呼び出しによってすでにデコードされていると見なされます。 |
java.util.Map<java.lang.String,java.lang.String> | decodePathVariables(HttpServletRequestEE request, java.util.Map<java.lang.String,java.lang.String> vars)setUrlDecode(boolean) が true に設定されていない限り、指定された URI パス変数を decodeRequestString(HttpServletRequest, String) を介してデコードします。この場合、変数の抽出元の URL パスは getLookupPathForRequest(HttpServletRequest) の呼び出しによってすでにデコードされていると見なされます。 |
java.lang.String | decodeRequestString(HttpServletRequestEE request, java.lang.String source) 指定されたソース文字列を URLDecoder でデコードします。 |
protected java.lang.String | determineEncoding(HttpServletRequestEE request) 指定されたリクエストのエンコーディングを決定します。 |
java.lang.String | getContextPath(HttpServletRequestEE request)RequestDispatcher インクルード内で呼び出された場合にインクルードリクエスト URL を検出して、指定されたリクエストのコンテキストパスを返します。 |
protected java.lang.String | getDefaultEncoding()URL のデコードに使用するデフォルトの文字エンコーディングを返します。 |
java.lang.String | getLookupPathForRequest(HttpServletRequestEE request) 該当する場合は現在のサーブレットマッピング内、そうでない場合は Web アプリケーション内で、指定されたリクエストのマッピングルックアップパスを返します。 |
java.lang.String | getOriginatingContextPath(HttpServletRequestEE request)RequestDispatcher インクルード内で呼び出された場合にインクルードリクエスト URL を検出して、指定されたリクエストのコンテキストパスを返します。 |
java.lang.String | getOriginatingQueryString(HttpServletRequestEE request) 指定されたリクエストの URL のクエリ文字列部分を返します。 |
java.lang.String | getOriginatingRequestUri(HttpServletRequestEE request) 指定されたリクエストのリクエスト URI を返します。 |
java.lang.String | getOriginatingServletPath(HttpServletRequestEE request)RequestDispatcher インクルード内で呼び出された場合にインクルードリクエスト URL を検出して、指定されたリクエストのサーブレットパスを返します。 |
java.lang.String | getPathWithinApplication(HttpServletRequestEE request) 指定されたリクエストの Web アプリケーション内のパスを返します。 |
java.lang.String | getPathWithinServletMapping(HttpServletRequestEE request) 指定されたリクエストのサーブレットマッピング内のパスを返します。 |
java.lang.String | getRequestUri(HttpServletRequestEE request) 指定されたリクエストのリクエスト URI を返します。RequestDispatcher インクルード内で呼び出された場合、インクルードリクエスト URL を検出します。 |
java.lang.String | getServletPath(HttpServletRequestEE request)RequestDispatcher インクルード内で呼び出された場合、インクルードリクエスト URL に関して、指定されたリクエストのサーブレットパスを返します。 |
boolean | isUrlDecode() ルックアップパスを決定するときにリクエスト URI をデコードするかどうか。 |
java.lang.String | removeSemicolonContent(java.lang.String requestUri)removeSemicolonContent プロパティが "true" に設定されている場合、指定されたリクエスト URI から ";" (セミコロン) コンテンツを削除します。 |
void | setAlwaysUseFullPath(boolean alwaysUseFullPath)URL ルックアップで、現在のアプリケーションコンテキスト内で常にフルパスを使用する必要があるかどうか。 |
void | setDefaultEncoding(java.lang.String defaultEncoding)URL デコードに使用するデフォルトの文字エンコードを設定します。 |
void | setRemoveSemicolonContent(boolean removeSemicolonContent) ";" の場合に設定(セミコロン)コンテンツはリクエスト URI から削除する必要があります。 |
void | setUrlDecode(boolean urlDecode) コンテキストパスとリクエスト URI をデコードする必要があるかどうか。どちらも、サーブレットパスとは対照的に、サーブレット API によってデコードされずに返されます。 |
boolean | shouldRemoveSemicolonContent() ";" を削除するように設定されているかどうか(セミコロン)リクエスト URI のコンテンツ。 |
public void setAlwaysUseFullPath(boolean alwaysUseFullPath)
ServletContext.getContextPath()EE 内でフルパスを使用するかどうか。false に設定すると、該当する場合は、代わりに現在のサーブレットマッピング内のパスが使用されます(つまり、"/myServlet/*" などのプレフィックスベースのサーブレットマッピングの場合)。
デフォルトでは、これは "false" に設定されています。
public void setUrlDecode(boolean urlDecode)
"true" に設定すると、リクエストエンコーディングまたはデフォルトのサーブレット仕様エンコーディング(ISO-8859-1)のいずれかが使用されます。
デフォルトでは true に設定されています。
注意 : エンコードされたパスと比較すると、サーブレットパスが一致しないことに注意してください。urlDecode=false の使用は、プレフィックスベースのサーブレットマッピングと互換性がなく、同様に alwaysUseFullPath=true の設定も意味します。
public boolean isUrlDecode()
public void setRemoveSemicolonContent(boolean removeSemicolonContent)
デフォルトは「true」。
public boolean shouldRemoveSemicolonContent()
public void setDefaultEncoding(java.lang.String defaultEncoding)
リクエスト自体が文字エンコーディングを指定している場合、リクエストのエンコーディングはこの設定をオーバーライドします。これにより、ServletRequest.setCharacterEncoding メソッドを呼び出すフィルターの文字エンコードを一般的にオーバーライドすることもできます。
defaultEncoding - 使用する文字エンコーディング determineEncoding(javax.servlet.http.HttpServletRequest), ServletRequest.getCharacterEncoding()EE, ServletRequest.setCharacterEncoding(String)EE, WebUtils.DEFAULT_CHARACTER_ENCODINGprotected java.lang.String getDefaultEncoding()
public java.lang.String getLookupPathForRequest(HttpServletRequestEE request)
RequestDispatcher include 内で呼び出された場合、include リクエスト URL を検出します。
request - 現在の HTTP リクエスト getPathWithinApplication(javax.servlet.http.HttpServletRequest), getPathWithinServletMapping(javax.servlet.http.HttpServletRequest)public java.lang.String getPathWithinServletMapping(HttpServletRequestEE request)
RequestDispatcher include 内で呼び出された場合、include リクエスト URL を検出します。
E. 例: サーブレットマッピング = "/*"; リクエスト URI="/test/a"-> "/test/a"。
E. 例: サーブレットマッピング = "/"; リクエスト URI="/test/a"-> "/test/a"。
E. 例: サーブレットマッピング = "/test/*"; リクエスト URI="/test/a"-> "/ a"。
E. 例: サーブレットマッピング = "/test"; リクエスト URI="/test"-> ""。
E. 例: サーブレットマッピング = "/*.test"; リクエスト URI="/a.test"-> ""。
request - 現在の HTTP リクエスト public java.lang.String getPathWithinApplication(HttpServletRequestEE request)
RequestDispatcher include 内で呼び出された場合、include リクエスト URL を検出します。
request - 現在の HTTP リクエスト public java.lang.String getRequestUri(HttpServletRequestEE request)
request.getRequestURI() によって返される値はサーブレットコンテナーによってデコードされないため、このメソッドはそれをデコードします。
Web コンテナーが解決する URI は正しいはずですが、JBoss/Jetty などの一部のコンテナーには ";" が誤って含まれています。URI の "; jsessionid" のような文字列。このメソッドは、このような誤った付録を切り捨てます。
request - 現在の HTTP リクエスト public java.lang.String getContextPath(HttpServletRequestEE request)
request.getContextPath() によって返される値はサーブレットコンテナーによってデコードされないため、このメソッドはそれをデコードします。
request - 現在の HTTP リクエスト public java.lang.String getServletPath(HttpServletRequestEE request)
request.getServletPath() によって返された値はサーブレットコンテナーによってすでにデコードされているため、このメソッドはそれをデコードしようとしません。
request - 現在の HTTP リクエスト public java.lang.String getOriginatingRequestUri(HttpServletRequestEE request)
public java.lang.String getOriginatingContextPath(HttpServletRequestEE request)
request.getContextPath() によって返される値はサーブレットコンテナーによってデコードされないため、このメソッドはそれをデコードします。
request - 現在の HTTP リクエスト public java.lang.String getOriginatingServletPath(HttpServletRequestEE request)
request - 現在の HTTP リクエスト public java.lang.String getOriginatingQueryString(HttpServletRequestEE request)
request - 現在の HTTP リクエスト public java.lang.String decodeRequestString(HttpServletRequestEE request, java.lang.String source)
デフォルトの実装では URLDecoder.decode(input, enc) を使用します。
request - 現在の HTTP リクエスト source - デコードする文字列 WebUtils.DEFAULT_CHARACTER_ENCODING, ServletRequest.getCharacterEncoding()EE, URLDecoder.decode(String, String), URLDecoder.decode(String)protected java.lang.String determineEncoding(HttpServletRequestEE request)
デフォルトの実装では、リクエストのエンコーディングをチェックし、このリゾルバーに指定されているデフォルトのエンコーディングにフォールバックします。
request - 現在の HTTP リクエスト null)ServletRequest.getCharacterEncoding()EE, setDefaultEncoding(java.lang.String)public java.lang.String removeSemicolonContent(java.lang.String requestUri)
requestUri - 削除するリクエスト URI 文字列 ";" からのコンテンツ public java.util.Map<java.lang.String,java.lang.String> decodePathVariables(HttpServletRequestEE request, java.util.Map<java.lang.String,java.lang.String> vars)
setUrlDecode(boolean) が true に設定されていない限り、指定された URI パス変数を decodeRequestString(HttpServletRequest, String) を介してデコードします。この場合、変数の抽出元の URL パスは getLookupPathForRequest(HttpServletRequest) の呼び出しによってすでにデコードされていると見なされます。request - 現在の HTTP リクエスト vars - URL パスから抽出された URI 変数 public MultiValueMap<java.lang.String,java.lang.String> decodeMatrixVariables(HttpServletRequestEE request, MultiValueMap<java.lang.String,java.lang.String> vars)
setUrlDecode(boolean) が true に設定されていない限り、指定されたマトリックス変数を decodeRequestString(HttpServletRequest, String) を介してデコードします。この場合、変数の抽出元の URL パスは getLookupPathForRequest(HttpServletRequest) の呼び出しによってすでにデコードされていると見なされます。request - 現在の HTTP リクエスト vars - URL パスから抽出された URI 変数