• 10 Cookie/Session


    JSP/EL入门
         * SUN提供了开发WEB资源的技术     Servlet/JSP
             
         * response.getWriter().write();
              .write("<form action='' method='post' >");
              .write("<input type='text' name='username'>");
             
         * JSP(java server pages)    
        
         * JSP可以编写的代码
              * HTML+java代码+JSP自身一些
             
         * JSP的运行原理
              * JSP -- 翻译成servlet -- 编译 -- 访问         

         * 创建简单JSP文件
              * 打开方式
                  
              * 设置编码集
                   搜索jsp              
                  
         * JSP脚本元素
              * 编写java代码
             
              * <%!  %>     :定义类、定义变量、定义方法(不经常使用)          成员变量
              * <%=  %>     :输出内容                             
              * <%   %>     :定义变量、编写语句          (局部变量)    
             
         * EL表达式
              * 获取域对象中的值      
                    
    * 两种会话技术
         * 会话:从打开浏览器开始,点击链接(点击多次),访问服务器多个web资源,关闭浏览器,称为一次会话。
        
         * 问题:
              例如:用户点击超链接通过一个servlet购买了一个商品,程序应该保存用户购买的商品,商品保存会话对象中。
             
              * requset和ServletContext保存商品信息行不行?

         * cookie
              * 保存用户名和密码
              * 记录用户上次的访问
                   * 需求分析:
                        * 第一次访问,没有时间,输出欢迎,记录当前的时间,回写到浏览器。
                  
                        * 第二次访问,有历史记录(时间),输出到页面上,记录当前的时间,回写到浏览器。
                       
                       
              * 1.获取所有的cookie
              *      2.通过指定的名称查找cookie(名称自己指定)
              *           * 如果cookie==null,第一次访问
              *                * 输出欢迎,记录当前的时间,回写到cookie中。
              *           * 不是第一次访问
              *                * 获取cookie中的时间,把时间显示到页面上
              *                * 记录当前时间,回写到cookie中         
             
             
         * Cookie的API
              * 构造方法
                   * Cookie(String name, String value)
                        name:代表cookie的名称
                  
              * cookie提供的方法    
                   * String getName()      获取cookie的名称    
                   * String getValue() 获取值
                  
                   * setMaxAge(int expiry)                :设置保存的有效时间
                        * int:秒     long:毫秒
                       
                        * setMaxAge(0);前提的条件:setPath路径相同
                       
                   * setPath(String uri)                     :设置有效路径
                        * 默认路径     /day10                         http://localhost/day10/cookie1
                        * 默认路径/day10/servlet/               http://localhost/day10/servlet/cookie1
                       
                   * setDomain(String pattern)           :设置有效域名
                  
              * 会话级别cookie    
                   * 默认(关闭浏览器就消失。)
                  
              * 持久的cookie
                   * setMaxAge(int time)     磁盘上。
                   * 删除掉持久的cookie,设置setMaxAge(0),设置path必须一致。
                  
        
              * 记录用户的浏览记录    
                  
                   * 需求分析
                        * 商品列表页面(productList.jsp),点击商品信息,把这些信息记录下来。
                       
                             * 点击商品,请求servlet,记录商品。回写到浏览器。
                             * 由点击商品,如果包含,不处理。如果不包含,商品放到cookie,回写到浏览器。

                        * 显示在列表页面上。
                       
                   /**
                   *      1.接收参数
                   *      2.获取所有的cookie数组
                   *      3.判断是否是第一次访问
                   *           * 第一次,记录商品的信息,回写到浏览器。
                   *
                   *           * 不是第一次,获取cookie的值          (1,2,3)
                   *                * 判断是否包含当前的商品的信息,如果不包含,拼接字符串,回写。
                   *               
                   */
                  

         * session
              * 原理:
                   * 基于cookie,第一次访问的时候,在服务器创建session的区域,分配唯一的标识(id)。通过cookie技术,就可以找到区域。
                  
        
              * 简单购物车
                   * 前提条件:购物车(对象)Map<商品名称,商品数量>
                  
                   /**
                   *      1.接收请求参数
                   *      2.从session中取购物车(map)
                   *      3.判断是否是第一次访问
                   *           * 第一次,创建map对象,把商品的名称,和商品数量(1)存入map集合中。
                   *           * 购物车存session中
                   *          
                   *           * 不是第一次
                   *                * 判断购物车是否包含刚才的商品
                   *                     * 如果包含,取出数量,+1,存回去
                   *                     * 如果不包含,把商品名称和数量出入map集合中    
                   *          
                   *                * 购物车存session中
                   */
                  
                  
              * session的追踪(了解)
                   * 手动的拼接jsessionid=B067A6EC847E918B94156458646F2FA4
                  
                   * response. encodeRedirectURL(java.lang.String?url)
                        用于对sendRedirect方法后的url地址进行重写。
                        response. encodeURL(java.lang.String?url)
                        用于对表单action和超链接的url地址进行重写
                       
                       
              * session的创建和失效
                   * session的创建:第一次访问的时候,创建session
                   * 销毁:
                        * invalidate() 销毁
                        * 非正常原因关闭服务器。
                       
                       
                        * session失效时间,默认是30分钟。
                             <session-config>
                                  <session-timeout>30</session-timeout>
                             </session-config>
                                 
             
         * 三个域对象
              * ServletContext     :整个web应用
              * session               :代表一次会话
              * request               :一次请求
             
                   setAttribute(xx,yy);
                   getAttribute(xx);
    ---------thinking、architecture、code、treasure---------
  • 相关阅读:
    利用python登录网页并自动签到
    链表的学习--创建、添加和删除元素
    Nginx指定IP无须通过认证
    curl命令获取站点的各类响应时间
    django中的Q和F方法
    python subprocess重定向标准输出
    python创建虚拟环境
    flask-sqlalchemy的使用
    sqlachelmy的使用
    wtforms的使用
  • 原文地址:https://www.cnblogs.com/elaa/p/4060893.html
Copyright © 2020-2023  润新知