J2EE的手机网上商城系统论文 第6页
5.3.1购物车模块的设计
购物车是基于MVC三层模式予以实现的。模型层用来封装后台业务逻辑,即把数据库表中信息(模型)封装在JavaBean中,以便在JSP页面中统一调用。控制层采用Servlet予以实现,主要负责请求的转发。视图层用来显示购物车页面,实现与用户的交互。
模块的主要功能如下:
查看商品列表
设置购买商品数量
购物车信息查看
前台结账
订单确认
主要开发的页面如下:
商品列表页面(goods_list.jsp):完成商品列表显示工作。
购物车页面(goods_show.jsp):显示购物车中的商品信息。
用户结账页面(check_out.jsp):用户确认购买商品信息。
设置购买商品数量页面(set_number.jsp):用于设置用户购买商品数量。
用户订单确认页面(confirm):用户确认订单收货地址、收货人等信息。
以上页面主要实现MVC模式中视图(View)的功能。
主要开发的JavaBean如下:
商品信息Bean(goods.java):封装了商品信息表goods的所有属性信息。
商品信息分类Bean(type.java):封装了商品分类表type的所有属性信息。
订单信息Bean(orders.java):封装了订单表orders的所有属性信息。
订单详细信息Bean(orders_detail.java):封装了订单详细表orders_detail的所有属 性信息。
商品信息数据库操作Bean(DB_goods.java):封装了对goods表的数据增加、修改、 删除等数据库操作。
商品分类信息数据库操作Bean(DB_type.java):封装了对type表的数据增加、修 改、删除等数据库操作。
订单信息数据库操作Bean(DB_orders.java):封装了对orders表的数据增加、修 改、删除等数据库操作。
订单详细信息数据库操作Bean(DB_order_detail.java):封装了对orders_detail表 的数据增加、修改、删除等数据库操作。
主要开发的Servlet如下:
购物车Servlet(goods_cartservlet.java):完成购物车模块里的主要页面控制功能。
以上Servlet主要实现MVC模式中的控制器(Controller)的功能。数据库连接同样使用了公用的数据库连接类DB_Conn来简化开发。此外还使用了公用页面文件public.jsp。
5.3.2购物车模块的实现
购物车模块的系统流程图如图5-3-2-1所示:
图5-3-2-1
当用户在goods_list.jsp页面中单击购买按钮时,会转入set_number.jsp页面进行商品数量设置,当客户输入商品数量并按提交按钮时,隐藏域中的数据将被发送至goods_cartservlet中予以处理。goods_cartservlet首先会判断客户是否是第一购买商品,如果是,则为客户新建一个虚拟购物车。以下代码为实现新购车的构建:
Vector vector = new Vector();
否则判断客户购物车中此类商品的数量是否为0,如果为0,则根据客户对商品的需要直接进行设置;若不为0,则更新商品数量,在原商品数量的基础上相加,这是通过flag标志实现的。以下代码段实现把客户所购商品添加进来:
Goods goods = new Goods();
goods = db_goods.listgoods(goods_id);
goods.setgoods_number(number);
vector.addElement(goods);
Servlet最后会把处理结果派发给购物车页面即goods_show.jsp页面。如5-3-2-2所示:
如图5-3-2-2
当单击“继续购物”连接时,将返回商品列表主页(goods_list.jsp)进行购物,在这里客户可以继续选择自己喜欢的商品放入购物车中。
当单击删除按钮时,购物车中相对应商品将被删除。其实现过程是首先判断action是否为删除(delete),通过if(action.equals("delete")),如果是的话,Servlet接收隐藏域传递来的索引值(delindex)通过request.getParameter()函数,然后通过字符串变量转换为整型变量函数Integer.parseInt(idex),把接收到得索引值进行处理,再使用removeElementAt(int index)函数删除Vector容器中delindex索引出的值对象,并把处理结果放入session对象中实现会话跟踪,通过request.getSession(true).setAttribute("vector",vector)。然后把处理结果发送到视图goods_show.jsp中予以显示。
当在修改数量文本框中输入商品数量并单击“修改”按钮时,就可以修改所购买商品的数量。其实现过程是Servlet判断action是否为“修改”,如果是的话,然后继续接收隐藏域传来的索引值(modindex)和所需设置商品数量(number),然后再和购物车中所有商品的索引依次进行比较。当找到索引值为modindex的商品时,则修改其数量为number,通过商品属性对象goods.setGoods_number(gnum)方法,然后再通过 vector.setElementAt(goods , i)把修改数量后的商品放到索引值对应出。再把处理结果发送到goods_show.jsp页面中予以显示。
当单击“清空购物车”按钮时,购物车中所有商品均被删除。其实现过程为购物车Servlet首先判断action是否为delete,是的话,则通过调用Vector类的removeAllElementAt( )函数删除Vector容器中所有元素,并把处理结果发送到goods_show.jsp页面中予以显示。程序执行结果如图5-3-2-3所示:
图5-3-2-3
当在goods_show.jsp页面中,单击前台结账按钮时,Servlet将判断action是否为前往前台结账页面,如果是,则根据商品价格、商品数量和商品折扣率计算出购物车中每种商品的消费额,并把处理结果派发到check_out.jsp页面中予以显示和进行结账处理。前台结账页面如图5-3-2-4所示:
图5-3-2-4
当客户点击确认按钮后,则跳转到confirm.jsp页面,运行结果如图5-3-2-5所示:
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页