购物车案例分析(初学三层架构)

 

备注:

具体实现的流程步骤!


构建JavaBean:对基本的数据进行封装!Book(书),Cart(购物车),CartItem(购物项(购物车里面的内容))等!起初只是定义用的到的数据,没有用到或者暂时没有想到的就先不定义。用到再定义!


构建数据库:BooDb,利用Map创建数据库(备注:有查询需求的时候选择Map),并且添加数据!向外提供获取方法和查找的方法!备注:向外提供方法是因为没有用到JDBC,以后的话就不会需要了!


DAO层提供这两个方法!(注意对于DaoService层,包分为:接口包和实现包!


Service层提供这两个方法!(注意:三层架构只能一层一层的调用,不可以跨层调用!


Mvc层:主页面显示的ShowAllBooksServlet,获取数据,将其封装(attribute)。


跳转到listBooks jsp页面:进行显示!

用到了:EL表达式,JSTL循环遍历,链接等!


链接到购买的BuyServlet页面,传递参数(BookId,通过参数获取这本书,判断购物车是否存在:没有的话就创建购物车,将这本书添加上去并且保存购物车到session中去;有的话直接添加!



备注:

一个购买的链接所实现的操作:判断购物车是否存在,将书添加到购物车:addBook会添加到Cart的属性Map中去,还会进行判断(书之前是否已经存在,存在的话数量加1,不存在的话新建,数量设置为1)设置购物车的属性(进行页面的数据操作)备注:购物车的总价,数量与购物条目的总价,数量不一样!


跳转到listCart jsp页面:判断购物车中的属性Map是否存在(不是购物车是否存在,是判断购物车中是否有数据!)有的话进行迭代显示!

对于删除,清空等操作:注意使用了javascript语言,因为涉及二次提醒确认!

跳转到删除的deleteServlet(传递参数bookId),进行数据的操作,然后跳转回来!

对于清空,一样!都是利用Map自身的方法,Map中的数据(购物车数据)删除,并不是将购物车删除!


对于数量一栏,设计为可以直接修改,在这个表格中加入input!注意数据的变化:而且,不能出现购买数量和金额不匹配的情况(增加数量,但是点击取消,付款的时候数量多了的情况下金额没有对应的增加!):进行二次判断,确认修改的话,将数据和金额全部变化,确保匹配!取消修改的话,将数据修改为原来的数据(参数列表传递参数过去!)


Servlet页面和Jsp页面的来回跳转(传递数据和进行数据的处理)


源码链接:http://pan.baidu.com/share/link?shareid=1773841009&uk=1261246294

你可能感兴趣的:(JavaEE轻量级)