首页 > 其他 > 详细

Cookie

时间:2015-03-13 16:47:29      阅读:297      评论:0      收藏:0      [点我收藏+]

javax.servlet.http.Cookie

public Cookie(String name, String value)
构造一个Cookie对象

getName()
获取名称

setValue(String name),getValue()
设置/获取cookie值

setMaxAge(int num),getMaxAge()
指定/获取cookie的有效期, 设置时以秒为单位,负数时不保存cookie,0时删除此cookie

setPath(String url),getPath()
指定/获取访问哪些资源时使用此cookie, 设置时一般以/开头,/代表web服务器,  /webappName/someResource

setDomain(String domain),getDomain()
指定/获取使用此cookie的域名(即DNS中注册过的),一般没什么用

请求,响应对Cookie的操作

//将Cookie加入响应流中,以回写给浏览器,如果cookie.setMaxAge(30*24*3600)
//则此cookie会被保存到本地,cookie有效期是30天
response.addCookie(Cookie cookie);
//取出所有cookie,结果为Cookie[]
request.getCookies();

通过Cookie显示用户上次访问时间

response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();
out.print("您上次的访问时间是:");

Cookie[] cookies = request.getCookies();
for (int i=0; cookies!=null && i<cookies.length; i++) {
    if (cookies[i].getName().equals("lastAccessTime")) {
        long value = Long.parseLong(cookies[i].getValue());
        Date date = new Date(value);
        out.print(date.toLocalString());
    }
}

Cookie cookie = new Cookie("lastAccessTime", System.getCurrentTimeMillis() + "");
cookie.setMaxAge(30 * 24 * 3600);//有效期30天
cookie.setPath("/webappName");//访问此web工程时才使用此cookie
response.addCookie(cookie);

浏览器一般只允许存放300个Cookie,每个站点最多存放20个,每个Cookie的大小限制为4KB

删除Cookie:
先创建一个同名的Cookie,再调用setMaxAge(0),
之后还要调用setPath(String path),指定的path必须和要删除的cookie的path一致,否则无法删除cookie



Cookie

原文:http://my.oschina.net/lhplj/blog/386722

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!