zoukankan      html  css  js  c++  java
  • Cookie&Session(会话技术)

    一.Cookie技术

    从打开一个游览器访问某个站点,到关闭这个游览器的整个过程成为一次会话

    会话技术分为Cookie和Session

    Cookie:数据存储在客服端本地,减少对服务端的存储的压力,安全性相对较低,客服端也清楚Cookie

    Session:将数据存储到服务器端,安全性相对好,增加服务器压力

    一、Cookie发送技术实现的四步走
    1.创建Cookie实例化对象
    Cookie cookie = new Cookie(String cookieName,String cookieValue);
    例子:
    Cookie cookie = new Cookie("userName","123456");
    2.设置Cookie在客服端的持久化时间(可省略)
    cookie.setMaxAge(int seconds)//秒
    例子:10分钟
    cookie.setMaxAge(10*60);
    3.设置携带Cookie的路径(可省略)
    cookie.setPath(String Path);
    例子:全局的Cookie的配置
    cookie.setPath("/")
    4.发送cookie到客服端
    response.addCookie(Cookie cookie);
    

     第一步:
    创建cookie注意事项

    cookie中不能使用中文显示

    第二步:

    如果不设置持久化时间则以会话级,即当窗口关闭时就清除Cookie,如果设置持久化则将Cookie中的信息固化到磁盘上,到时间时游览器自动清理Cookie文件

    第三步:

    如果不设置携带路径,那么该cookie信息会在访问产生该cookie的 ,web资源所在的路径都携带cookie信息

    删除Cookie:

    只要使用同名同路径的持久化时为0的Cookie进行覆盖

    二、服务器端接受客户端携带的Cookie、
    Cookie[] cookies = request.getCookies()
    for(Cookie cookie : Cookies){
      if(cookie.getName().equal(cookieName)){
        String cookieValue = cookie.getValue();
      }
    }

    二、Session技术

    Session技术是将数据存储在服务器端的技术,会为每个客户端都创建一块内存空间 存储客户的数据,但客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内存空间。所以说Session的实现是基于Cookie,Session需要借助于Cookie存储客 户的唯一性标识JSESSIONID

    1.获得Session对象
    HttpSession session = request.getSession();
    此方法会获得专属于当前会话的Session对象,如果服务器端没有该会话的Session对象会创建一个新的Session返回,如果已经有了属于该会话的Session直接将已有的Session返回
    (实质就是根据JSESSIONID判断该客户端是否在服务器上已经存在session了)
    2.向Session对象中存取数据
    session.setAttribute(String name,object obj);
    session.getAttribute(String name);
    session.removeAttribute(String name);

     Session对象的生命周期

    1. 服务器(非正常关闭)
    2. session过期/失效,时间是从不开始访问服务器资源开始
    3. 手动销毁session ——session.invalidate();

       默认:在一次会话中,也就是说在,一次会话中任何资源公用一个session对象

  • 相关阅读:
    [LeetCode] Largest Number At Least Twice of Others 至少是其他数字两倍的最大数
    [LeetCode] Cut Off Trees for Golf Event 为高尔夫赛事砍树
    [LeetCode] Kth Smallest Number in Multiplication Table 乘法表中的第K小的数字
    [LeetCode] 746. Min Cost Climbing Stairs 爬楼梯的最小损失
    [LeetCode] Prefix and Suffix Search 前后缀搜索
    [LeetCode] Strange Printer 奇怪的打印机
    VMPlayer Ubuntu 16.04 Copy and Paste with Host 主机与宿机之间的复制粘贴
    Solve Error: "errcode": 85005, "errmsg": "appid not bind weapp hint"
    [LeetCode] Find Smallest Letter Greater Than Target 找比目标值大的最小字母
    [LeetCode] 743. Network Delay Time 网络延迟时间
  • 原文地址:https://www.cnblogs.com/FlyBlueSky/p/8974661.html
Copyright © 2011-2022 走看看