Session
Session技术
Session技术是将数据存储在服务器端的技术,会为每个客户端都创建一块内存空间存储客户的数据,但客户端需要每次都携带一个表示ID去服务器中寻找属于自己的内存空间.所以session的实现是基于 Cookie的,Session需要借助于Cookie存储客户的唯一性标识JSessionID,
三个问题 1怎么获取到session的域对象2怎样向session中存取数据?
3session对象的生命周期
这里总结一下各个域的生命周期:
1servletContext:在整个web应用
2request域:在一次请求中
3session域:
1怎么获取session域对象?
HttpSession session=request.getSession();
此方法会获得专属于当前会话的Session对象,如果服务器端没有该会话的Session对象会创建一个新的Session返回,如果有了属于该会话的Session直接将已有的Session返回(实际就是根据JESSIONID判断该客户端是否在服务器上已经存在session了)
因为cookie是默认一次会话中,也就是说关了浏览器cookie就没了
所以当你关了浏览器之后 再打开浏览器是因为找不到cookie存的JESSIONID所以他认为是新的客户端才创建新的JESSIONID
解决方法:Cookie cookie=new Cookie("JESSIONID",id);
cookie.setPath("/..")
cookie.setMaxAge(3*60);
//发送cookie
response.addCookie(cookie);
这时也就是说这个JESSIONID就可以存在3*60秒 3*60秒可以访问这个session域
所以就把登录信息都存在session域中 // session域用来存用户信息
生命周期:1服务器关闭
2默认30分钟(不访问服务器资源时)
也可以加<session-config>
<session-timeout>30</session-timeout>
</session-config>改变默认时间