java操作cookie
同一域名下的子域名的cookie可以互相访问。
在设置cookie的时候,有以下几个方法:
setDomain() 设置cookie的有效domain范围,可以指定当前的domain,也可以指定domain的父级domain(当前domain为二级域名的时候,可以指定有效范围有一级domain)
setPath() 设置cookie的有效路径范围,可以指定根路径(/),说明所有的path都有效;或者指定某一个path(/test),则/test及下级路径都有效
setMaxAge() 设置cookie的最大值,未验证。
在server里准备将一些数据写到cookie时:
Cookie cookie = new Cookie(key, value);
cookie.setDomain(DOMAIN);
cookie.setPath(PATH);
cookie.setMaxAge(COOKIE_MAXAGE);
response.addCookie(cookie);
会把这些信息添加到response中,返回给浏览器,浏览器解析response的时候才会真正的在PC上写cookie,然后下一次给server发送请求的时候,会将cookie里的信息一起发送给浏览器(前提是当前的domain和path在cookie的可用范围内)
在server中获取cookie的时候,
public static String getValue(HttpServletRequest request, String key) {
Cookie myCookie[] = request.getCookies();
if (null != myCookie) {
for (int i = 0; i < myCookie.length; i++) {
Cookie cookie = myCookie[i];
if (key.equals(cookie.getName())) {
try {
String temp = cookie.getValue();
return new String(Base64.decodeBase64(temp.getBytes()));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
return "";
}
是从request中获取的。
server【要求写cookie】——>client【写cookie】——>client【请求时发送cookie】——>server【从请求中获取cookie】
参考:
http://elf8848.iteye.com/blog/253198
http://www.jb51.net/article/44561.htm
本文链接:http://www.bigerhead.com/2015/09/147.html 转载请注明出处。