0
点赞
收藏
分享

微信扫一扫

Session会话技术 - JavaWeb



​​JavaWeb入门​​

一.概念

  1. Session是一个接口(HttpSession)
  2. Session是会话. 它是用来维护一个客户端和服务器之间关联的一种技术.
  3. 每个客户端都有自己的一个Session会话
  4. Session会话中, 我们经常用来保存用户登陆之后的信息.

二.Session应用

2.1 Session创建

// 第一次则Session则新创建, 否则获取Session对象
HttpSession session = req.getSession();
// 判断当前Session会话, 是否是新创建的
boolean isNew = session.isNew();
// 获取Session会话的唯一标识 id
String id = session.getId();

2.2 Session域

// 往Session域对象中存值
req.getSession().setAttribute("key", "value");

// 获取Session
Object attribute = req.getSession().getAttribute("session");
// 将获取的Session值返回给客户端
resp.getWrite().write("从Session中获取的session数据是:" + attribute);
// 将输出 '从Session中获取的session数据是:value'

2.3 Session生命周期

public void setMaxInactiveInterval(int interval)

指定在 servlet 容器使此会话失效之前客户端请求之间的时间间隔,以秒为单位。负数时间指示会话永远不会超时。

该方法是给指定页面设置sesssion的超时间隔时长

public void invalidate()

使此会话无效,然后取消对任何绑定到它的对象的绑定。

public int getMaxInactiveInterval()

返回 servlet 容器在客户端访问之间将使此会话保持打开状态的最大时间间隔,以秒为单位。在此间隔之后,servlet 容器将使会话无效。可使用 ​​setMaxInactiveInterval​​ 方法设置最大时间间隔。负数时间指示会话永远不会超时。

Session默认的超时时长是30分钟

如果修改默认值的话, 在web工程中修改​​web.xml​​文件,

<session-config> <session-timeout>20</session-timeout> </session-config>

! 注意 ! : session的超时指的是: 客户端两次请求的最大间隔时长

如果期间再次发送请求, 则会重新计算间隔时长.

浏览器和Session的关联

Session会话技术 - JavaWeb_session

Session的创建基于Cookie, 保存在Cookie的 JSESSION 中, 如果浏览器关闭, 虽然session没有超时, 但是cookie已经自动销毁, 所以重新打开需要重新创建Seesion


举报

相关推荐

0 条评论