Java Web 学习 : session

什么是 session?

  • session 表示客户端与服务器的一次会话。
  • Web 中的 session 指的是用户在浏览某个网站时,从进入浏览器到关闭所经过的这段时间,也就是用户浏览这个网站说话费的时间。
  • 从上述定义中可以看到,session 实际上是一个特定的时间概念。
  • session 保存在服务器的内存中。

session 对象

  • session 对象是一个 JSP 内置对象
  • session 对象在第一个 JSP 页面被转载时自动创建,完成会话期管理。
  • 从一个客户端打开浏览器并连接到服务器,到客户端关闭浏览器离开这个服务器结束,被称为一个会话。
  • 当一个客户访问一个服务器时,可能在会在服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要 session 对象。
  • session 对象是 HttpSession 类的实例

session 对象的常用方法如下:

long getCreationTime() //返回 Session 创建时间
public String getId() //返回 session 创建是 JSP 引擎为它设的唯一 ID 号
public Object setAttribue(String name, Object value) //使用指定对象绑定到此会话
public Object getAttribute(String name) //返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定该名称,则返回 null 
String[] getValueNames() //返回一个包含此 Session 所有可用属性的数组
int getmaxInactiveInterval() //返回两次请求间隔多长时间此 session 被取消(单位 s)

session 生命周期

创建
当客户端第一次访问某个 JSP 或者 Servlet 的时候,服务器会为当前会话创建一个 SessionId,每次客户端向服务器发送请求时,都会将此 SessionId 携带过去,服务端会对此 SessionId 进行校验。

活动:

  • 某次会话当中通过此超链接打开的新页面属于同一个会话。
  • 只要当前绘画没有全部关闭,重新打开新的浏览器窗口访问同一项目资源时属于同一会话。
  • 除非本次会话的所有页面都关闭后再重新访问某个 JSP 或者 Servlet 将会床架新的会话。

note:

原有的会话都还存在,只是这个旧的 SessionId 仍然存在与服务端,只不过再也没有客户端会接待它然后交予服务端校验。

销毁:
Session 的销毁只有三种方式:

  1. 调用了 session.invalidate() 方法
  2. Session 过期(超时)
  3. 服务器重新启动

超时
Tomcat 默认 session 超时时间为 30 分钟
设置 session 超时有两种方式:

  1. session.setMaxInactiveInterval(time): //单位 s
  2. 在 web.xml 配置


10

 //单位 min

你可能感兴趣的:(Java Web 学习 : session)