Cookie&Session 重点

会话技术

会话是指从打开一个浏览器访问某个站点,到关闭这个浏览器的过程

而记录这过程中产生的数据有两种方式:Cookie和Session

1、Cookie

Cookie是将数据存储在客户端本地,减少服务器端存储压力,不安全,可能会被清除

  1. 服务器向客户端发送Cookie
    1. Cookie cookie = new Cookie(String cookieName, String cookieValue);//Cookie不能存储中文,可以有多个Cookie键值对
    2. cookie.setMaxAge(int seconds);//如果不设置持久化时间,浏览器关闭会自动销毁该Cookie,设置持久化后,会将Cookie存储到浏览器的磁盘文件中
    3. cookie.setPath(String path);//默认路径为整个web应用
    4. response.addCookie(cookie);//向客户端发送cookie
    5. 删除cookie:设置同名同路径Cookie持久化时间为0
  2. 服务器端接受客户端的Cookie
    1. Cookie[] cookies = request.getCookie();
    2. 遍历cookies数组,通过cookieName获得响应Cookie

2、Session

Session是将数据存储到服务器端,安全性较好,增加服务器存储压力。

Session技术会为每个客户端创建一块内存空间存储客户的数据,但客户端需要每次都携带一个标识ID(JSESSIONID)去服务器中寻找属于自己的内存空间。所以说Session的实现是基于Cookie的,持久化时间也与其相应的Cookie持久化时间一致

  1. HttpSession session = request.getSession();//获得当前会话的Session对象,如果服务器端没有该会话的Session对象则会创建一个新的Session返回,如果已经有则会直接返回该会话的Session
  2. Session也是一个域对象所以:
    1. session.setAttribute(String name, Object obj);
    2. session.getAttribute(String name);
    3. session.removeAttribute(String name);
  3. Session 的生命周期
    1. 创建:执行request.getSession(),并发现该会话中没有Session对象
    2. session失效时间:默认30mins,从不操作服务器端的资源开始计时
    3. //过期时间可以在web项目的web.xml中进行配置
      <session-config>
          <session-timeout>30</session-timeout>
      </session-config>

       

    4. 手动销毁session:session.invalidate();
    5. 作用范围:默认在一次会话中,该会话中任何资源公用一个session对象

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值