JSP+JAVABEAN+SERVLET模式的購(gòu)物車實(shí)現(xiàn)分類: servlet&jsp 1.針對(duì)實(shí)現(xiàn)的JSP+JAVABEAN+SERVLET模式的購(gòu)物車的說(shuō)明。 (1)應(yīng)用說(shuō)明。 我們實(shí)現(xiàn)的購(gòu)物車是最大程度的接近和模仿現(xiàn)實(shí)電子商務(wù)中的購(gòu)物車。實(shí)現(xiàn)了以下功能: *向購(gòu)物車中添加商品。 *在購(gòu)物車中展示所購(gòu)商品的編號(hào),名稱,單價(jià),數(shù)量及總價(jià)。 *改變購(gòu)物車中商品的數(shù)量。 *刪除購(gòu)物車中的某項(xiàng)商品。 *計(jì)算購(gòu)物車中單項(xiàng)商品的總價(jià)。 *計(jì)算購(gòu)物車中所有商品的價(jià)格。 *清空購(gòu)物車。 (2)界面說(shuō)明。 商品列表------用于選擇要購(gòu)買的商品并加入購(gòu)物車。 URL:http://localhost:8080/cart/goodslist.jsp 點(diǎn)擊“購(gòu)入”便向購(gòu)物車中購(gòu)入商品。 點(diǎn)擊“察看購(gòu)物車”便展示購(gòu)物車中的購(gòu)入商品。 URL:http://localhost:8080/cart/viewShoppingCart_servlet 點(diǎn)擊“刪除”便從購(gòu)物車中刪除該項(xiàng)商品。 在文本框中輸入數(shù)量便改變了該項(xiàng)商品的購(gòu)入數(shù)量。該文本框有相關(guān)的servlet 方法以保證輸入合法。 點(diǎn)擊“清空購(gòu)物車”便刪除了全部購(gòu)入商品。 URL:http://localhost:8080/cart/clearShoppingCart_servlet 可查看購(gòu)物車中已經(jīng)沒(méi)有了商品。 (3)代碼說(shuō)明。 為了實(shí)現(xiàn)這個(gè)Medol2的購(gòu)物車我們實(shí)現(xiàn)了以下組件: JAVABEAN: CartGoodsInf.java用于封裝購(gòu)物車中的單項(xiàng)商品的屬性及GET,SET方法。具體屬性有: String goodsId, String goodsName, double goodsPrice,int goodsAmount,double totalPrice。 ShoppingCart.java用于封裝整個(gè)購(gòu)物車的屬性及業(yè)務(wù)邏輯。 具體屬性有:Map shopCart 用于封裝購(gòu)物車中的全部商品每一項(xiàng)商品都以CartGoodsInf 對(duì)象的形式封裝于其中。 double allGoodsPrice 用于計(jì)算全部商品的總價(jià)。 業(yè)務(wù)邏輯的方法有: public void addGoods (String goodsId,String goodsName,double goodsPrice,int goodsAmount);用于添加商品。 public void deleteGoods(String goodsId);刪除商品。 public void changeAmount(String goodsId, int goodsAmount);改變商品數(shù)量。 public Map getShopCart();返回購(gòu)物車中的全部商品。 public double getAllGoodsPrice();返回購(gòu)物車中全部商品的總價(jià)。 public void clearShoppingCart();清空購(gòu)物車。 SERVLET:用于控制邏輯. AddGoodsServlet.java 添加商品。 ViewShoppingCartServlet.java 察看購(gòu)物車。 DeleteGoodsServlet.java 刪除商品。 ChangeAmountServlet.java 改變商品數(shù)量。 ClearShoppingCartServlet.java清空購(gòu)物車。 JSP:我們的JSP用于實(shí)現(xiàn)VIEW向用戶顯示相關(guān)信息,由于實(shí)現(xiàn)了MVC我們可以方便的改變界面,所以界面并非唯一的也并非我們的重點(diǎn)。 goodslist.jsp menageshopcart.jsp 2. 學(xué)習(xí)心得。 通過(guò)對(duì)這一個(gè)購(gòu)物車的實(shí)現(xiàn),我們得到了以下啟示: 整個(gè)購(gòu)物車的邏輯過(guò)程其實(shí)是圍繞ShoppingCart.java這個(gè)類的對(duì)象展開的,全部SERVLET實(shí)現(xiàn)的控制邏輯都是對(duì)ShoppingCart.java 定義的業(yè)務(wù)邏輯的方法的調(diào)用。在ShoppingCart.java 中對(duì)一項(xiàng)商品使用CartGoodsInf.java 類的實(shí)例對(duì)商品屬性進(jìn)行封裝,因此在一個(gè)ShoppingCart 實(shí)例中維護(hù)了多個(gè)CartGoodsInf 實(shí)例。 對(duì)于SERVLET將ShoppingCart.java 的相關(guān)業(yè)務(wù)邏輯的方法返回的數(shù)據(jù)設(shè)置為request 對(duì)象的屬性,用于JSP獲取及使用,或者是執(zhí)行完無(wú)返回值的方法后用RequestDispatcher requestDispatcher=request.getRequestDispatcher("/…….");requestDispatcher.forward(request,response);語(yǔ)句進(jìn)行轉(zhuǎn)發(fā)。 在實(shí)現(xiàn)VIEW的JSP中只是對(duì)SERVLET通過(guò)request 對(duì)象傳遞的屬性的提取及通過(guò)矢代子的讀取及顯示為網(wǎng)頁(yè)元素。并無(wú)相關(guān)業(yè)務(wù)控制邏輯。 我們認(rèn)識(shí)到在以后進(jìn)行MVC開發(fā)時(shí)應(yīng)投入一定精力分析相關(guān)項(xiàng)目的控制邏輯,業(yè)務(wù)邏輯以及與業(yè)務(wù)邏輯相關(guān)的模型的屬性(用于JAVABEAN中)。在模型相關(guān)的JAVABEAN中應(yīng)盡量發(fā)現(xiàn)業(yè)務(wù)邏輯中用于操作的對(duì)象應(yīng)具有的屬性。在業(yè)務(wù)邏輯中只用于封裝項(xiàng)目中對(duì)模型進(jìn)行操作的所有方法。至于要在何時(shí)使用這些方法及應(yīng)具有何種條件應(yīng)放在控制器中實(shí)現(xiàn)。 業(yè)務(wù)邏輯中并不指定如何使用這些方法,只用給出相關(guān)義務(wù)邏輯應(yīng)具有的方法。 總之,基本的原則是:JAVABEAN用于實(shí)現(xiàn)模型及業(yè)務(wù)邏輯,SERVLET用于實(shí)現(xiàn)控制邏輯(控制器),JSP實(shí)現(xiàn)試圖。 至于具體的過(guò)程要聯(lián)系具體項(xiàng)目才能說(shuō)得清楚。這里只是做一些文字上的說(shuō)明。 源碼下載地址: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
Powered by: BlogJava Copyright © freedoom