站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题JSP+JAVABEAN+SERVLET模式的购物车实现

JSP+JAVABEAN+SERVLET模式的购物车实现

摘要:
1.针对实现的JSP+JAVABEAN+SERVLET模式的购物车的说明。

(1)应用说明。
我们实现的购物车是最大程度的接近和模仿现实电子商务中的购物车。实现了以下功能:
*向购物车中添加商品。
*在购物车中展示所购商品的编号,名称,单价,数量及总价。
*改变购物车中商品的数量。
*删除购物车中的某项商品。
*计算购物车中单项商品的总价。
*计算购物车中所有商品的价格。
*清空购物车。

(2)界面说明。
商品列表------用于选择要购买的商品并加入购物车。
URL:http://localhost:8080/cart/goodslist.jsp

点击“购入”便向购物车中购入商品。
点击“察看购物车”便展示购物车中的购入商品。

URL:http://localhost:8080/cart/viewShoppingCart_servlet

点击“删除”便从购物车中删除该项商品。
在文本框中输入数量便改变了该项商品的购入数量。该文本框有相关的servlet 方法以保证输入合法。
点击“清空购物车”便删除了全部购入商品。
URL:http://localhost:8080/cart/clearShoppingCart_servlet

可查看购物车中已经没有了商品。

(3)代码说明。
为了实现这个Medol2的购物车我们实现了以下组件:

JAVABEAN:
CartGoodsInf.java用于封装购物车中的单项商品的属性及GET,SET方法。具体属性有: String goodsId, String goodsName, double goodsPrice,int goodsAmount,double totalPrice。
ShoppingCart.java用于封装整个购物车的属性及业务逻辑。
具体属性有:Map shopCart 用于封装购物车中的全部商品每一项商品都以CartGoodsInf 对象的形式封装于其中。
double allGoodsPrice 用于计算全部商品的总价。

业务逻辑的方法有:
public void addGoods (String goodsId,String goodsName,double goodsPrice,int goodsAmount);用于添加商品。
public void deleteGoods(String goodsId);删除商品。
public void changeAmount(String goodsId, int goodsAmount);改变商品数量。
public Map getShopCart();返回购物车中的全部商品。
public double getAllGoodsPrice();返回购物车中全部商品的总价。
public void clearShoppingCart();清空购物车。

SERVLET:用于控制逻辑.
AddGoodsServlet.java 添加商品。
ViewShoppingCartServlet.java 察看购物车。
DeleteGoodsServlet.java 删除商品。
ChangeAmountServlet.java 改变商品数量。
ClearShoppingCartServlet.java清空购物车。
JSP:我们的JSP用于实现VIEW向用户显示相关信息,由于实现了MVC我们可以方便的改变界面,所以界面并非唯一的也并非我们的重点。
goodslist.jsp
menageshopcart.jsp

2. 学习心得。
通过对这一个购物车的实现,我们得到了以下启示:
整个购物车的逻辑过程其实是围绕ShoppingCart.java这个类的对象展开的,全部SERVLET实现的控制逻辑都是对ShoppingCart.java 定义的业务逻辑的方法的调用。在ShoppingCart.java 中对一项商品使用CartGoodsInf.java 类的实例对商品属性进行封装,因此在一个ShoppingCart 实例中维护了多个CartGoodsInf 实例。

对于SERVLET将ShoppingCart.java 的相关业务逻辑的方法返回的数据设置为request 对象的属性,用于JSP获取及使用,或者是执行完无返回值的方法后用RequestDispatcher requestDispatcher=request.getRequestDispatcher("/…….");requestDispatcher.forward(request,response);语句进行转发。
在实现VIEW的JSP中只是对SERVLET通过request 对象传递的属性的提取及通过矢代子的读取及显示为网页元素。并无相关业务控制逻辑。

我们认识到在以后进行MVC开发时应投入一定精力分析相关项目的控制逻辑,业务逻辑以及与业务逻辑相关的模型的属性(用于JAVABEAN中)。在模型相关的JAVABEAN中应尽量发现业务逻辑中用于操作的对象应具有的属性。在业务逻辑中只用于封装项目中对模型进行操作的所有方法。至于要在何时使用这些方法及应具有何种条件应放在控制器中实现。

业务逻辑中并不指定如何使用这些方法,只用给出相关义务逻辑应具有的方法。

总之,基本的原则是:JAVABEAN用于实现模型及业务逻辑,SERVLET用于实现控制逻辑(控制器),JSP实现试图。

至于具体的过程要联系具体项目才能说得清楚。这里只是做一些文字上的说明。