Cookie在商品浏览记录中的使用
2018-06-18 00:58:47来源:未知 阅读 ()
Cookie在工作中的使用,最近项目写到了用户浏览商品模块,用到了cookie对象,把我对cookie的认识分享给大家。cookie简称小饼干,大家应该知道吧,cookie属于存储在客户端,也就是浏览器端,它储存的大小是有限制的,根据各个浏览器不同大小也不同。下面是商城的浏览记录模块的技术实现。
首先技术分析:
Cookie cookie = new Cookie(cookiename,cookievalue);//创建cookie
response.addCookie(cookiename);//把cookie添加到浏览器中
Cooklies [] cookies = request.getCookies(); //获取所有的cookie
这里我准备了一个util工具类,根据传入的cookie名称返回对象的cookie
public static Cookie findCookie(Cookie[] cookies ,Cookie cookie){
//判断cookies是否为空
if(cookies != null){
//不等于空遍历每一个cookie
for(Cookie c: cookies){
//获取每一个的value如果value等于我传入的cookie就返回
String value = c.getValue();
if(value.equals(cookie)){
return c;
}
}
//如果找不到直接返回空
return null;
}
}
步骤分析:
1.当点击各个商品时进入productListHistoryServlet
2.获取传来的商品id
3.获取cookie如果为null 就创建cookie
4.如果不为null,获取cookie的值按“-”分割(这里我用的是linkedList)
5.判断是否包含,如果包含就把最后一个删除
6.否则判断是否大于等于7,如果大于等于7把最后一个删除,将当前id添加到第一个
7.不大于等于7就直接添加到第一个
8.最后处理数据 分别给每个id后添加“-”,将最后一个“-”删除
9.添加到页面中将cookie
代码实现:
//获取id
String id = request.getParameter("id");
//获取cookie如果为null 就创建cookie
Cookie[] cookies = request.getCookies();
//调用工具类
Cookie cookie = util.findCookie(cookies,history);
//获取cookie如果为null 就创建cookie
if(cookie==null){
Cookie cookie = new Cookie("history")
response.addCookie(cookie);
}else{
//如果不为null,获取cookie的值按“-”分割(这里我用的是linkedList)
String value = cookie.getValue();
String[] ids = value.spilt("-");
//调用linkedlist构造方法将数组转换成linkedlist 因为数组直接操作元素不能增删,我考虑用到linkedlist
LinkedList<Stirng> list = new LinkedList<String>(Arrays.asList(ids));
//判断是否包含,如果包含就把最后一个删除
if(list.contains(id)){
list.remove(id);
list.addFirst(id);
}else{
//否则判断是否大于等于7,如果大于等于7把最后一个删除,将当前id添加到第一个
if(list.size()>=7){
list.removeLast();
list.addFrist(id);
}else{
//不大于7
list.addFirst(id);
}
//最后处理数据 分别给每个id后添加“-”,将最后一个“-”删除
//创建StringBuffer
StringBuffer sb = new StringBuffer();
//遍历list
for(String s : list){
sb.append(s+"-");
}
String val = sb.toString().subString(0,sb.length-1);
//覆盖cookie
Cookie c = new Cookie("history",val);
c.setMaxAge(60*60*24*7);
response.addCookie(cookie);
}
}
心好累啊,每天熬夜到2点钟事情太多了还请了两天假落了好多东西不想写了就到这里吧,洗洗睡觉。。。加油少年
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Java生成订单号/交易流水号
下一篇:用Java编写银行存钱取钱
- 如何从8 道面试题中,看出浏览器渲染过程与性能优化 2020-05-16
- Java生鲜电商平台-生鲜电商商品中心系统设计与数据库架构( 2020-04-25
- Cookie显示上次访问时间出现错误的问题 2020-04-21
- @CookieValue 的使用 2020-04-20
- Java生鲜电商平台-商品中心的架构设计与源码解析(小程序/APP 2020-03-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash