什么是session
- 是一个接口
- 就是会话,它是用来维护一个客户端和服务器之间关联的一种技术
- 每个客户端都有自己的一个session会话
- session中我们经常用来保存用户登录之后的信息(服务器中)
如何创建和获取session
创建和获取session的API都是
request.getSession()
第一次调用就是创建session会话
之后调用都是,获取前面创建好的session会话对象
判断session是否是刚创建出来的API
isNew()
每个会话都有一个身份证号,也就是ID值,而且这个ID是唯一的。得到ID的API是
getId()
Session域中存取数据
protected void getAttribute(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Object attribute = req.getSession().getAttribute("key1");
resp.getWriter().write("从Session中获取出key1的数据是:" + attribute);
}
protected void setAttribute(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getSession().setAttribute("key1", "value1");
resp.getWriter().write("已经往Session中保存了数据");
}
Session生命周期
session的默认超时时长为:30min
设置session的超时时长,超过指定时长,则自动销毁
值为正数的时候,设定session的超时时长
负数表示永不超时(极少使用)
没有零这个说法
session.setMaxInactiveInterval(int);
得到session的超时时长
int long=session.getMaxInactiveInterval();
让session马上超时
public void invalidate()
session超时的概念
连续请求会刷新session的超时时间
session和浏览器之间关联的技术内幕
session技术底层是根据cookie技术实现的