购物车的设计要求是1.我们点击任意一件商品的"加入购物车"选项,这件商品就会被加入购物车。2.想察看购物车情况,只能通过"购物车"选项,就像我们去餐厅点菜,我们点一个菜,服务员在菜单上加一个菜。不会出现服务员每当我们点一个菜,就把菜单递给我们看一眼的情况。3.购物车页面提供"指定商品删除",清空购物车,结算功能。
我们发现,我们需要一个"服务员",这个服务员要能默默在菜单上记下我们点的菜,并按我们的意思删除已点的菜。在这里,我们可以利用session充当这个服务员。我们把购物车放置在session中。需要放入/拿出商品时就把购物车从session中取出,完事再把购物车放回session。这样一来,session始终保存着购物车的最新状态。
具体操作
1.首先需要两个类,CartItem存储单种商品的属性,ShoppingCart存储商品列表,并提供购买车内商品的增删方法。在这里我们用HashTable取代List作为Item的存储结构。因为HashTable可以省去遍历查询操作,直接利用Key-Value进行读写即可。
CartItem类
ShoppingCart类
2.还需要一个与session有关的页面,负责session与购物车的交互。
3.