Cookie & Session

1. 会话

会话: 用户打开浏览器,请求了很多资源,最后关闭浏览器的过程称为会话。

有状态会话:

  1. 发票
  2. 学校登记

网站如何证明你来过?

  1. 服务端给客户端一个信件,下次访问时带上该信件即可,即cookie;
  2. 服务端登记你来过了,下次来的时候匹配你;即Session。

2. 保存会话的两种技术

  1. cookie:客户端技术(相应,请求)

  2. session:服务端技术, 利用该技术,可以保存用户的会话信息。

3. Cookie

  1. 从请求中拿到cookie

  2. 服务器响应给客户端cookie

    Cookie[] cookies = req.getCookies();
    cookie.getName();
    cookie.getValue();
    cookie.setMaxAge();  // 单位为s
    resp.addCookie(new Cookie("lastLoginTime", System.currentTimeMillis()+""));
    
    

一个网站cookie是否存在上限!聊聊细节问题

  • 一个Cookie只能保存- 一个信息;
  • 一个web站点可以给浏览器发送多个cookie, 最多存放20个cookie;
  • Cookie大小有限制4kb;
  • 300个cookie浏览器上限
  1. 删除cookie:将对应名称的cookie时间设为0即可

    Cookie cookie = new Cookie("lastLoginTime", "");
    cookie.setMaxAge(0);
    resp.addCookie(cookie);
    

4. session

4.1 什么是session:

  • 服务器会给每一个用户创建一个session,一个浏览器打开网站就是一个session
  • 一个session独占一个浏览器
  • 应用:用户登录一个网站后,可以访问网站所有的网页。

4.2 使用场景

  • 保存一个用户的登录信息;
  • 购物车信息;
  • 整个网站中经常会使用的数据,我们将其存放在cookie中;

4.3 使用session

  1. 获取session,设置属性

    HttpSession session = req.getSession();
    session.setAttribute("name", "yang");
    out.println(session.getId());
    
  2. 注销session

    HttpSession session = req.getSession();
    session.invalidate();
    

    session注销后,服务器会自动再生成一个session

  3. session时间设置

    <session-config>
        <!--设置session超时时间,单位为min-->
        <session-timeout>1</session-timeout>
    </session-config>
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值