Java Cookie常用方法介绍

2019-12-05  本文已影响0人  勿念及时雨

什么是Cookie?

Cookie翻译成中文是小甜点,小饼干的意思。
Cookie是以键值对形式存储在客户端主机硬盘中,由服务器端发送给客户端,客户端再下一次访问服务器端时,服务器端可以获取到客户端Cookie缓存文件。
Cookie是由服务器端创建的,然后由服务器端发送给客户端,客户端以键值对形式存储Cookie,并标注Cookie的来源。客户端再次访问服务器端时,存储的Cookie会保存在请求协议中,服务器端可以获取上次存储的缓存文件内容。
综上所述,Cookie有如下几个特点:

Cookie规范

Http协议提供了有关Cookie的规范,如今市场上出现了大量的浏览器,一些浏览器对该Cookie规范进行了一些扩展,例如每个Cookie的大小为8KB,最多可保存500个Cookie等,但Cookie缓存文件不会占满硬盘空间。
Http协议的Cookie规范如下:

Cookie类的常用方法

在JavaEE中提供了javax.servlet.http.Cookie类,该类提供了获取Cookie与设置Cookie的相关方法。
构造方法

Cookie(String name, String value)

代码示例:向客户端响应Cookies

// 创建Cookie实例对象
Cookie cookie = new Cookie("user_token", new Date().toString());
// 将Cookie实例对象添加到Response对象中
response.addCookie(cookie);

获取Cookie的名称

getName()

代码示例:读取请求中的Cookie

//通过Request对象获取请求中的Cookies
Cookie[] cookies = request.getCookies();
//判断请求中的Cookies是否存在
if(cookies != null){
    //遍历所有Cookies
    for (Cookie cookie : cookies) {
        // 获取每一个Cookies的名称
        String name = cookie.getName();
        // 判断是否存在一个名为"user_token"的Cookie
        if(name.equals("user_token")){
            // 如果存在,打印到控制台中
            System.out.println("user_token:"+cookie.getValue());
        }
    }
}

设置Cookie的值

setValue(String value)

获取Cookie的值

getValue()

设置Cookie的有效访问路径

setPath(String path)    

代码示例:设置Cookie的有效访问路径为“/main”

// 创建Cookie实例对象
Cookie cookie = new Cookie("user_token", new Date().toString());
// 设置Cookie的有效访问路径
cookie.setPath("/main");
// 将Cookie实例对象添加到Response对象中
response.addCookie(cookie);

获取Cookie的有效访问路径

getPath()

设置Cookie的有效域名

setDomain(String pattern)

代码示例:设置Cookies的有效域名为“.wunian.com”

// 创建Cookie实例对象
Cookie cookie = new Cookie("user_token", new Date().toString());
// 设置Cookie的有效域名
cookie.setDomain(".wunian.com");
// 将Cookie实例对象添加到Response对象中
response.addCookie(cookie);

设置Cookie在浏览器上保持的时间,以秒为单位

setMaxAge(int expiry)   

代码示例:设置持久Cookie的有效时间

// 创建Cookie实例对象
Cookie cookie = new Cookie("user_token", new Date().toString());
// 设置Cookie的有效时间为一天
cookie.setMaxAge(60*60*24);
// 将Cookie实例对象添加到Response对象中
response.addCookie(cookie);

获取Cookie在浏览器上保持的秒数

getMaxAge()

设置Cookie采用的协议版本

setVersion(String version)

获取Cookie采用的协议版本

getVersion()

设置Cookie的注解部分

setComment(String comment)

获取Cookie的注解

getComment()

设置Cookie是否使用安全的协议传送

setSecure(boolean isSecure)

获取Cookie是否使用安全的协议传送

getSecure()

Cookie的生命

所谓生命就是Cookie在客户端的有效时间,可以通过setMaxAge(int expiry)来设置Cookie的有效时间。

cookie.setMaxAge(-1)

Cookie的maxAge属性的默认值就是-1,表示只在浏览器内存中存活。一旦关闭浏览器窗口,那么Cookie就会消失。

cookie.setMaxAge(60*60)

表示Cookie对象可存活1小时。当生命大于0时,浏览器会把Cookie保存到硬盘上,就算关闭浏览器或者重启客户端电脑,Cookie也会存活1小时。

cookie.setMaxAge(0)

Cookie生命等于0是一个特殊的值,它表示cookie被作废。通常用来删除一个Cookie。

上一篇下一篇

猜你喜欢

热点阅读