Session与Cookies

来源:互联网 发布:在职法律硕士 知乎 编辑:程序博客网 时间:2024/05/16 04:07

Cookies  是把用户的数据写给浏览器  保存在浏览器中  然后用户可以在浏览器中获取保存的cookies  

Session技术 使把用户的数据  写到用户独占的session中  

Session对象由服务器创建  开发人员可以调用request 的getSession方法获取  这点与cookies差不多


session 是为一个会话服务   如果分别打开2个网页   session不同步


Session  的创建与销毁  :


不是在打开浏览器时 创建的  是 调用getSession时 创建的  


Session 的销毁 是 30分钟 没人用的时候 服务器才会销毁他  即使浏览器关了 也不销毁 即使浏览器不关  30分钟后不用session 也会销毁   但这个30分钟 可以自定义 


在 web.xml中配置 : 十分钟后销毁

  <session-config>   <session-timeout>10</session-timeout>  </session-config>  


在代码中销毁:

session.invalidate();

这句代码过后 session即销毁


getsession()函数有一种有参数的重载  若 参数为false  则只获取 不创建session


但是 session 浏览器关了 就会销毁   若是想让他 浏览器关了 不销毁  那么要明白session的原理  


session 是通过回写给浏览器一个cookies  id来 识别用户的session的  当然 这个cookies 没有设置 有效期  也就是浏览器关闭 就会销毁  所以 我们只要创建一个同名的cookies覆盖原有的cookies  然后设置有效期即可!  


具体代码如下:

HttpSession session = request.getSession();String idString = session.getId();Cookie cookie = new Cookie("JSESSIONID", idString);cookie.setMaxAge(30*60);cookie.setPath("/cooks");response.addCookie(cookie);session.setAttribute("history", "哈哈");
其中Cookie的名字 通过HTTPWATCH 获得   


0 0
原创粉丝点击