标签:缺点 数据 使用 map 成功 创建 优化 丢失 用户
简单的挑选一下昨天所学的重点知识模块,以备后续的复习
一、购物车模块
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项目的商品删除,前台商品分页,商品详情,购物车模块
标签:缺点 数据 使用 map 成功 创建 优化 丢失 用户
原文地址:http://www.cnblogs.com/buyucgb/p/5991292.html