org.apache.catalina.util
Class RequestUtil
java.lang.Object
org.apache.catalina.util.RequestUtil
public final class RequestUtil
extends java.lang.Object
General purpose request parsing and encoding utility methods.
Version:
- Craig R. McClanahan
- Tim Tye
static String | URLDecode(String str) - Decode and return the specified URL-encoded String.
|
static String | URLDecode(String str, String enc) - Decode and return the specified URL-encoded String.
|
static String | URLDecode(byte[] bytes) - Decode and return the specified URL-encoded byte array.
|
static String | URLDecode(byte[] bytes, String enc) - Decode and return the specified URL-encoded byte array.
|
static String | encodeCookie(Cookie cookie) - Encode a cookie as per RFC 2109.
|
static String | filter(String message) - Filter the specified message string for characters that are sensitive
in HTML.
|
static String | normalize(String path) - Normalize a relative URI path that may have relative values ("/./",
"/../", and so on ) it it.
|
static String | parseCharacterEncoding(String contentType) - Parse the character encoding from the specified content type header.
|
static Cookie[] | parseCookieHeader(String header) - Parse a cookie header into an array of cookies according to RFC 2109.
|
static void | parseParameters(Map map, String data, String encoding) - Append request parameters from the specified String to the specified
Map.
|
static void | parseParameters(Map map, byte[] data, String encoding) - Append request parameters from the specified String to the specified
Map.
|
URLDecode
public static String URLDecode(String str)
Decode and return the specified URL-encoded String.
When the byte array is converted to a string, the system default
character encoding is used... This may be different than some other
servers.
str
- The url-encoded string
URLDecode
public static String URLDecode(String str,
String enc)
Decode and return the specified URL-encoded String.
str
- The url-encoded stringenc
- The encoding to use; if null, the default encoding is used
URLDecode
public static String URLDecode(byte[] bytes)
Decode and return the specified URL-encoded byte array.
bytes
- The url-encoded byte array
URLDecode
public static String URLDecode(byte[] bytes,
String enc)
Decode and return the specified URL-encoded byte array.
bytes
- The url-encoded byte arrayenc
- The encoding to use; if null, the default encoding is used
encodeCookie
public static String encodeCookie(Cookie cookie)
Encode a cookie as per RFC 2109. The resulting string can be used
as the value for a Set-Cookie
header.
cookie
- The cookie to encode.
- A string following RFC 2109.
filter
public static String filter(String message)
Filter the specified message string for characters that are sensitive
in HTML. This avoids potential attacks caused by including JavaScript
codes in the request URL that is often reported in error messages.
message
- The message string to be filtered
normalize
public static String normalize(String path)
Normalize a relative URI path that may have relative values ("/./",
"/../", and so on ) it it. WARNING - This method is
useful only for normalizing application-generated paths. It does not
try to perform security checks for malicious input.
path
- Relative path to be normalized
parseCharacterEncoding
public static String parseCharacterEncoding(String contentType)
Parse the character encoding from the specified content type header.
If the content type is null, or there is no explicit character encoding,
null
is returned.
contentType
- a content type header
parseCookieHeader
public static Cookie[] parseCookieHeader(String header)
Parse a cookie header into an array of cookies according to RFC 2109.
header
- Value of an HTTP "Cookie" header
parseParameters
public static void parseParameters(Map map,
String data,
String encoding)
throws UnsupportedEncodingException
Append request parameters from the specified String to the specified
Map. It is presumed that the specified Map is not accessed from any
other thread, so no synchronization is performed.
IMPLEMENTATION NOTE: URL decoding is performed
individually on the parsed name and value elements, rather than on
the entire query string ahead of time, to properly deal with the case
where the name or value includes an encoded "=" or "&" character
that would otherwise be interpreted as a delimiter.
map
- Map that accumulates the resulting parametersdata
- Input string containing request parameters
parseParameters
public static void parseParameters(Map map,
byte[] data,
String encoding)
throws UnsupportedEncodingException
Append request parameters from the specified String to the specified
Map. It is presumed that the specified Map is not accessed from any
other thread, so no synchronization is performed.
IMPLEMENTATION NOTE: URL decoding is performed
individually on the parsed name and value elements, rather than on
the entire query string ahead of time, to properly deal with the case
where the name or value includes an encoded "=" or "&" character
that would otherwise be interpreted as a delimiter.
NOTE: byte array data is modified by this method. Caller beware.
map
- Map that accumulates the resulting parametersdata
- Input string containing request parametersencoding
- Encoding to use for converting hex
Copyright B) 2000-2003 Apache Software Foundation. All Rights Reserved.