Class Headers

All Implemented Interfaces:
Serializable, Cloneable, Map<String,List<String>>, NavigableMap<String,List<String>>, SortedMap<String,List<String>>

public class Headers extends TreeMap<String,List<String>>
HTTP request and response headers are represented by this class which implements the interface Map<String, List<String>>. The keys are case-insensitive Strings representing the header names and the value associated with each key is a List<String> with one element for each occurrence of the header name in the request or response.

For example, if the request has the the following headers:

 HeaderName: value1
 HeadernaMe: value2
 
Then get("hEaDeRnAmE") would give both "value1", and "value2" values in a list

All the normal Map methods are provided, but the following additional convenience methods are most likely to be used:

  • getFirst(String) returns a single valued header or the first value of a multi-valued header.
  • add(String,String) adds the given header value to the list for the given key
  • set(String,String) sets the given header field to the single value given overwriting 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.

Author:
Jitendra Kotamraju
See Also:
  • Constructor Details

    • Headers

      public Headers()
  • Method Details

    • add

      public void add(String key, String value)
      Adds the given value to the list of headers for the given key. If the mapping does not already exist, then it is created.
      Parameters:
      key - the header name
      value - the header value to add to the header
    • getFirst

      public String getFirst(String key)
      Returns the first value from the List of String values for the given key (if at least one exists).
      Parameters:
      key - the key to search for
      Returns:
      the first string value associated with the key
    • set

      public void set(String key, String value)
      Sets the given value as the sole header value for the given key. If the mapping does not already exist, then it is created.
      Parameters:
      key - the header name
      value - the header value to set.
    • putAll

      public void putAll(Map<? extends String,? extends List<String>> map)
      Added to fix issue putAll() is easier to deal with as it doesn't return anything
      Specified by:
      putAll in interface Map<String,List<String>>
      Overrides:
      putAll in class TreeMap<String,List<String>>