JavaWeb_使用Cookie模拟实现显示最近浏览的商品

模拟实现购物车的显示最近浏览的商品的功能
这里写图片描述
点击第一个超链接后
这里写图片描述
点击return后
这里写图片描述
之前浏览过的书将出现在下方

实现方法如下:
这里写图片描述

代码如下:
book.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h4>Books page</h4>


    <a href="book.jsp?book=JavaWeb">JavaWeb</a><br>
    <a href="book.jsp?book=Java">Java</a><br>
    <a href="book.jsp?book=Oracle">Oracle</a><br>
    <a href="book.jsp?book=Ajax">Ajax</a><br>
    <a href="book.jsp?book=JavaScript">JavaScript</a><br>
    <a href="book.jsp?book=Andriod">Andriod</a><br>
    <a href="book.jsp?book=Jbmp">Jbmp</a><br>
    <a href="book.jsp?book=Struts">Struts</a><br>
    <a href="book.jsp?book=Hibernate">Hibernate</a><br>
    <a href="book.jsp?book=Spring">Spring</a><br>
    <br>
    <%
        //显示最近浏览的5本书
        //获取所有的cookie
        Cookie []cookies = request.getCookies();

        //从中筛选出book 的cookie 若果cookie为CHANCE_BOOK开头 则符合条件
        //显示出cookieValue
        if(cookies != null && cookies.length > 0){
            for(Cookie c :cookies){
                String cookieName = c.getName();
                if(cookieName.startsWith("CHANCE_BOOK")){
                    out.println(c.getValue());
                    out.print("&nbsp;&nbsp;&nbsp;&nbsp;");
                }
            }
        }
    %>

</body>
</html>

books.jsp

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h4>Book Detail Page</h4>
    Book :<%=request.getParameter("book") %>
    <br><br>
    <a href="books.jsp">return</a>

    <%
        String book = request.getParameter("book");
        //1.确定要删除的cookie
        //前提: CHANCE_BOOK 开头的cookie数量大于或等于5,
        Cookie []cookies = request.getCookies();
        //保存所有由CHANCE_BOOK开头 的cookie
        List<Cookie> bookCookies = new ArrayList<Cookie>();
        //保存和books.jsp传入的book匹配的cookie
        Cookie tempCookie = null;
        if(cookies != null && cookies.length > 0){
            for(Cookie c :cookies){
                String cookieName = c.getName();
                if(cookieName.startsWith("CHANCE_BOOK")){
                    bookCookies.add(c);

                    if(c.getValue().equals(book));
                }
            }
        }
        //且若从books.jsp 页面传来的book 不在CHANCE_BOOK的cookie中 则删除较早的那个cookie
        //CHANCE_BOOK数组中的第一个
        if(bookCookies.size() >= 5 && tempCookie == null){
            tempCookie = bookCookies.get(0);
        }
        //若在其中  则删除
        if(tempCookie != null){
            tempCookie.setMaxAge(0);
            response.addCookie(tempCookie);
        }
        //2.把从books.jsp传入的book作为一个Cookie返回

        Cookie cookie = new Cookie("CHANCE_BOOK" + book,book);
        response.addCookie(cookie);
    %>

</body>
</html>
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值