会话cookies技术

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);



private String makeCookieValue(HttpServletRequest request, String id) { //声明返回值变量 String goodsHistory=null; //第一步:获取cookie Cookie cookie[]=request.getCookies(); for(int i=0;cookie!=null&&i<cookie.length;i++){ if("goodsHistory".equals(cookie[i].getName())){ goodsHistory=cookie[i].getValue(); } } //保持最近访问的三个产品 if(goodsHistory==null){ goodsHistory=id; }else{ LinkedList<String> list=new LinkedList<String>(Arrays.asList(goodsHistory.split("\\_"))); if(list.contains(id)){ list.remove(id); list.addFirst(id); }else{ if(list.size()>=3){ list.removeLast(); list.addFirst(id); }else{ list.addFirst(id); } } StringBuffer sb=new StringBuffer(); for(String ids:list){ sb.append(ids+"_"); } sb.deleteCharAt(sb.length()-1); goodsHistory=sb.toString(); } return goodsHistory; }


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()); }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值