购物车模块
从开发者的角度来看,购买行为 就是创建一条一条的订单项
而显示购物车,也就是把这些订单项显示在页面上。
在这个阶段,订单项都会保存在session中,直到最后生成订单的时候,才会把这些订单项保存在数据库中。
1)SQL
暂时不需要为OrderItem创建表,因为在这个环节OrderItem还是保存在Session中的
2)建一个OrderItem类
3)建一个ProductDAO类
ProductDAO需要根据id获取Product对象
4)建一个OrderAddListServlet
购买行为本身就是创建一个OrderItem对象
在负责购买商品的OrderItemAddServlet 中,进行如下流程
1. 获取购买数量
2. 获取购买商品的id
3. 根据id获取商品对象
4. 创建一个新的OrderItem对象
5. 从session中取出一个List , 这个List里面存放陆续购买的商品。
如果是第一次从session中获取该List,那么它会是空的,需要创建一个ArrayList
6. 把新创建的OrderItem对象放入该List 中
7. 跳转到显示购物车的listOrderItem
购买相同商品时:
遍历session中所有的OrderItem
如果找到对应的product.id一样的条目,就调整其数量
如果没有找到,就新增加一条
一定要注意重定向路径!是建立再cart目录下的listOrderItem
5)显示购物车内容建立OrderItemListServlet和listOrderItem.jsp
显示购物车的OrderItemListServlet 其实什么也没做,因为数据已经在session准备好了,直接服务端跳转到listOrderItem.jsp
在listOrderItem.jsp中,从session中遍历出所有的OrderItem。 因为保存在OrderItem 上的是一个Product对象,所以很容易就可以通过EL表达式遍历出商品的名称和价格。
记得要导入包!
6)配置web.xml
7)新增删除按钮,可以在加入购物车后进行删除。
新建一个OrderItemDeleteServlet
修改listOrder.jsp
关键步骤如下图红圈圈的地方
8)最后的效果呈现