sessio的概述以及使用

一.session技术

把会话数据保存到服务端的技术,是session技术。session依赖于Cookie。

(一)怎样获取session(重点)

HttpSession session = request.getSession();

方法有两个作用:

  1. 获取原有的session 客户端有JSESSIONID,并且服务端有对应的session对象存在,获取原有的session
  2. 创建新的session 获取不到原有的session时,会创建新的session。

(二)怎样向session里存取数据()

域对象存取数据必定有三个方法: setAttribute getAttribute removeAttribute
session域对象的生命周期:
何时创建: 客户端的JSESSIONID和服务端的session对应不上并且要执行request.getSession();
何时销毁:

  1. 服务器非正常关闭
  2. 手动销毁
    session.invalidate();
    作用范围:一次会话期间
  3. 会话超时,session自动销毁。session默认是30分钟超时。
    tomcat的web.xml中有默认的会话超时配置30分钟。

我们可以在web.xml里面配置session的时间,单位是分钟

 <session-config>
      <session-timeout>60</session-timeout>
 </session-config>	

二、什么样的场景适合使用会话技术保存数据


  1. 购物车。 每个不同的客户端访问同一个服务端,他们的购物车数据必定是不同的,这些数据是属于某一个客户端与服务端会话的数据。可以使用会话技术来保存这些数据。
    使用Cookie做购物车:
    可以让购物车里的数据保存很长时间
    不方便保存复杂数据,大量数据 使用session做购物车:
    可以保存复杂数据,大量数据
    购物车数据不能长期保存
  2. 用户登录状态 登录状态通常是保存在session中。通常是把登录的User对象放到session里。 只要一次登录,把登录状态放到session里,sessionid由浏览器自己保存。之后当浏览器访问其它资源的时候,我们可以再获取session对象,从中获取到是否是已经登录状态。
  3. 验证码校验 如果是已登录,允许访问;如果判断是未登录,不允许访问。 通常是保存在session中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值