1,从商品列表点进商品详情:会访问productInfo这个servlet,productInfoServlet将浏览的商品的id存进cookie

String pid=request.getParameter("pid");  //获取商品id
String pids = pid;
Cookie[] cookies = request.getCookies();
    if(cookies!=null){
        for(Cookie cookie : cookies){
            if("pids".equals(cookie.getName())){
                pids = cookie.getValue();
                //1-3-2 本次访问商品pid是8----->8-1-3-2
                //1-3-2 本次访问商品pid是3----->3-1-2
                //1-3-2 本次访问商品pid是2----->2-1-3
                //将pids拆成一个数组
                String[] split = pids.split("-");//{3,1,2}
                List<String> asList = Arrays.asList(split);//[3,1,2]
                LinkedList<String> list = new LinkedList<String>(asList);//[3,1,2]
                //判断集合中是否存在当前pid
                if(list.contains(pid)){
                    //包含当前查看商品的pid
                    list.remove(pid);
                    list.addFirst(pid);
                }else{
                    //不包含当前查看商品的pid 直接将该pid放到头上
                    list.addFirst(pid);
                }
                //将[3,1,2]转成3-1-2字符串
                StringBuffer sb = new StringBuffer();
                for(int i=0;i<list.size()&&i<7;i++){
                    sb.append(list.get(i));
                    sb.append("-");//3-1-2-
                }
                //去掉3-1-2-后的-
                pids = sb.substring(0, sb.length()-1);
            }
        }
    }

    Cookie cookie_pids = new Cookie("pids",pids);
    response.addCookie(cookie_pids);

    request.getRequestDispatcher("/product_info.jsp").forward(request, response);

2,当点击返回商品列表时,会访问productListServlet,productListServlet读取那个cookie,并将信息提取,从数据库获取商品信息的集合,返回显示到jsp页面

//定义一个记录历史商品信息的集合
List<Product> historyProductList = new ArrayList<Product>();

//获得客户端携带名字叫pids的cookie
Cookie[] cookies = request.getCookies();
if(cookies!=null){
for(Cookie cookie:cookies){
if("pids".equals(cookie.getName())){
String pids = cookie.getValue();//3-2-1
String[] split = pids.split("-");
for(String pid : split){
Product pro = service.findProductByPid(pid);
historyProductList.add(pro);
}
}
}
}

//将历史记录的集合放到域中
request.setAttribute("historyProductList", historyProductList);

request.getRequestDispatcher("/product_list.jsp").forward(request, response);

浏览历史记录通用代码相关推荐

  1. php记录用户搜索历史记录,PHPCookei记录用户历史浏览信息的代码

    [基础] Cookie常用方法: $_COOKIE['RecordLuHuiDUDU'] 得到Cookie setcookie('RecordLuHuiDUDU',",time()-3600 ...

  2. 四大浏览器删除浏览历史记录的快捷键

    原文地址:四大浏览器删除浏览历史记录的快捷键 http://www.iefans.net/shanchu-liulan-lishi-jilu-kuaijiejian/ 快捷键(windows  Ctr ...

  3. dorado7通用代码

    通用代码 lookupCode   lookupName 性别 {dorado.getDataProvider("sysLookupTypeAction#getValueByCode&quo ...

  4. python 解决IndentationError: unexpected unindent的报错!和通用代码框架,import requests def getHTMLText(url)...的解释

    python报错IndentationError: expected an indented block. 解决办法很简单,是脚本缩进的问题,检查脚本缩进是否有空格和tab混用的情况或者是缩进明显不对 ...

  5. JavaScript导出Excel通用代码。

    2019独角兽企业重金招聘Python工程师标准>>> js导出Excel通用代码. html代码如下: <!DOCTYPE html PUBLIC "-//W3C/ ...

  6. html代码 通用代码,新浪博客通用html代码及其使用方法

    经常上新浪博客又偶尔看到有些NX的博客总会把自己的领地打扮得漂漂亮亮的,总给人一种神圣敢,让人羡慕不已.其实方法很简单,你也可以轻松打造! 首先,你登陆你的博客 > 控制面板 > 首页内容 ...

  7. php 浏览商品记录,php浏览历史记录

    php浏览历史记录 /** * 商品历史浏览记录 * $data 商品记录信息 */ private function _history($data) { if(!$data || !is_array ...

  8. php写新闻浏览历史,PHP实现浏览历史记录

    很多网站均有这样的功能,特别是一些购物网站均设计有浏览历史这样一个特色的功能,当然了实现的方法是多种多样的.asp.php.jsp等等均可以实现.下面我们以PHP为例来演示一下.源代码为ecshop里 ...

  9. 不会提示是否关闭浏览器 IE6、IE7、FF通用代码

    start = setInterval('CloseWin();', 2000);function CloseWin() //这个不会提示是否关闭浏览器 IE6.IE7.FF通用代码:{if (doc ...

  10. php写浏览记录,php如何浏览历史记录

    这篇文章主要介绍了php浏览历史记录的方法,涉及php操作cookie的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了php浏览历史记录的方法. 具体实现方法如下:/** * 商品历史浏 ...

最新文章

  1. 百度云android隐藏空间,一招教你使手机端百度网盘中的隐藏空间在文件列表中显示出来...
  2. Spring Boot 2.0 迁移指南
  3. 基于XML及注解配置方式实现AOP及aspectJ表达式
  4. 《理解 ES6》阅读整理:函数(Functions)(五)Name Property
  5. r语言 断轴 画图_R语言作图——Density plot
  6. WebSocket实践
  7. TypeScript 3.3发布:改进了联合类型调用和构建时间
  8. 使用vue-cli3搭建项目详细步骤
  9. js 兼容设置透明度
  10. web开源FlowPlayer视频播放器
  11. 用VMWARE安装Mac OSX Tiger 10.4.4 X86
  12. Java实现局域网流量监控
  13. excel中vlookup函数的使用方法_Excel教程:函数VLOOKUP实用技巧
  14. MySQL主从配置和gtid主从配置
  15. 双鱼直播动态调试 .so文件输出密匙
  16. Nginx的优化和压力测试
  17. 保姆级给电脑分盘,和合并两个盘
  18. Leetcode LCP 17. 速算机器人
  19. 高速PCB 设计中终端匹配电阻的放置
  20. pyqt5出现 -1073741515 (0xC0000135) 错误的一个解决办法

热门文章

  1. php 调用redis中lpush的方法
  2. css实现宽高比固定
  3. 如何利用ikuai将闲置电脑配作软路由器?
  4. 基于SSM超市订单管理系统(MYSQL版)
  5. 微信公众号怎么放html文件,微信公众号html缓存处理
  6. [转]如何在NIOS II中读写EPCS剩余空间
  7. Leetcode每日一题 面试题56 - I.数组中数字出现的次数
  8. python垃圾分类游戏_垃圾分类就要来了?教你使用Python轻松完成垃圾分类
  9. 3d打印机自动调平Marlin固件配置
  10. python判断素数程序_python判断素数程序_Python程序检查素数