首页 > 代码库 > easymall项目的商品删除,前台商品分页,商品详情,购物车模块

easymall项目的商品删除,前台商品分页,商品详情,购物车模块

简单的挑选一下昨天所学的重点知识模块,以备后续的复习

 

 

一、购物车模块
1.1购物车两种实现的区别:!!!!!!!!
 用session保存
  缺点:浏览器关闭,session失效时保存在session中购物信息将会消失
  后续优化,将购买的信息除了保存在session中以外,还要将购物的信息保存在cookie中,这样
  就解决了浏览器关闭购买商品信息丢失的问题(但是解决不了跟换电脑信息丢失的问题)
  优点:不用操作数据库,可以减少数据库访问压力
 数据库中:
  缺点:只用登录的用户才能添加购物车
   频繁的操作数据库
  优点:浏览器关闭,更换电脑不受影响

1.2具体实现
 在session中使用map<product,Interger>来保存购物车中购买商品的信息。
  key:Produnct类对象,key不能重复,需要复写hashCode和equals方法
  value:该商品购买了几件
 0.session监听:当session创建时,向session中添加个cart对象(new hashMap<Product,Interger>())   当session 销毁是,从session作用域中将cart删除
 1.加入购物车:
  入口:从商品分页列表页和商品详情页面,点击加入购物车按钮
  CartAddServlet:
   获取要增加的商品的id和购买的数量
   根据商品id调用service业务层的根据商品id查询商品信息的方法
   将该商品对象添加到map集合中:
    |-该商品首次购买,向map集合添加一条记录。<prod,num>
    |-该商品在购物车已经存在,修改map集合中prod对应元素的购买数量
     新数量=原数量+本次购买的数量
 2.购物车显示
  直接在购物车页面(cart.jsp)上从session中获取,Map<Product,Interger> 
 3.修改数量
  将商品id和新的数量进行提交,根据pid和newNum修改map对象的对应元素
  是否需要查询数据库???
 4.购物车删除
  根据商品的id从map集合中删除该元素

1.3具体开发实现
 1.3.1session监听开发
  1.创建一个类MyHttpSessionListener,实现指定的接口HttpSessionListener
  然后实现接口中的抽象方法 

 1.3.2
 为了区分是否为同一件商品,

 1.开发cart.jsp页面上修改
 2.接受参数

 


二、订单模块
订单添加成功时 要对应商品的库存减少
Map<product,Interger> cart -->数据库中
1.向orders添加一条记录
2.向orderitem表中添加若干条记录
3.修改products表中若干条记录,修改剩余库存
 准备工作
  1.创建订单表和订单项表
 order订单表
  收货地址
  支付方式
  订单总金额
  订单号
 orderitem订单项
  order_id
  product_id
  buynum 

 

easymall项目的商品删除,前台商品分页,商品详情,购物车模块