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>
效果图: