会话过程保存数据对象cookie和session

1 cookie是以键值对保存在浏览器端,服务器端可以创建、接收、发送 cookie 信息。

request可以接收 cookie, response 可以发送 cookie。

1)cookie 可以设置过期时间cookie.setMaxAge

  • 正数,浏览器会将数据保存到硬盘中,如果没有超过过期时间,就可以一直访问。时间单位是秒。
  • 负数,浏览器会将数据保存在内存中,关闭浏览器数据就会回收。
  • 0,清除同名的cookie。

2)Cookie 可以设置有效路径 cookie.setPath(String path)。浏览器只有在有效路径下才会发送相应的cookie。

3)存放限制:浏览器一般只允许存放300个cookie,只可以存放英文、数字字符串,每个站点最多可以存放20个cookie,每个cookie大小限制为4kb。

2 session 将键值对保存到服务器端,获取session 对象,request.getSession()。

  通过 JSESSIONID 的 cookie 值在服务器找 session 对象。该 cookie 值保存在浏览器端的内存中,因此关闭浏览器或者更换浏览器因为没有 sessionID,因此不是同一个会话;但是如果浏览器没有关闭,不同的 table 可以访问同一个session对象。

  1) 可以修改 session 对象的保存时间,默认时间是半小时。

  session.setMaxInactiveInterval(int)  //单位是秒

  全局修改session 保存时间,单位是分钟。

<session-fig>
<session-timeout>time</session-timeout>
</session-fig>

  2)手动销毁session对象

  void session.invalidate() //销毁session对象。

上一篇:session保存用户信息


下一篇:UVA 239 - Tempus et mobilius. Time and motion(更换周期)