web商城项目笔记-3.购物车功能

Source

购物车方案:

使用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.返回成功信息