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>改变默认时间

posted @ 2021-07-05 00:23  王子剑  阅读(62)  评论(0编辑  收藏  举报