博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cookie实现浏览记录
阅读量:4656 次
发布时间:2019-06-09

本文共 2780 字,大约阅读时间需要 9 分钟。

Cookie实现浏览记录的主要步骤分析如下:

1.先将product_list.htm转成jsp    2.点击一个商品,展示该商品的信息,将该商品id记录到cookie  (GetProductById)        获取之前的浏览记录 例如名称:ids        判断cookie是否为空            若为空 将当前商品的id起个名称 ids 放入cookie中  ids=1            若不为空,获取值 例如:ids=2-1  当前访问的id=1  使用"-"分割商品id                判断之前记录中有无该商品                    若有:                        将当前的id放入前面  结果 ids=1-2                    若没有:                        继续判断长度是否>=3                            若>=3,移除最后一个,将当前的id放入最前面                            若<3,直接将当前的id放入最前面.                        若 ids=3-2-1 现在访问1 结果 ids=1-3-2            若 ids=4-3-2 现在访问1 结果 ids=1-4-3    3.再次回到product_list.jsp页面,需要将之前访问商品展示在浏览记录中        获取ids  例如:ids=2-3-1        切割

 

CookUtils工具类下的代码:

/**    通过cookie的名称获取指定的cookie*/public static Cookie getCookieByName(String name, Cookie[] cookies) {        if(cookies!=null){                        for (Cookie c : cookies) {                if(name.equals(c.getName()))                    return c;            }        }        return null;}

页面显示代码:

<%                    //获取指定名称的cookie ids                    Cookie c=CookUtils.getCookieByName("ids", request.getCookies());                                        if(c==null){                %>                

暂无浏览记录

<% }else{ String[] arr=c.getValue().split("-"); for(String id:arr){ %> <% } } %>

后台代码

String id = request.getParameter("id");        Cookie c = CookUtils.getCookieByName("ids", request.getCookies());        String ids="";        if(c==null){            ids=id;        }else{            ids=c.getValue();            String[] arr = ids.split("-");            List
asList = Arrays.asList(arr); LinkedList
list = new LinkedList<>(asList); if(list.contains(id)){ //若ids中包含id,将id移除放到最前面 list.remove(id); list.addFirst(id); }else{ //若ids中不包含id,继续判断长度是否大于2 if(list.size()>2){ //长度大于等于3,移除最后一个将当前放到最前面 list.removeLast(); list.addFirst(id); }else{ list.addFirst(id); } } ids=""; for (String string : list) { ids+=(string+"-"); } ids=ids.substring(0, ids.length()-1); } c= new Cookie("ids", ids); c.setPath(request.getContextPath()+"/"); c.setMaxAge(3600); response.addCookie(c);

 

转载于:https://www.cnblogs.com/133261c/p/9405695.html

你可能感兴趣的文章