Package org.eclipse.jetty.util
Class UrlEncoded
- java.lang.Object
-
- java.util.AbstractMap<K,V>
-
- java.util.HashMap<K,V>
-
- java.util.LinkedHashMap<java.lang.String,java.util.List<V>>
-
- org.eclipse.jetty.util.MultiMap<java.lang.String>
-
- org.eclipse.jetty.util.UrlEncoded
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,java.util.Map<java.lang.String,java.util.List<java.lang.String>>
public class UrlEncoded extends MultiMap<java.lang.String> implements java.lang.Cloneable
Handles coding of MIME "x-www-form-urlencoded".This class handles the encoding and decoding for either the query string of a URL or the _content of a POST HTTP request.
NotesThe UTF-8 charset is assumed, unless otherwise defined by either passing a parameter or setting the "org.eclipse.jetty.util.UrlEncoding.charset" System property.
The hashtable either contains String single values, vectors of String or arrays of Strings.
This class is only partially synchronised. In particular, simple get operations are not protected from concurrent updates.
- See Also:
URLEncoder
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.nio.charset.Charset
ENCODING
-
Constructor Summary
Constructors Constructor Description UrlEncoded()
UrlEncoded(java.lang.String query)
UrlEncoded(UrlEncoded url)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
clone()
void
decode(java.lang.String query)
void
decode(java.lang.String query, java.nio.charset.Charset charset)
static void
decode88591To(java.io.InputStream in, MultiMap<java.lang.String> map, int maxLength, int maxKeys)
Decoded parameters to MultiMap, using ISO8859-1 encodings.static java.lang.String
decodeString(java.lang.String encoded)
Decode String with % encoding.static java.lang.String
decodeString(java.lang.String encoded, int offset, int length, java.nio.charset.Charset charset)
Decode String with % encoding.static void
decodeTo(java.io.InputStream in, MultiMap<java.lang.String> map, java.lang.String charset, int maxLength, int maxKeys)
Decoded parameters to Map.static void
decodeTo(java.io.InputStream in, MultiMap<java.lang.String> map, java.nio.charset.Charset charset, int maxLength, int maxKeys)
Decoded parameters to Map.static void
decodeTo(java.lang.String content, MultiMap<java.lang.String> map, java.lang.String charset)
Decoded parameters to Map.static void
decodeTo(java.lang.String content, MultiMap<java.lang.String> map, java.nio.charset.Charset charset)
Decoded parameters to Map.static void
decodeUtf16To(java.io.InputStream in, MultiMap<java.lang.String> map, int maxLength, int maxKeys)
static void
decodeUtf8To(java.io.InputStream in, MultiMap<java.lang.String> map, int maxLength, int maxKeys)
Decoded parameters to Map.static void
decodeUtf8To(java.lang.String query, int offset, int length, MultiMap<java.lang.String> map)
Decoded parameters to Map.static void
decodeUtf8To(java.lang.String query, MultiMap<java.lang.String> map)
java.lang.String
encode()
Encode MultiMap with % encoding for UTF8 sequences.java.lang.String
encode(java.nio.charset.Charset charset)
Encode MultiMap with % encoding for arbitrary Charset sequences.java.lang.String
encode(java.nio.charset.Charset charset, boolean equalsForNullValue)
Encode MultiMap with % encoding.static java.lang.String
encode(MultiMap<java.lang.String> map, java.nio.charset.Charset charset, boolean equalsForNullValue)
Encode MultiMap with % encoding.static java.lang.String
encodeString(java.lang.String string)
Perform URL encoding.static java.lang.String
encodeString(java.lang.String string, java.nio.charset.Charset charset)
Perform URL encoding.-
Methods inherited from class org.eclipse.jetty.util.MultiMap
add, addAllValues, addValues, addValues, containsSimpleValue, getString, getValue, getValues, put, putAllValues, putValues, putValues, removeValue, toString, toStringArrayMap
-
Methods inherited from class java.util.LinkedHashMap
clear, containsValue, entrySet, forEach, get, getOrDefault, keySet, removeEldestEntry, replaceAll, values
-
Methods inherited from class java.util.HashMap
compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size
-
-
-
-
Constructor Detail
-
UrlEncoded
public UrlEncoded(UrlEncoded url)
-
UrlEncoded
public UrlEncoded()
-
UrlEncoded
public UrlEncoded(java.lang.String query)
-
-
Method Detail
-
decode
public void decode(java.lang.String query)
-
decode
public void decode(java.lang.String query, java.nio.charset.Charset charset)
-
encode
public java.lang.String encode()
Encode MultiMap with % encoding for UTF8 sequences.- Returns:
- the MultiMap as a string with % encoding
-
encode
public java.lang.String encode(java.nio.charset.Charset charset)
Encode MultiMap with % encoding for arbitrary Charset sequences.- Parameters:
charset
- the charset to use for encoding- Returns:
- the MultiMap as a string encoded with % encodings
-
encode
public java.lang.String encode(java.nio.charset.Charset charset, boolean equalsForNullValue)
Encode MultiMap with % encoding.- Parameters:
charset
- the charset to encode withequalsForNullValue
- if True, then an '=' is always used, even for parameters without a value. e.g."blah?a=&b=&c="
.- Returns:
- the MultiMap as a string encoded with % encodings
-
encode
public static java.lang.String encode(MultiMap<java.lang.String> map, java.nio.charset.Charset charset, boolean equalsForNullValue)
Encode MultiMap with % encoding.- Parameters:
map
- the map to encodecharset
- the charset to use for encoding (uses default encoding if null)equalsForNullValue
- if True, then an '=' is always used, even for parameters without a value. e.g."blah?a=&b=&c="
.- Returns:
- the MultiMap as a string encoded with % encodings.
-
decodeTo
public static void decodeTo(java.lang.String content, MultiMap<java.lang.String> map, java.lang.String charset)
Decoded parameters to Map.- Parameters:
content
- the string containing the encoded parametersmap
- the MultiMap to put parsed query parameters intocharset
- the charset to use for decoding
-
decodeTo
public static void decodeTo(java.lang.String content, MultiMap<java.lang.String> map, java.nio.charset.Charset charset)
Decoded parameters to Map.- Parameters:
content
- the string containing the encoded parametersmap
- the MultiMap to put parsed query parameters intocharset
- the charset to use for decoding
-
decodeUtf8To
public static void decodeUtf8To(java.lang.String query, MultiMap<java.lang.String> map)
-
decodeUtf8To
public static void decodeUtf8To(java.lang.String query, int offset, int length, MultiMap<java.lang.String> map)
Decoded parameters to Map.- Parameters:
query
- the string containing the encoded parametersoffset
- the offset within raw to decode fromlength
- the length of the section to decodemap
- theMultiMap
to populate
-
decode88591To
public static void decode88591To(java.io.InputStream in, MultiMap<java.lang.String> map, int maxLength, int maxKeys) throws java.io.IOException
Decoded parameters to MultiMap, using ISO8859-1 encodings.- Parameters:
in
- InputSteam to readmap
- MultiMap to add parameters tomaxLength
- maximum length of form to read or -1 for no limitmaxKeys
- maximum number of keys to read or -1 for no limit- Throws:
java.io.IOException
- if unable to decode the InputStream as ISO8859-1
-
decodeUtf8To
public static void decodeUtf8To(java.io.InputStream in, MultiMap<java.lang.String> map, int maxLength, int maxKeys) throws java.io.IOException
Decoded parameters to Map.- Parameters:
in
- InputSteam to readmap
- MultiMap to add parameters tomaxLength
- maximum form length to decode or -1 for no limitmaxKeys
- the maximum number of keys to read or -1 for no limit- Throws:
java.io.IOException
- if unable to decode the input stream
-
decodeUtf16To
public static void decodeUtf16To(java.io.InputStream in, MultiMap<java.lang.String> map, int maxLength, int maxKeys) throws java.io.IOException
- Throws:
java.io.IOException
-
decodeTo
public static void decodeTo(java.io.InputStream in, MultiMap<java.lang.String> map, java.lang.String charset, int maxLength, int maxKeys) throws java.io.IOException
Decoded parameters to Map.- Parameters:
in
- the stream containing the encoded parametersmap
- the MultiMap to decode intocharset
- the charset to use for decodingmaxLength
- the maximum length of the form to decode or -1 for no limitmaxKeys
- the maximum number of keys to decode or -1 for no limit- Throws:
java.io.IOException
- if unable to decode the input stream
-
decodeTo
public static void decodeTo(java.io.InputStream in, MultiMap<java.lang.String> map, java.nio.charset.Charset charset, int maxLength, int maxKeys) throws java.io.IOException
Decoded parameters to Map.- Parameters:
in
- the stream containing the encoded parametersmap
- the MultiMap to decode intocharset
- the charset to use for decodingmaxLength
- the maximum length of the form to decodemaxKeys
- the maximum number of keys to decode- Throws:
java.io.IOException
- if unable to decode input stream
-
decodeString
public static java.lang.String decodeString(java.lang.String encoded)
Decode String with % encoding. This method makes the assumption that the majority of calls will need no decoding.- Parameters:
encoded
- the encoded string to decode- Returns:
- the decoded string
-
decodeString
public static java.lang.String decodeString(java.lang.String encoded, int offset, int length, java.nio.charset.Charset charset)
Decode String with % encoding. This method makes the assumption that the majority of calls will need no decoding.- Parameters:
encoded
- the encoded string to decodeoffset
- the offset in the encoded string to decode fromlength
- the length of characters in the encoded string to decodecharset
- the charset to use for decoding- Returns:
- the decoded string
-
encodeString
public static java.lang.String encodeString(java.lang.String string)
Perform URL encoding.- Parameters:
string
- the string to encode- Returns:
- encoded string.
-
encodeString
public static java.lang.String encodeString(java.lang.String string, java.nio.charset.Charset charset)
Perform URL encoding.- Parameters:
string
- the string to encodecharset
- the charset to use for encoding- Returns:
- encoded string.
-
clone
public java.lang.Object clone()
- Overrides:
clone
in classjava.util.HashMap<java.lang.String,java.util.List<java.lang.String>>
-
-