JavaWeb_Cookie显示最近浏览的商品

books.jsp

<%--
  Created by IntelliJ IDEA.
  User: dell
  Date: 2019/7/10
  Time: 9:22
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h4>BOOKS page</h4>
<a href="book.jsp?book=JavaWeb">Java Web</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=Android">Android</a>
<br>
<a href="book.jsp?book=Jbpm"></a>
<br>
<a href="book.jsp?book=Struts">Struts</a><br>
<a href="book.jsp?book=Spring">Spring</a><br>
<br><br>
<%
    //显示最近浏览的五本书
    //获取所有的Cookie
    Cookie [] cookies = request.getCookies();

    //从中筛选出Book的Cookie。如果cookieName为YHS_BOOK_开头的既符合条件
    //显示cookieValue
    if (cookies!=null && cookies.length>0){
        for (Cookie c:cookies
             ) {
            String cookieName = c.getName();
            if (cookieName.startsWith("YHS_BOOK_")){
                out.print(c.getValue());
                out.print("<br>");
            }
        }
    }
%>
</body>
</html>

  

book.jsp

<%@ page import="java.util.List" %>
<%@ page import="java.net.CookieHandler" %>
<%@ page import="java.util.ArrayList" %><%--
  Created by IntelliJ IDEA.
  User: dell
  Date: 2019/7/10
  Time: 9:22
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</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");
        /**
         * 把书的信息以Cookie方式传回浏览器,删除一个Cookie
         * 1.确定被删除的Cookie
         * 前提:YHS_BOOK_开头的Cookie数量大于或等于5
         */
        Cookie [] cookies = request.getCookies();

         //保存所有的YHS_BOOK_开头的Cookie
        List<Cookie> bookCookies = new ArrayList<Cookie>();
        //用来保存和books.jsp传入的book匹配的那个Cookie
        Cookie tempCookie = null;
         if (cookies.length>0&&cookies!=null){
             for (Cookie cookie : cookies){
                 String cookieName = cookie.getName();
                 if (cookieName.startsWith("YHS_BOOK_")){
                    bookCookies.add(cookie);
                    if (cookie.getValue().equals(book)){
                        tempCookie = cookie;
                    }
                 }
             }
         }

         /**
         *
         *
         *
         * ①且若从books.jsp页面出入的book不再YHS_BOOK_的Cookie中则删除较早的那个Cookie
         * (YHS_BOOK_ 数组的第一个Cookie)
         */
            if (bookCookies.size()>=5&&tempCookie ==null){
                tempCookie = bookCookies.get(0);

            }
         /**
         * ②若在其中,则删除该Cookie
         */
         if (tempCookie!=null){
             tempCookie.setMaxAge(0);
             response.addCookie(tempCookie);
         }
         /*
         * 2.把从books.jsp传入的book作为一个Cookie返回
         */

         Cookie cookie = new Cookie("YHS_BOOK_"+book,book);
         response.addCookie(cookie);
    %>
</body>
</html>

  

效果图:

 

猜你喜欢

转载自www.cnblogs.com/yangHS/p/11162187.html
今日推荐