什么是Session会话?
- Session就是一个接口(HttpSession)
- Session就是会话。它是用来维护一个客户端和服务器之间的一种关联的一种技术。
- 每个客户端都有自己的一个Session会话。
- Session会话中,我们经常用来保存用户登录之后的信息。
如何创建Session和获取(id号,是否为新)
他们的API是一样的
request.getSession(
)
第一次调用是:创建Session会话
之后调用都是:获取前面创建好的Session会话对象
isNew();
判断到底是不是刚创建的(新的)
true
新的
false
获取之前创建的
每个会话都有一个身份证号。也就是ID值。而且这个ID值是唯一的。
getId()
得到的是Session的会话的id值。
//获取和创建的Session会话对象
HttpSession session = req.getSession();
//判断当前session会话,是否是新创建出来的
boolean isNew = session.isNew();
//获取session会话的唯一标识
String id = session.getId();
resp.getWriter().write("sessionID="+id);
Session域数据的存取
protected void getSession(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Object key1 = req.getSession().getAttribute("key1");
}
protected void setSession(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getSession().setAttribute("key1","values1");
}
Session生命周期控制
public void setMaxInactiveInterval(int interval)
设置Session的超时时间(以秒为单位),超过指定的时长,session就会被销毁。
public void invalidate()
让当前会话马上超时无效
值为正数的时候,设定session的超时时长
为负数时永不超时(极少使用)
public int getMaxInactiveInterval()
获取session的超时时间
session默认的超时时长是:1800秒
因为在Tomcat服务器的配置文件web.xml
中默认有以下的配置,他表示配置了当前tomcat服务器下的所有session超时配置默认时长为:30min
<session-config>
<session-timeout>30</session-timeout>
</session-config>
如果要修改web工程session的会话时长,可以修改自己的web.xml配置
如果修该单个session的超时时长。就可以使用api。
setMaxInactiveInterval(int interval)
来进行单独的设置。