Session的跟踪机制
使用Cookie和附加URL参数都可以将上一次请求的状态信息传递到下一次请求中,但是如果传递的状态信息较多,将极大降低网咯传输效率和增大
当浏览器—请求—>web服务器某个servlet程序,会话开始,一个唯一的标示id保存会话状态存储区域。---HttpSession对象。一个客户端在web服务器端对应一个HttpSession对象。
浏览器(id)<----id
浏览器(id) ----id--->servlet
Web应用程序创建了与某个客服端对应的HttpSession对象后,只要没有超出一个限定的空闲时间段,
HttpSession session=request.getSession(true);
功能:如果session对象不存在,就创建session对象
如果session对象不存在,获取session对象的应用
HttpSession session=request.getSession(false);
功能:如果session存在,返回session对象的应用
如果session对象不存在,返回null
LoginServlet:
HttpSesion session=request.getSession();
Session.setAttribute(“name”,name);
转到web其他页面去查看商品
BuyServlet:
List cart购物车
Cart.Add(good)
HttpSession session=request.getSession();
购物车的流程:
首页:看到所有商品
1 洗衣机 800 <a href=’/demo/buyServlet?id=#’> 加入购物车</a>
2 电视 800 <a> 加入购物车</a>
3 MP4 800 <a> 加入购物车</a>
4 pc 800 <a> 加入购物车</a>
BuyServlet:
获取到要购买的商品的id,获取对应商品对象good
//List cart=new LinkedList();
cart.add(good);
session.setAttribute(cart);
跳转到显示购物车的页面ListCarServlet