Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。 当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。从本质上讲,它可以看作是你的身份证。但Cookies不能作为代码执行,也不会传送病毒,且为你所专有,并只能由提供它的服务器来读取。保存的信息片断以"名/值"对(name-value pairs)的形式储存,一个"名/值"对仅仅是一条命名的数据。一个网站只能取得它放在你的电脑中的信息,它无法从其它的Cookies文件中取得信息,也无法得到你的电脑上的其它任何东西。 Cookies中的内容大多数经过了加密处理,因此一般用户看来只是一些毫无意义的字母数字组合,只有服务器的CGI处理程序才知道它们真正的含义。
Cookies的写入与读取
写入:
//创建一个cookie
Cookie ck=new Cookie("lastTime", System.currentTimeMillis()+"");
//Cookie ck1=new Cookie("lastTime", System.currentTimeMillis()+"");
//有效日期为0时 创建cokie到会话结束cookie
ck.setMaxAge(4);//一个小时
ck.setPath("/2011-10-24/demoCookie");
//发送给你的响应
response.addCookie(ck);
读取:
Cookie cookies[]=request.getCookies();
for(int i=0;cookies!=null&&i<cookies.length;i++){
Cookie cookie=cookies[i];
if("lastTime".equals(cookie.getName())){
String lastTime=cookie.getValue();
Date date=new Date(Long.parseLong(lastTime));
out.println(date.toLocaleString());
}
}
使用cookie完成曾经浏览过的商品信息
1、 向cookie存入信息
//发送cookie信息 String value=makeCookieValue(request,id);//该方法在下面 //产生一个Cookie对象 Cookie cookie=new Cookie("goodsHistory",value); cookie.setMaxAge(60*60); cookie.setPath("/2011-10-24"); //加入cookie response.addCookie(cookie);
2、 读取cookie信息
//显示浏览过的商品信息
//声明浏览过的商品的value值 String value=null; //获取cookie Cookie cookies[]=request.getCookies(); //遍历cookie信息 for(int i=0;cookies!=null&&i<cookies.length;i++){ //浏览过商品的cookie cookie name value if("goodsHistory".equals(cookies[i].getName())){ value=cookies[i].getValue(); } } out.println("你最近看过的产品有:"); if(value!=null){ //第一步:拆分 String ids[]=value.split("\\_"); out.print(gService.findByid(Integer.parseInt(ids[i])).getName()); }