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
原文:http://my.oschina.net/lhplj/blog/386722