Cookie的主要属性,及其方法列于下:
类型 方法名 方法解释
String getComment() 返回cookie中注释,如果没有注释的话将返回空值.
String getDomain() 返回cookie中Cookie适用的域名. 使用getDomain() 方法可以指示浏览器把Cookie返回给同 一域内的其他服务器,而通常Cookie只返回给与发送它的服务器名字完全相同的服务器。注意域名必须以点开始(例如.yesky.com)
int getMaxAge() 返回Cookie过期之前的最大时间,以秒计算。
String getName() 返回Cookie的名字。名字和值是我们始终关心的两个部分,笔者会在后面详细介绍 getName/setName。
String getPath() 返回Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下 的所有页面。
boolean getSecure() 如果浏览器通过安全协议发送cookies将返回true值,如果浏览器使用标准协议则返回false值。
String getValue() 返回Cookie的值。笔者也将在后面详细介绍getValue/setValue。
int getVersion() 返回Cookie所遵从的协议版本。
void setComment(String purpose) 设置cookie中注释。
void setDomain(String pattern) 设置cookie中Cookie适用的域名
void setMaxAge(int expiry) 以秒计算,设置Cookie过期时间。如果设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效。设为0则销毁cookies
void setPath(String uri) 指定Cookie适用的路径。
void setSecure(boolean flag) 指出浏览器使用的安全协议,例如HTTPS或SSL。
void setValue(String newValue) cookie创建后设置一个新的值。
void setVersion(int v) 设置Cookie所遵从的协议版本。
1. 设置Cookie
Cookie cookie = new Cookie("id","id"); cookie.setMaxAge(15*24*60*60); cookie.setPath("/"); response.addCookie(cookie); Cookie cookie2 = new Cookie("pass","pass"); cookie2.setMaxAge(15*24*60*60); cookie2.setPath("/"); response.addCookie(cookie2); Cookie cookie = new Cookie("id","id"); cookie.setMaxAge(15*24*60*60); cookie.setPath("/"); response.addCookie(cookie); Cookie cookie2 = new Cookie("pass","pass"); cookie2.setMaxAge(15*24*60*60); cookie2.setPath("/"); response.addCookie(cookie2);
2. 读取Cookie
Cookie cookies[] = request.getCookies(); String id = ""; String pass = ""; if (cookies != null) { for (int i = 0; i < cookies.length; i++) { if (cookies[i].getName().equals("id")) id = cookies[i].getValue(); else if (cookies[i].getName().equals("pass")) pass = cookies[i].getValue(); } } Cookie cookies[] = request.getCookies(); String id = ""; String pass = ""; if (cookies != null) { for (int i = 0; i < cookies.length; i++) { if (cookies[i].getName().equals("id")) id = cookies[i].getValue(); else if (cookies[i].getName().equals("pass")) pass = cookies[i].getValue(); } }
Cookie cookies[]=request.getCookies() 我们用request.getCookies()读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面。
接下来我们用一个循环语句遍历刚才建立的Cookie对象数组,我们用cookies[i]取出数组中的一个Cookie对象,然后我们用cookies[i].getValue()和cookies[i].getName()两个方法来取得这个Cookie的名字和内容。
3. 销毁cookies
Cookie cookies[] = request.getCookies(); if (cookies != null) { for (int i = 0; i < cookies.length; i++) { cookies[i].setMaxAge(0); cookies[i].setPath("/"); response.addCookie(cookies[i]); } }