1.获取session对象
HttpSession session = request.getSession();
注
:当获取session对象时,会先判断session对象是否存在,如果存在,则获取session对象;如果不存在,则会创建session对象。
2.session的常用方法
方法 | 作用 |
---|---|
session.getId() | 获取session的会话标识符 |
session.getCreationTime() | 获取session的创建时间 |
session.getLastAccessedTime() | 获取最后一次访问时间 |
session.isNew() | 判断是否是新的session对象 |
3.session域对象
Session表示一次会话,在这次会话中,数据可以共享,此时可以通过setAttribute(key, value)
方法向session域对象中添加数据,通过getAttribute(key)
方法从域对象中获取数据,通过removeAttribute(key)
方法从域对象中移除数据。
//获取session对象
HttpSession session = req.getSession();
//设置域对象
session.setAttribute("name", "zhangsan"); //key相同时,值会覆盖
//获取session域对象
String uname = (String) session.getAttribute("name");
//移除域对象
session.removeAttribute("password");
4.session设置到期时间
- 在Tomcat中的
conf目录下的web.xml文件中
设置(单位:分钟):
<session-config>
<session-timeout>30</session-timeout>
</session-config>
- 通过
session.setMaxInactiveInterval(int time)
方法设置(单位:秒):
session.setMaxInactiveInterval(15); //设置session存活时间为15s
- 查看当前session最大不活动时间(每次操作时,session会重新计时):
session.getMaxInactiveInterval();
- 立即销毁
session.invalidate();
注
:浏览器或服务器关闭时,session也会被销毁;session是基于cookie存在的,session的唯一表示JSESSIONID
以cookie形式存在浏览器内存中,当浏览器关闭时,该标识就不存在了,服务端中对应的session也会失效。