-
Session 和 Cookie的区别
(1) Cookie把记录消费者详细信息的会员卡给消费者,Session把只记录卡号(id)的会员卡给消费者
(2) Cookie保存在客户端,Session保存在服务器
(3) Cookie只能保存有限的文本信息,Session可以保存对象,且对象的数量和大小没有限制
Session可以跨 Servlet/JSP传递参数
-
Session的底层实现方式
(1) 借助Cookie实现,即客户端保存一个id(但是可能保存在硬盘,可能保存在浏览器进程,详见“关闭浏览器后Session就销毁了吗.md”)
(2) URL重写。当Cookie被禁用时,可以将id附加到URL中,即 www.xxx.com/default?sessionid=41kljfklaowro908q
绝大多数情况使用第一种,少数情况使用第二种
Session可以设置有效期,但是这个有效期指的是服务器端的有效期
-
Session编程基础操作
(1) 获得Session
HttpSession session = request.getSession();
(2) 设置保存的对象 (键-对象 形式)
session.setAttribute("price", priceContainer); session.setAttribute("name", nameContainer);
(3) 获取保存的对象
PriceContainer priceContainer = session.getAttribute("price"); NameContainer nameContainer = session.getAttribute("name");
(4) 设置服务器端的有效期(单位:秒)
session.setMaxInactiveInterval(int time)