zoukankan      html  css  js  c++  java
  • [原创]java WEB学习笔记30:Cookie Demo 之显示最近浏览的记录

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用

    内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系。

    本人互联网技术爱好者,互联网技术发烧友

    微博:伊直都在0221

    QQ:951226918

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     1.Demo 需求: 显示最近浏览的 5 本书的 title

     2.代码结构 books.jsp  book.jsp

      1)books.jsp :  显示最近浏览的 5 本书  ① 获取所有的 Cookie   ② 从中筛选出 Book 的 Cookie:如果 cookieName 为 ATGUIGU_BOOK_ 开头的即符合条件 ③ 显示 cookieValue

      2)book.jsp :   把书的信息以 Cookie 方式传回给浏览器,

              ① 删除一个 Cookie 确定要被删除的 Cookie: ATGUIGU_BOOK_ 开头的 Cookie 数量大于或等于 5,且

                若从 books.jsp 页面传入的 book 不在 ATGUIGU_BOOK_ 的 Cookie 中则删除较早的那个 Cookie( ATGUIGU_BOOK_ 数组的第一个 Cbookie),

                若在其中,则删除该 Cookie  

              ② 把从 books.jsp 传入的 book 作为一个 Cookie 返回

    3.代码:

      1)books.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>books jsp</title>
     8 </head>
     9 <body>
    10 
    11     <h4>Book page</h4>
    12     <a href="book.jsp?book=JavaWeb">Java Web</a><br><br>
    13     <a href="book.jsp?book=Java">Java </a><br><br>
    14     <a href="book.jsp?book=Oracle">Oracle</a><br><br>
    15     <a href="book.jsp?book=Ajax">Ajax</a><br><br>
    16     <a href="book.jsp?book=JavaScript">JavaScript</a><br><br>
    17     <a href="book.jsp?book=Android">Android</a><br><br>
    18     <a href="book.jsp?book=Jbpm">jbpm</a><br><br>
    19     <a href="book.jsp?book=Struts">Struts</a><br><br>
    20     <a href="book.jsp?book=Hibernate">Hibernate</a><br><br>
    21     <a href="book.jsp?book=Spring">Spring</a><br><br>
    22     
    23     <!-- 
    24      -->
    25      
    26      <%
    27     //    显示最近浏览的 5 本书
    28     //    1.获取所有的 Cookie
    29     Cookie[]  cookies = request.getCookies();
    30         if(cookies != null && cookies.length > 0){
    31             
    32             for(Cookie cookie : cookies){
    33                 
    34                 if(cookie.getName().startsWith("JASON_BOOK_")){
    35                     out.println(cookie.getValue());
    36                     out.print("<br>");
    37                 
    38                     }
    39                 }
    40         }
    41     //    2.从中筛选出 Book 的 Cookie:如果 cookieName 为 JASON_BOOK_ 开头的即符合条件
    42     //    3.显示 cookieValue
    43      
    44      
    45      %>
    46 </body>
    47 </html>

      

      2)book.jsp

     1 <%@page import="javax.print.attribute.ResolutionSyntax"%>
     2 <%@ page language="java" contentType="text/html; charset=UTF-8"
     3     pageEncoding="UTF-8"%>
     4 <%@page import="java.util.ArrayList"%>
     5 <%@page import="java.util.List"%>
     6 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     7 <html>
     8 <head>
     9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    10 <title>book jsp</title>
    11 </head>
    12 <body>
    13     <h4>Book detial page</h4>
    14     Book:<%= request.getParameter("book") %>
    15     
    16     <br><br>
    17     
    18     <a href="books.jsp">Return</a>
    19     
    20     <!-- 
    21     把书的信息以 Cookie 方式传回给浏览器,删除一个 Cookie
    22      -->
    23     <%
    24         
    25     //1. 确定要被删除的 Cookie:
    26     
    27     //前提:ATGUIGU_BOOK_ 开头的 Cookie 数量大于或等于 528     String book = request.getParameter("book");
    29     Cookie[]  cookies = request.getCookies();
    30     
    31     //保存所有的JASON_BOOK_ 开头的cookie
    32     List<Cookie> bookCookies = new ArrayList<Cookie>();
    33     
    34     //用来保存和books.jsp 传入的book 匹配的cookie
    35     Cookie tempCookie = null;
    36     
    37      if(cookies != null && cookies.length > 0){
    38         for(Cookie cookie : cookies){
    39             if(cookie.getName().startsWith("JASON_BOOK_")){
    40                 bookCookies.add(cookie);
    41             
    42                 if(cookie.getValue().equals(book)){
    43                      tempCookie = cookie;
    44                 }
    45                 
    46             }
    47         }
    48     }
    49     // ① 且若从 books.jsp 页面传入的 book 不在 JASON_BOOK_ 的 Cookie 中则删除较早的那个 Cookie( JASON_BOOK_ 数组的第一个 Cookie),
    50     if(bookCookies.size() >= 5 && tempCookie == null){
    51          tempCookie = bookCookies.get(0);
    52     }
    53     
    54     // ② 若在其中,则删除该 Cookie
    55     if(tempCookie != null){
    56         tempCookie.setMaxAge(0);
    57         response.addCookie(tempCookie);
    58     }
    59         
    60     //2. 把从 books.jsp 传入的 book 作为一个 Cookie 返回
    61     Cookie cookie =new Cookie("JASON_BOOK_"+book,book);
    62     response.addCookie(cookie);
    63     
    64     %>
    65 </body>
    66 </html>

    示意图:

      

    分析:当 JDBC 提交到book.jsp 的时候,属于第一种情况,则删除 先前的按个JDBC ;当 PL/SQL 提交到 book.jsp 时候 ,属于第二种情况,则删除 最开始的那个cookie

    4. 总结: 理解和使用 cookie的 API

  • 相关阅读:
    形象理解ERP(转)
    禁用windows server 2008 域密码复杂性要求策略
    How to adding find,filter,remove filter on display method Form
    Windows Server 2008 R2激活工具
    How to using bat command running VS development SSRS report
    Creating Your First Mac AppGetting Started
    Creating Your First Mac AppAdding a Track Object 添加一个 Track 对象
    Creating Your First Mac AppImplementing Action Methods 实现动作方法
    Creating Your First Mac AppReviewing the Code 审查代码
    Creating Your First Mac AppConfiguring the window 设置窗口
  • 原文地址:https://www.cnblogs.com/jasonHome/p/5547403.html
Copyright © 2011-2022 走看看