HTTP request and response headers are represented by this class which implements the interface {@link java.util.Map}< {@link java.lang.String}, {@link java.util.List}< {@link java.lang.String}>>. The keys are case-insensitive Strings representing the header names and the value associated with each key is a {@link List}< {@link String}> with one element for each occurence of the header name in the request or response.
For example, if a response header instance contains one key "HeaderName" with two values "value1 and value2" then this object is output as two header lines:
HeaderName: value1 HeaderName: value2
All the normal {@link java.util.Map} methods are provided, but the followingadditional convenience methods are most likely to be used:
- {@link #getFirst(String)} returns a single valued header or the first value ofa multi-valued header.
- {@link #add(String,String)} adds the given header value to the list for the given key
- {@link #set(String,String)} sets the given header field to the single value givenoverwriting any existing values in the value list.
All methods in this class accept null
values for keys and values. However, null keys will never will be present in HTTP request headers, and will not be output/sent in response headers. Null values can be represented as either a null entry for the key (i.e. the list is null) or where the key has a list, but one (or more) of the list's values is null. Null values are output as a header line containing the key but no associated value.
@since 1.6