模块  java.base
软件包  java.net

Class HttpCookie

    • 构造方法摘要

      构造方法  
      构造器 描述
      HttpCookie​(String name, String value)
      构造具有指定名称和值的cookie。
    • 方法摘要

      所有方法  静态方法  实例方法 具体的方法 
      变量和类型 方法 描述
      Object clone()
      创建并返回此对象的副本。
      static boolean domainMatches​(String domain, String host)
      检查主机名是否在域中的实用方法。
      boolean equals​(Object obj)
      测试两个HTTP cookie的相等性。
      String getComment()
      返回描述此cookie用途的注释,如果cookie没有注释,则返回 null
      String getCommentURL()
      返回描述此cookie用途的注释URL,如果cookie没有注释URL,则返回 null
      boolean getDiscard()
      返回cookie的discard属性
      String getDomain()
      返回为此cookie设置的域名。
      long getMaxAge()
      返回cookie的最大年龄,以秒为单位指定。
      String getName()
      返回cookie的名称。
      String getPath()
      返回浏览器返回此cookie的服务器上的路径。
      String getPortlist()
      返回cookie的端口列表属性
      boolean getSecure()
      返回 true如果发送此cookie应该被限制在一个安全的协议,或 false如果它可以使用任何协议发送。
      String getValue()
      返回cookie的值。
      int getVersion()
      返回此cookie符合的协议版本。
      boolean hasExpired()
      报告此HTTP cookie是否已过期。
      int hashCode()
      返回此HTTP cookie的哈希码。
      boolean isHttpOnly()
      如果此cookie包含 HttpOnly属性,则返回 true
      static List<HttpCookie> parse​(String header)
      从set-cookie或set-cookie2标头字符串构造cookie。
      void setComment​(String purpose)
      指定描述cookie用途的注释。
      void setCommentURL​(String purpose)
      指定描述cookie用途的注释URL。
      void setDiscard​(boolean discard)
      指定用户代理是否应无条件地丢弃cookie。
      void setDomain​(String pattern)
      指定应在其中显示此cookie的域。
      void setHttpOnly​(boolean httpOnly)
      指示cookie是否应被视为仅HTTP。
      void setMaxAge​(long expiry)
      以秒为单位设置cookie的最大年龄。
      void setPath​(String uri)
      指定客户端应返回cookie的cookie的路径。
      void setPortlist​(String ports)
      指定cookie的端口列表,它限制cookie可以在Cookie头中发送回的端口。
      void setSecure​(boolean flag)
      指示是否应仅使用安全协议(例如HTTPS或SSL)发送cookie。
      void setValue​(String newValue)
      创建cookie后,为cookie分配新值。
      void setVersion​(int v)
      设置此cookie符合的cookie协议的版本。
      String toString()
      构造此cookie的cookie头字符串表示形式,其格式由相应的cookie规范定义,但没有前导“Cookie:”令牌。
    • 构造方法详细信息

      • HttpCookie

        public HttpCookie​(String name,                  String value)
        构造具有指定名称和值的cookie。

        该名称必须符合RFC 2965.这意味着它只能包含ASCII字母数字字符,不能包含逗号,分号或空格或以$字符开头。 创建后无法更改cookie的名称。

        值可以是服务器选择发送的任何值。 它的值可能只对服务器感兴趣。 使用setValue方法创建cookie后,可以更改cookie的值。

        默认情况下,cookie是根据RFC 2965 cookie规范创建的。 可以使用setVersion方法更改版本。

        参数
        name - 指定cookie名称的 String
        value - 指定cookie值的 String
        异常
        IllegalArgumentException - 如果cookie名称包含非法字符
        NullPointerException - 如果 namenull
        另请参见:
        setValue(java.lang.String)setVersion(int)
    • 方法详细信息

      • parse

        public static List<HttpCookie> parse​(String header)
        从set-cookie或set-cookie2标头字符串构造cookie。 RFC 2965第3.2.2节set-cookie2语法表明一个标题行可能包含多个cookie定义,因此这是一个静态实用程序方法而不是另一个构造函数。
        参数
        header - 指定set-cookie标头的String 标题应以“set-cookie”或“set-cookie2”标记开头; 或者根本没有领先的标记。
        结果
        从标题行字符串解析的cookie列表
        异常
        IllegalArgumentException - 如果标题字符串违反cookie规范的语法或cookie名称包含非法字符。
        NullPointerException - 如果标题字符串是 null
      • hasExpired

        public boolean hasExpired()
        报告此HTTP cookie是否已过期。
        结果
        true表示此HTTP cookie已过期; 否则, false
      • setComment

        public void setComment​(String purpose)
        指定描述cookie用途的注释。 如果浏览器将cookie提供给用户,则注释很有用。 Netscape Version 0 cookie不支持评论。
        参数
        purpose - 指定要显示给用户的注释的 String
        另请参见:
        getComment()
      • getComment

        public String getComment()
        返回描述此cookie用途的注释,如果cookie没有注释,则返回 null
        结果
        一个 String包含注释,或 null如果没有
        另请参见:
        setComment(java.lang.String)
      • setCommentURL

        public void setCommentURL​(String purpose)
        指定描述cookie用途的注释URL。 如果浏览器将cookie提供给用户,则注释URL非常有用。 注释URL仅为RFC 2965。
        参数
        purpose - 指定要显示给用户的注释URL的 String
        另请参见:
        getCommentURL()
      • getCommentURL

        public String getCommentURL()
        返回描述此cookie用途的注释URL,如果cookie没有注释URL,则返回 null
        结果
        一个 String包含注释URL,或 null如果没有
        另请参见:
        setCommentURL(java.lang.String)
      • setDiscard

        public void setDiscard​(boolean discard)
        指定用户代理是否应无条件地丢弃cookie。 这是RFC 2965唯一属性。
        参数
        discard - true表示无条件地丢弃cookie
        另请参见:
        getDiscard()
      • getDiscard

        public boolean getDiscard()
        返回cookie的discard属性
        结果
        boolean表示此cookie的discard属性
        另请参见:
        setDiscard(boolean)
      • setPortlist

        public void setPortlist​(String ports)
        指定cookie的端口列表,它限制cookie可以在Cookie头中发送回的端口。
        参数
        ports - a String指定端口列表,这是逗号分隔的数字系列
        另请参见:
        getPortlist()
      • getPortlist

        public String getPortlist()
        返回cookie的端口列表属性
        结果
        a String包含端口列表,如果没有, String包含 null
        另请参见:
        setPortlist(java.lang.String)
      • setDomain

        public void setDomain​(String pattern)
        指定应在其中显示此cookie的域。

        域名的形式由RFC 2965指定。域名以点( .foo.com )开头,表示cookie对指定域名系统(DNS)区域中的服务器可见(例如, www.foo.com ,但不是a.b.foo.com )。 默认情况下,cookie仅返回发送它们的服务器。

        参数
        pattern - 包含可在其中String此cookie的域名的String ; 表格是根据RFC 2965
        另请参见:
        getDomain()
      • getDomain

        public String getDomain()
        返回为此cookie设置的域名。 域名的形式由RFC 2965设置。
        结果
        包含域名的 String
        另请参见:
        setDomain(java.lang.String)
      • setMaxAge

        public void setMaxAge​(long expiry)
        以秒为单位设置cookie的最大年龄。

        正值表示cookie将在经过许多秒后过期。 请注意,该值是cookie过期时的最大年龄,而不是cookie的当前年龄。

        负值表示cookie不会持久存储,并在Web浏览器退出时被删除。 零值会导致cookie被删除。

        参数
        expiry - 一个整数,以秒为单位指定cookie的最大年龄; 如果为零,则应立即丢弃cookie; 否则,cookie的最大年龄未指定。
        另请参见:
        getMaxAge()
      • getMaxAge

        public long getMaxAge()
        返回cookie的最大年龄,以秒为单位指定。 默认情况下, -1指示cookie将一直存在,直到浏览器关闭。
        结果
        一个整数,以秒为单位指定cookie的最大年龄
        另请参见:
        setMaxAge(long)
      • setPath

        public void setPath​(String uri)
        指定客户端应返回cookie的cookie的路径。

        cookie对于您指定的目录中的所有页面以及该目录的子目录中的所有页面都是可见的。 cookie的路径必须包含设置cookie的servlet,例如/ catalog ,这使得cookie对/ catalog下的服务器上的所有目录都可见。

        有关设置cookie路径名的更多信息,请参阅RFC 2965(可在Internet上获得)。

        参数
        uri - 指定路径的 String
        另请参见:
        getPath()
      • getPath

        public String getPath()
        返回浏览器返回此cookie的服务器上的路径。 cookie对服务器上的所有子路径都是可见的。
        结果
        String指定包含servlet名称的路径,例如 / catalog
        另请参见:
        setPath(java.lang.String)
      • setSecure

        public void setSecure​(boolean flag)
        指示是否应仅使用安全协议(例如HTTPS或SSL)发送cookie。

        默认值为false

        参数
        flag - 如果是true ,则cookie只能通过HTTPS等安全协议发送。 如果是false ,则可以通过任何协议发送。
        另请参见:
        getSecure()
      • getSecure

        public boolean getSecure()
        返回 true如果发送此cookie应该被限制在一个安全的协议,或 false如果它可以使用任何协议发送。
        结果
        false如果cookie可以通过任何标准协议发送; 否则, true
        另请参见:
        setSecure(boolean)
      • getName

        public String getName()
        返回cookie的名称。 创建后无法更改名称。
        结果
        String指定cookie的名称
      • setValue

        public void setValue​(String newValue)
        创建cookie后,为cookie分配新值。 如果使用二进制值,则可能需要使用BASE64编码。

        对于版本0 cookie,值不应包含空格,括号,括号,等号,逗号,双引号,斜杠,问号,符号,冒号和分号。 在所有浏览器上,空值的行为可能不同。

        参数
        newValue - 指定新值的 String
        另请参见:
        getValue()
      • getVersion

        public int getVersion()
        返回此cookie符合的协议版本。 版本1符合RFC 2965/2109,版本0符合Netscape起草的原始cookie规范。 浏览器提供的Cookie使用并识别浏览器的cookie版本。
        结果
        如果cookie符合原始Netscape规范,则为0; 如果cookie符合RFC 2965/2109,则为1
        另请参见:
        setVersion(int)
      • setVersion

        public void setVersion​(int v)
        设置此cookie符合的cookie协议的版本。 版本0符合原始Netscape cookie规范。 版本1符合RFC 2965/2109。
        参数
        v - 如果cookie应符合原始Netscape规范, v 0; 1如果cookie应符合RFC 2965/2109
        异常
        IllegalArgumentException - 如果 v既不是0也不是1
        另请参见:
        getVersion()
      • isHttpOnly

        public boolean isHttpOnly()
        如果此cookie包含HttpOnly属性,则返回true 这意味着脚本引擎不应该访问cookie,例如javascript。
        结果
        true如果此cookie应被视为HTTPOnly
        另请参见:
        setHttpOnly(boolean)
      • setHttpOnly

        public void setHttpOnly​(boolean httpOnly)
        指示cookie是否应被视为仅HTTP。 如果设置为true则意味着javascript等脚本引擎无法访问cookie。
        参数
        httpOnly - 如果 true仅使cookie成为HTTP,即仅作为HTTP请求的一部分可见。
        另请参见:
        isHttpOnly()
      • domainMatches

        public static boolean domainMatches​(String domain,                                    String host)
        检查主机名是否在域中的实用方法。

        cookie规范中描述了这个概念。 要理解这个概念,首先需要定义一些术语:

        effective host name = hostname if host name contains dot
                          or = hostname.local if not

        如果出现以下情况,主机A的域名与主机B匹配:

        • their host name strings string-compare equal; or
        • A is a HDN string and has the form NB, where N is a non-empty name string, B has the form .B', and B' is a HDN string. (So, x.y.com domain-matches .Y.com but not Y.com.)

        如果主机不在域中(RFC 2965 sec.3.3.2):

        • The value for the Domain attribute contains no embedded dots, and the value is not .local.
        • The effective host name that derives from the request-host does not domain-match the Domain attribute.
        • The request-host is a HDN (not IP address) and has the form HD, where D is the value of the Domain attribute, and H is a string that contains one or more dots.

        例子:

        • A Set-Cookie2 from request-host y.x.foo.com for Domain=.foo.com would be rejected, because H is y.x and contains a dot.
        • A Set-Cookie2 from request-host x.foo.com for Domain=.foo.com would be accepted.
        • A Set-Cookie2 with Domain=.com or Domain=.com., will always be rejected, because there is no embedded dot.
        • A Set-Cookie2 from request-host example for Domain=.local will be accepted, because the effective host name for the request- host is example.local, and example.local domain-matches .local.
        参数
        domain - 用于检查主机名的域名
        host - 相关主机名
        结果
        true如果他们域匹配; false如果没有
      • toString

        public String toString()
        构造此cookie的cookie头字符串表示形式,其格式由相应的cookie规范定义,但没有前导“Cookie:”令牌。
        重写:
        toString在类 Object
        结果
        字符串形式的cookie。 该字符串具有已定义的格式
      • equals

        public boolean equals​(Object obj)
        测试两个HTTP cookie的相等性。

        仅当两个cookie来自同一个域(不区分大小写),具有相同名称(不区分大小写)且具有相同路径(区分大小写)时,才会得到true

        重写:
        equals在类 Object
        参数
        obj - 要与之比较的引用对象。
        结果
        true如果两个HTTP cookie彼此相等; 否则, false
        另请参见:
        Object.hashCode()HashMap
      • hashCode

        public int hashCode()
        返回此HTTP cookie的哈希码。 结果是此cookie的三个重要组件的哈希码值的总和:名称,域和路径。 也就是说,哈希码是表达式的值:
        getName().toLowerCase().hashCode()
        + getDomain().toLowerCase().hashCode()
        + getPath().hashCode()
        重写:
        hashCode在类 Object
        结果
        这个HTTP cookie的哈希码
        另请参见:
        Object.equals(java.lang.Object)System.identityHashCode(java.lang.Object)
      • clone

        public Object clone()
        创建并返回此对象的副本。
        重写:
        clone在类 Object
        结果
        此HTTP cookie的克隆
        另请参见:
        Cloneable