cookie实现最近浏览商品

25 篇文章 0 订阅

一、实现思路

     两个jsp页面

    1、book1.jsp

           示商品链接 ,显示最近浏览的五个商品 (书名)

                  》获取所有的cookie

                  》从中筛选出书名的cookie(为了方便筛选,书名cookie标记为BOOK开头)并显示cookieValue

    2、book2.jsp

            把书的信息以cookie方式传给浏览器  当 cookie数量大于5时,除一个cookie

                  》将BOOK开头的cookie存为数组,若新传入的cookie不在数组中,则删除数组第一个元素;若在,则删除该元素。

                  》将新传入的cookie作为数组最后一个元素

二、实现

    book1.jsp

   

<body>
<a href="book2.jsp?name=JSP">JSP</a><br><br>
<a href="book2.jsp?name=Servlet">Servlet</a><br><br>
<a href="book2.jsp?name=J2EE">J2EE</a><br><br>
<a href="book2.jsp?name=MYSQL">MYSQL</a><br><br>
<a href="book2.jsp?name=hibernate">hibernate</a><br><br>
<a href="book2.jsp?name=Android">Android</a><br><br>

<%
    //获取符合条件的cookie并显示
    Cookie [] cookies=request.getCookies();
    if(cookies!=null&&cookies.length>0)
        for (Cookie cookie:cookies){
          String cookieName=cookie.getName();
          if(cookieName.startsWith("BOOK_")){
              out.println(cookie.getValue());
              out.print("<br>");
          }
        }
%>


</body>

    book2.jsp

<body>
BOOK:<%=request.getParameter("name")%>
<br><br>
<a href="book1.jsp">Return</a>

<%

    //当cookie数量大于5时,删除一个cookie
    String name=request.getParameter("name");
    Cookie[] cookies=request.getCookies();
    List<Cookie> cookieList=new ArrayList<Cookie>();
    Cookie tempCookie=null;              //tempCookie用来保存和传入的cookie相匹配的cookie
    if (cookies!=null&&cookies.length>0)           //有BOOK开头的cookie则加到数组中
    {
        for(Cookie cookie:cookies){
            String cookieName=cookie.getName();
            if(cookieName.startsWith("BOOK_")){
                cookieList.add(cookie);
                if(cookie.getValue().equals(name)){   //看看获取到的参数是不是和数组中的cookie值一样 一样就给tempCookie
                tempCookie=cookie;}
            }
        }
    }
       //1、若新传入的cookie不在数组中,则删除数组第一个元素;
   if (cookieList.size()>=5&&tempCookie==null)
    {
        tempCookie=cookieList.get(0);
    }
       //2、若在,则删除该元素
   if (tempCookie!=null)
    {
        tempCookie.setMaxAge(0);
        response.addCookie(tempCookie);
    }
    //将book1.jsp传入的参数(书名)作为cookie返回
       // String name=request.getParameter("name");
      Cookie cookie=new Cookie("BOOK_"+name,name);
      response.addCookie(cookie);
%>






</body>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值