1:电商如此发达的现在,作为一个web开发程序猿,如果不会写购物车,真是有点不好意思找工作。所以抓紧练习啊,从上篇博客中抽离出如何实现购物车的功能。
2:首先需要理解购物车实现的一些基本步骤。
2.1:首先考虑我购买的是哪一本书籍或者那一件商品,是不是,这里可以使用id传参确定购买的是那一件商品或者书籍,也可以使用session中取出哪一本书籍,这里采用从session的取出那一件商品或者书籍
代码如:
book book=(book)session.getattribute("book");
2.2:第二考虑如何把书籍放到购物车中
2.1.1:首先考虑是否有购物车,如果没有,则创建,如果有直接使用
2.1.2:其次先将购物车从session中拿出来,不存在就创建。
代码如:
map<integer,cartitem> cart=(map<integer,cartitem>)session.getattribute("cart");
//如果没有购物车,那么创建,只有第一次访问才会操作
if(cart==null){
//new一个购物车
cart=new hashmap<>();
}
2.3:考虑如何把书籍放到购物车中
2.1.1:第一考虑购物车中是否有该书籍,所以先从购物车中获取该书籍,如果为空,那么没有该书籍
代码如:
cartitem item=(cartitem)cart.get(book.getbookid());
if(item==null){
//如果购物车中不存在该书籍,那么创建,且数量默认为1
item=new cartitem();
//将书籍放到购物车中
item.setbook(book);
//将书籍的默认数量为1
item.setnumber(1);
}else{
//如果购物车中以及有该书籍,那么数量加1
item.setnumber(item.getnumber()+1);
}
2.4:考虑如何把购物车项(即挑选的书籍是哪一个和书本的数量)放到购物车中
代码如:
cart.put(book.getbookid(),item);
2.5:将购物车放到session中,方便后面取出来
session.setattribute("cart", cart);
3:下面是具体的实现,从创建数据表开始,数据表book字段和数据名称如下所示:
4:下面创建实体类book.java;
5:创建好实体类接下来是写工具类basedao.java,用于连接数据库的操作,这些代码就不做多解释了,都已经写烂了。所以工具类一定要熟练书写
6:写好工具类就可以进行写dao层(数据交互层),service层(业务逻辑层),先写数据交互层dao层,使用先创建接口再实现接口的方法
7:写好dao层(数据交互层),就可以写service层(业务逻辑层),写业务逻辑层service层,也是使用先创建接口再实现接口的方法
8:最后按照正常开发的话就是servlet层,但是这里将servlet层的代码写到了jsp里面。所以下面jsp页面才是大戏
先创建一个book.jsp页面,用于显示从数据库查询到的图书数据
9:当图书显示出来之后就可以根据图书编号查看图书详情了,接着写dobook.jsp页面和detail.jsp页面,这个显示图书的详细的信息的页面
10:写好上面的detail.jsp然后就可以在detail.jsp页面点击添加到购物车,下面实现购物车的功能,也是这个实现购物车的核心部分,参考的话是重点看的内容,当然在写购物车之前还需要创建一个实体类cartitem.java,用于存放图书的信息和购买的数量
11:写完上面的就可以查看我的购物车了,在book.jsp页面和detail.jsp页面都有可以点击查看我的购物车的连接,然后就可以查看我的购物车,完成购物车功能。
效果如下所示:
虽然简陋,没有完全实现完,还待改善,继续加油!!!