Module  jdk.httpserver

Class Headers

  • All Implemented Interfaces:
    Map<String,List<String>>


    public class Headers
    extends Object
    implements Map<String,List<String>>
    HTTP请求和响应头通过此类,它实现接口表示Map < StringList < String >>。 密钥是不区分大小写的,表示标题名称和与每个密钥相关联的值的字符串是List < String >,在请求或响应中每个出现标题名称都有一个元素。

    例如,如果响应头实例包含一个具有两个值“value1和value2”的键“HeaderName”,则该对象将作为两个标题行输出:

     HeaderName: value1
     HeaderName: value2
     

    提供所有正常的Map方法,但最有可能使用以下其他方便方法:

    此类中的所有方法都接受键值和值的null值。 但是,空值键永远不会出现在HTTP请求头中,不会在响应头中输出/发送。 空值可以表示为密钥的空条目(即列表为空)或密钥具有列表,但列表的值中的一个(或多个)为空。 空值作为包含密钥但不包含关联值的标题行输出。

    从以下版本开始:
    1.6
    • 构造方法详细信息

      • Headers

        public Headers​()
    • 方法详细信息

      • size

        public int size​()
        描述从接口Map复制
        返回此地图中键值映射的数量。 如果地图包含Integer.MAX_VALUE元素,返回Integer.MAX_VALUE
        Specified by:
        size在接口 Map<String,List<String>>
        结果
        该地图中键值映射的数量
      • isEmpty

        public boolean isEmpty​()
        说明从界面Map复制
        如果此映射不包含键值映射,则返回 true
        Specified by:
        isEmpty在接口 Map<String,List<String>>
        结果
        true如果此映射不包含键值映射
      • containsKey

        public boolean containsKey​(Object key)
        描述从接口Map复制
        如果此映射包含指定键的映射,则返回true 更正式地说,返回true当且仅当此映射包含一个键的映射关系k这样Objects.equals(key, k) (最多可以有一个这样的映射。)
        Specified by:
        containsKey在接口 Map<String,List<String>>
        参数
        key - 在此地图中存在的密钥要进行测试
        结果
        true如果此映射包含指定键的映射
      • containsValue

        public boolean containsValue​(Object value)
        描述从接口Map复制
        如果此映射将一个或多个键映射到指定的值,则返回true 更正式地,返回true当且仅当此映射包含至少一个映射到值v ,使得Objects.equals(value, v) 对于Map接口的大多数实现,此操作可能需要在地图大小的时间线性。
        Specified by:
        containsValue在接口 Map<String,List<String>>
        参数
        value - 要在此地图中存在的值要进行测试
        结果
        true如果该地图将一个或多个键映射到指定的值
      • get

        public List<String> get​(Object key)
        描述从接口Map复制
        返回指定键映射到的值,如果此映射不包含该键的映射,则返回null

        更正式地,如果此映射包含从密钥映射k到值v使得Objects.equals(key, k) ,则此方法返回v ; 否则返回null (最多可以有一个这样的映射。)

        如果此映射允许空值,则返回值为null并不一定表示映射不包含关键字的映射; 地图也可能将密钥明确地映射到null 可以使用containsKey操作来区分这两种情况。

        Specified by:
        get在接口 Map<String,List<String>>
        参数
        key - 要返回其关联值的键
        结果
        指定键映射到的值,如果此映射不包含键的映射, null
      • getFirst

        public String getFirst​(String key)
        从给定键的String列表中返回第一个值(如果至少存在一个)。
        参数
        key - 搜索的关键
        结果
        与键相关联的第一个字符串值
      • put

        public List<String> put​(String key,
                                List<String> value)
        描述从接口Map复制
        将指定的值与该映射中的指定键相关联(可选操作)。 如果映射先前包含了密钥的映射,则旧值将被指定的值替换。 (映射m被称为包含关键字k的映射,当且仅当m.containsKey(k)将返回true 。)
        Specified by:
        put在接口 Map<String,List<String>>
        参数
        key - 要与指定值相关联的键
        value - 与指定键相关联的值
        结果
        先前的值相关联key ,或null如果没有映射key (A null返回也可以表示该地图以前关联的nullkey ,如果实现支持null值)
      • add

        public void add​(String key,
                        String value)
        将给定的值添加到给定键的标题列表中。 如果映射不存在,则创建它
        参数
        key - 标题名称
        value - 要添加到标题的标题值
      • set

        public void set​(String key,
                        String value)
        将给定值设置为给定键的唯一标题值。 如果映射不存在,则创建它
        参数
        key - 标题名称
        value - 要设置的头值。
      • remove

        public List<String> remove​(Object key)
        说明从接口Map复制
        如果存在(从可选的操作),从该地图中删除一个键的映射。 更正式地,如果该映射包含从键k到值v的映射,使得Objects.equals(key, k) ,该映射被去除。 (地图最多可以包含一个这样的映射。)

        返回此映射先前关联该键的值,如果该映射不包含该键的映射,则返回null

        如果此映射允许空值,则返回值为null并不一定表示该映射不包含该键的映射; 地图也可能将密钥显式映射到null

        一旦呼叫返回,该映射将不包含指定键的映射。

        Specified by:
        remove在接口 Map<String,List<String>>
        参数
        key - 要从地图中删除其映射的密钥
        结果
        先前的值相关联 key ,或 null如果没有映射 key
      • putAll

        public void putAll​(Map<? extends String,? extends List<String>> t)
        说明从接口Map复制
        将指定地图的所有映射复制到此映射(可选操作)。 此呼叫的效果等同于在此地图上调用put(k, v)一次,从按键k到指定地图中的值为v每个映射。 如果在操作进行中修改了指定的地图,则此操作的行为是未定义的。
        Specified by:
        putAll在接口 Map<String,List<String>>
        参数
        t - 要存储在此地图中的映射
      • clear

        public void clear​()
        描述从接口Map复制
        从该地图中删除所有的映射(可选操作)。 此呼叫返回后,地图将为空。
        Specified by:
        clear在接口 Map<String,List<String>>
      • keySet

        public Set<String> keySet​()
        说明从接口Map复制
        返回此地图中包含的键的Set视图。 该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的remove操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.removeSet.removeremoveAllretainAll ,和clear操作。 它不支持addaddAll操作。
        Specified by:
        keySet在接口 Map<String,List<String>>
        结果
        该地图中包含的键的集合视图
      • values

        public Collection<List<String>> values​()
        说明从接口Map复制
        返回此地图中包含的值的Collection视图。 集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行时修改映射(除了通过迭代器自己的remove操作),迭代的结果是未定义的。 该collection支持元素移除,即从映射中相应的映射,经由Iterator.removeCollection.removeremoveAllretainAllclear操作。 它不支持addaddAll操作。
        Specified by:
        values在接口 Map<String,List<String>>
        结果
        该地图中包含的值的集合视图
      • entrySet

        public Set<Map.Entry<String,List<String>>> entrySet​()
        说明从界面Map复制
        返回此地图中包含的映射的Set视图。 该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行时(除了通过迭代器自己的remove操作,或者通过迭代器返回的映射条目上的setValue操作),映射被修改,则迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.removeSet.removeremoveAllretainAllclear操作。 它不支持addaddAll操作。
        Specified by:
        entrySet在接口 Map<String,List<String>>
        结果
        该地图中包含的映射的集合视图
      • equals

        public boolean equals​(Object o)
        描述从类复制: Object
        指示一些其他对象是否等于此。

        equals方法在非空对象引用上实现等价关系:

        • 自反性 :对于任何非空的参考值xx.equals(x)应该返回true
        • 它是对称的 :对于任何非空引用值xyx.equals(y)应该返回true当且仅当y.equals(x)回报true
        • 传递性 :对于任何非空引用值xy ,并z ,如果x.equals(y)回报truey.equals(z)回报true ,然后x.equals(z)应该返回true
        • 它是一致的 :对于任何非空引用值xy ,在多次调用x.equals(y)始终返回true或始终返回false ,没有设置中使用的信息equals比较上的对象被修改。
        • 对于任何非空的参考值xx.equals(null)应该返回false

        equals类方法Object实现对象上差别可能性最大的相等关系; 也就是说,对于任何非空参考值xy ,当且仅当xy引用相同对象( x == y具有值true )时,该方法返回true

        请注意,无论何时覆盖该方法,通常需要覆盖hashCode方法,以便维护hashCode方法的一般合同,该方法规定相等的对象必须具有相等的哈希码。

        Specified by:
        equals在接口 Map<String,List<String>>
        重写:
        equalsObject
        参数
        o - 与之比较的参考对象。
        结果
        如果此对象与obj参数相同, true ; false否则。
        另请参见:
        Object.hashCode()HashMap
      • hashCode

        public int hashCode​()
        描述从类复制: Object
        返回对象的哈希码值。 支持这种方法有利于哈希表,如HashMap提供的那些

        hashCode的总合同是:

        • 无论何时在执行Java应用程序时多次调用同一对象, hashCode方法必须始终返回相同的整数,前提是在对象上的equals比较中没有使用任何信息进行修改。 该整数不需要从一个应用程序的执行到相同应用程序的另一个执行保持一致。
        • 如果根据equals(Object)方法两个对象相等,则在两个对象中的每个对象上调用hashCode方法必须产生相同的整数结果。
        • 要求如果两个对象根据Object.equals(java.lang.Object)方法不相等,那么在两个对象中的每个对象上调用hashCode方法必须产生不同的整数结果。 但是,程序员应该意识到,为不等对象生成不同的整数结果可能会提高哈希表的性能。

        尽可能合理实用,由类Object定义的hashCode方法确实为不同对象返回不同的整数。 (在某个时间点,hashCode可能或可能不被实现为对象的存储器地址的某些功能。)

        Specified by:
        hashCode在接口 Map<String,List<String>>
        重写:
        hashCodeObject
        结果
        该对象的哈希码值。
        另请参见:
        Object.equals(java.lang.Object)System.identityHashCode(java.lang.Object)