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

模拟实现购物车的显示最近浏览的商品的功能
JavaWeb_使用Cookie模拟实现显示最近浏览的商品_第1张图片
点击第一个超链接后
JavaWeb_使用Cookie模拟实现显示最近浏览的商品_第2张图片
点击return后
JavaWeb_使用Cookie模拟实现显示最近浏览的商品_第3张图片
之前浏览过的书将出现在下方

实现方法如下:
JavaWeb_使用Cookie模拟实现显示最近浏览的商品_第4张图片

代码如下:
book.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title heretitle>
head>
<body>
    <h4>Books pageh4>


    <a href="book.jsp?book=JavaWeb">JavaWeba><br>
    <a href="book.jsp?book=Java">Javaa><br>
    <a href="book.jsp?book=Oracle">Oraclea><br>
    <a href="book.jsp?book=Ajax">Ajaxa><br>
    <a href="book.jsp?book=JavaScript">JavaScripta><br>
    <a href="book.jsp?book=Andriod">Andrioda><br>
    <a href="book.jsp?book=Jbmp">Jbmpa><br>
    <a href="book.jsp?book=Struts">Strutsa><br>
    <a href="book.jsp?book=Hibernate">Hibernatea><br>
    <a href="book.jsp?book=Spring">Springa><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("    ");
                }
            }
        }
    %>

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"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title heretitle>
head>
<body>
    <h4>Book Detail Pageh4>
    Book :<%=request.getParameter("book") %>
    <br><br>
    <a href="books.jsp">returna>

    <%
        String book = request.getParameter("book");
        //1.确定要删除的cookie
        //前提: CHANCE_BOOK 开头的cookie数量大于或等于5,
        Cookie []cookies = request.getCookies();
        //保存所有由CHANCE_BOOK开头 的cookie
        List bookCookies = new ArrayList();
        //保存和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>

你可能感兴趣的:(JavaWeb基础)