session简介:
服务器可以为每个用户浏览器创建一个会话对象(session对象),一个浏览器只能产生一个session,当新建一个窗口访问服务器时,还是原来的那个session。session中默认保存的是当前用户的信息。因此,在需要保存其他用户数据时,我们可以自己给session添加属性。
创建:
sessionid第一次产生是在直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建。
删除:
超时;程序调用HttpSession.invalidate();程序关闭;
session存放在哪里:
服务器端的内存中。不过session可以通过特殊的方式做持久化管理(memcache,redis)。
session的id是从哪里来的,sessionID是如何使用的:
当客户端第一次请求session对象时候,服务器会为客户端创建一个session,并将通过特殊算法算出一个session的ID,用来标识该session对象
session会因为浏览器的关闭而删除吗?
不会,session只会通过上面提到的方式去关闭。session(会话)可以看为是一种标识,通过带session的请求,可以让服务器知道是谁在请求数据。
例子:
@GetMapping("/demo")
public void demo(HttpServletRequest request){
HttpSession sessoin=request.getSession();//这就是session的创建
session.setAttribute("username","TOM");//给session添加属性属性name: username,属性 value:TOM
session.setAttribute("password","tommmm");//添加属性 name: password; value: tommmm
System.out.println(session.geiId);
}
参考: