Session与Cookies

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 获得   


你可能感兴趣的:(Session与Cookies)