购物车方案:
使用Tomcat内置session机制 会话级别
(关闭浏览器,cookie没有了session也没有了)
购物车模型:
1.购物车实体:
cart:
购物项 集合
总金额
cartItem:
购物项:要购买的商品信息和购买数量的总体描述
商品
数量
小计
充血式设计javaBean.
设计购物车javaBean
添加购物项
删除购物车项
清空购物车项
1.添加购物车:
1.前端:
1.在info.html中给加入购物车按钮绑定点击事件 去掉他本身的a标签效果
2.给添加数量输入框加上id和name属性
3.定义鼠标点击事件方法,需要获取pid商品id和count添加的数量
使用HM方法调用getParameter()方法获取pid,定义变量获取数量输入框的值
4.拼接参数 pid+count
5.HM方法发送ajax请求 方法add 参数是拼接好的参数
6.接收vo收据,如果code为1代表成功,跳转到购物车页面list.html
7.如果不成功打印一下错误信息
2.后端:
1.创建购物项 CartItem javaBean
1.字段(关联商品,购买数量,小计金额)
2.小计金额只需要get方法,返回商品的金额*数量
2.创建购物车 Cart javaBean
1.字段(总金额,购物项map集合)
2.总金额初始化 0.0 map集合要初始化new hashmap
3.创建添加购物项方法,删除购物项方法,清空购物车方法
4.添加购物项方法:
1.获取cartItem购物项的商品的pid
2.判断该集合是否包含该pid
3.如果包含通过该pid获取该购物项,获取原来购物项
4.把原来购物项的数量加上新增购物项的数量
5.如果不包含就用集合添加该pid与购物项
6.不管有没有该购物项都要添加总金额,
总金额+=购物项小计金额.
5.删除购物项方法:
1.将购物项从集合中删除通过pid.
2.总金额-=购物项小计金额
6.清空购物项方法:
1.集合通过clear()方法清空.
2.总金额=0.0;
3.创建购物车cartservlet
1.继承父类baseservlet 创建add方法
2.获取参数pid和count count需要转换int型
3.调用service查找pid获取product商品对象
3.创建一个购物车项cartitem对象,手动set里面的属性值
4.创建一个获取购物车getcart方法,参数为request
5.由于购物车采用session机制为了保证只有一个session
先去获取一下session,获取session中有没有购物车cart
6.判断有没有cart,如果为null代表没有,这样就新建一个cart
把它存储到session中
7.如果有就直接返回购物车cart 不需要其他操作
8.使用getcart方法获取购物车,购物车调用增加购物车项方法
把cartitem传入.
9.返回成功信息
10.在count数据后追加一个判断,如果count>10 返回错误信息
库存不足,return结束程序.
2.购物车的展示:
1.前端:
1.在list.html页面,由于采用session机制直接发送ajax请求
方法list 返回所有信息不需要参数.
2.接收vo收据,vo数据的data字段中的item就是购物车项设置
变量itmes接收 设置一个cart变量接收data字段用来
设置总金额
3.遍历itmes,让idea帮助拼接tr字符串 获取tr新标签
4.追加标签,总金额标签嵌套一个span元素 获取total的值替换
2.后端:
1.创建list方法
2.获取当前session的购物车,调用getcart方法
3.父类重新封装一个success方法里面添加剔除元素jsonconfig
4.创建jsonconfig对象 剔除不需要的元素
5.cart类中getitem的返回值,改成item.values(),这样方便我们
遍历返回到前端的信息(之前是map集合改成单列集合)
5.返回成功信息
3.删除购物车项:
1.前端:
1.只要遇到删除功能一定要添加弹出确认框,防止误操作
2.在拼接tr字符串中的删除a标签绑定点击事件,清除原有效果
3.在点击事件函数中添加商品pid,用来发送你要删除那个购物项
添加时注意要使用双引号扩住,并且前面"前加\转义符
3.定义绑定的清除点击事件方法,先if判断,弹出确认框使用confirm
HM方法发送ajax请求,del方法,参数为pid,由于删除操作一定成功
所以不用去判断里面的结果.
4.删除后需要刷新页面来显示效果使用reload()方法.
2.后端:
1.创建del方法
2.获取pid参数
3.使用getcart方法获取购物车
4.使用购物车cart里的remove方法根据pid删除购物项
5.返回成功信息
4.清空购物车功能:
1.前端:
1.清空购物车a标签绑定点击事件,清除原有效果
2.弹出确认框使用confirm,弹出确认提示
3.发送ajax请求,方法clear 删除所有没有参数
4.由于删除操作一定成功所以不用去判断里面的结果
5.删除后需要刷新页面来显示效果使用reload()方法.
2.后端:
1.创建clear方法
2.使用getcart方法获取购物车
3.使用购物车cart里的clear方法清空购物车
4.返回成功信息