1.Session技术是将数据存储在服务器端的技术,会为每个客户端都创建一块内存空间 存储客户的数据,
但客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内 存空间。
所以说Session的实现是基于Cookie,Session需要借助于Cookie存储客 户的唯一性标识JSESSIONID
如果服务器端没有该会话的Session 对象会创建一个新的Session返回,如果已经有了属于该会话的Session直接将已有 的Session返回
(实质就是根据JSESSIONID判断该客户端是否在服务器上已经存在 session了)
//获取属于当前会话的Session对象 HttpSession session = request.getSession(); //获取jsessionid 编码 String id= session.getId(); //向session 中存对象 session.setAttribute("goods", "iphone"); //持久化id Cookie cookie = new Cookie("JSESSIONID",id);//创建cookie cookie.setPath("/WEB07");//设置同路径 cookie.setMaxAge(2*60); response.addCookie(cookie);//发送cookie
总结 session 与 cookie 的不同
1、cookie数据存放在客户的浏览器上(不安全,不占用服务器资源),session数据放在服务器上(安全占用服务器资源)。
2. cookie 只能存储 String 类型的对象,session 是一个域对象 能够存储任意的 对象
3.生命周期不同,在不设置持久化时间的情况下,session默认30min ,cookie关闭浏览器后就失效了