Posted on 2008-07-28 17:54
freedoom 閱讀(2685)
評論(3) 編輯 收藏 所屬分類:
JAVA技術(好文保存)
JSP+JAVABEAN+SERVLET模式的購物車實現
JSP+JAVABEAN+SERVLET模式的購物車實現分類: servlet&jsp 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實現試圖。
至于具體的過程要聯系具體項目才能說得清楚。這里只是做一些文字上的說明。
源碼下載地址:http://matrix.org.cn/resource/upload/article/2006_06_12_231418_jfDDwCNzAa.rar
http://matrix.org.cn/resource/article/2006-06-12/JSP+JAVABEAN+SERVLET_44477.html
|