Im vorherigen Artikel wurde das Modus1 -Modell verwendet, um das Produkt durch das Produkt zu realisieren. Basierend auf dem vorherigen Artikel verwendet dieser Artikel die MVC -Architektur, um den Produktkauf zu realisieren.
Auslaufergebnisse:
Im Vergleich zum vorherigen Artikel haben wir mehr Einkaufswagen. Da beim Kauf von Artikeln der Einkaufswagen Attribute für die gekauften Artikel und die Menge benötigt, verwenden wir den Kartenschlüsselwert, um die gekauften Artikel zu speichern.
Natürlich gibt es auch einen Gesamtpreis. Die Methode des Einkaufswagens besteht darin , Produkte hinzuzufügen und Produkte zu löschen, um den Gesamtpreis zu berechnen . Der Gesamtpreis sollte jedes Mal neu berechnet werden, wenn das Produkt hinzugefügt und gelöscht wird. Die Einkaufswagen -Produktsammlung kann nur einmal so sofort instanziiert werden, wenn der Einkaufswagen initialisiert wird.
Paketentität; import Java.util.hashMap; Public Class Cart {// Einkaufswagen -Produktsammlung Private Hashmap <Artikel, Integer> CART; // Gesamtbetrag private Doppelprotokolle; public cart () {cart = new HashMap <items, Integer> (); Totalprices = 0,0; } public hashmap <items, Integer> getCart () {return cart; } public void setCart (HashMap <items, Integer> cart) {this.cart = cart; } public double getTotalprices () {return Totalprecrices; } public void setotalprices (doppelte Gesamtprecrices) {this.totalprices = Totalprices; } // Gegenstände in den Einkaufswagen geben public boolean addtocart (Artikelartikel, int zählt) {// Wenn das aktuelle Element hinzugefügt wurde, erhöht nur die Menge, wenn (cart.containeskey (item)) {cart.put (item, cart.get (item)+zählt); } else {cart.put (item, zählt); } // Berechnen Sie den Preis caltotalprice (item.getPrice ()*zählt); zurückkehren; } // Gegenstände aus dem Einkaufswagen public boolean entfernenfromcart (items item) {if (cart! cart.remove (item); } Return true; } // Berechnen Sie den Gesamtbetrag privat void caltotalprice (Doppelpreis) {Totalprices+= Preis; }} Die DOGTT -Methode von CartServlet führt die entsprechende Verarbeitung gemäß der Aktion durch
if (request.getParameter ("action")! = null) {action = request.getParameter ("action"); if ("add" .equals (action)) {// Produkt hinzufügen if (addGoodStocart (Anfrage, Antwort)) {Request.GetRequestDispatcher ("../ Success.jsp"). Vorwärts (Anfrage, Antwort); } else {request.getRequestDispatcher ("../ filt.jsp"). Forward (Request, Antwort); }} else if ("show" .equals (action)) {// Einkaufsschläge cart request.getRequestDispatcher ("../ cart.jsp"). Forward (Request, Antwort); } else if ("delete" .equals (action)) {// Element löschen löschteGoodfromcart (Anfrage, Antwort); Request.GetRequestDispatcher ("../ cart.jsp"). Forward (Request, Antwort); }} Wenn wir auf die Produktschnittstelle klicken, um den Wagen zu setzen, wird die Anzahl des aktuellen Produkts in die Dienerklasse Cartservlet des Wagens übertragen. Es beginnt mit der Verarbeitung des aktuellen Elements und zu dem aktuellen Element in den Karren
Bevor Sie ihn in den Einkaufswagen stellen, stellen Sie zunächst fest, ob es das erste Mal ist, einen Einkaufswagen zu erstellen (es gibt definitiv nur einen Einkaufswagen, aber nicht mehrfache). Wenn es das erste Mal ist, einen Einkaufswagen zu erstellen
Setzen Sie den aktuellen Einkaufswagen in die Sitzung ein und rufen Sie dann die Methode GetItembyId (ID) über das ElementsDAO -Objekt an, um das Produktobjekt zu erhalten. Geben Sie dann das entsprechende Produktobjekt und die Produktmenge in den Einkaufswagen ein
// Produkte in den Einkaufswagen private boolean addGoodStocart (httpServletRequest -Anforderung, httpServletResponse -Antwort) {String -ID = Request.GetParameter ("ID") hinzufügen; String counts = request.getParameter ("num"); Items item = dao.getItembyId (Integer.ParseInt (id)); // Erkennen Sie, ob es das erste Mal ist, einen Warenkorb zu erstellen, wenn (request.getSession (). Getattribute ("cart") == null) {cart cart = new cart (); request.getSession (). setAttribute ("cart", cart); request.getSession (). setAttribute ("dao", dao); } Cart cart = (cart) request.getSession (). GetAtTribute ("cart"); // das Element dem Wagen hinzufügen, wenn (cart.addtocart (item, ganzEger.parseInt (zählt))) {return true; } else {return false; }} Wenn Sie klicken, klicken
<%@ page Language = "java" import = "java.util. String basepath = request.getScheme ()+": //"+request.getSerVername ()+":"+request.getServerport ()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'cart.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-äquiv = "cache-control" content = "no-cache"> <meta http-äquiv = "expires" content = "0"> <meta http-äquiv type = "text/css" href = "styles.css"> -> <link type = "text/css" rel = "styleSheet" href = "css/style1.css"/> <script Language = "JavaScript"> Funktion delcfm () {if ("bestätigen (" bestätigen, um zu detailliert? ") {fownent.ewent.event.event.event.event.event.event.event.event.event.event.event.vent.retRalues (" false ("false,")) {fownent.ewent.ewent.event.event.event.event.event.event.event. } } </script> </head> <body> <h1>My shopping cart</h1> <a href="goods.jsp">Home</a> >> <a href="goods.jsp">Product List</a> <hr> <div id="shopping"> <form action="" method=""> <table> <tr> <th>Product name</th> <th>Product unit price</th> <th>Product Preis </th> <Th> Kaufmenge </th> <th> Aktion </th> </tr> <% // Beurteilen Sie zuerst, ob in der Sitzung ein Einkaufswagen-Objekt vorhanden ist (Anfrage.GetSession (). GetatTribute ("cart")! HashMap <powers, Integer> goods = cart.getCart (); Set <items> items = Goods.keyset (); Iterator <Poinktion> it = items.iterator (); while (it.hasnext ()) {items i = it.next (); %> <tr name="products" id="product_id_1"> <td><img src="images/<%=i.getPicture()%>" /><a href=""><%=i.getName()%></a></td> <td><%=i.getPrice() %></td> <td id="price_id_1"> <span> <%= i.getPrice ()*goods.get (i)%> </span> <Eingabe type = "Hidden" value = ""/> </td> <td> <%= goods.get (i)%> </td> <td> <a href = "servlet/cartServlet? onclick="delcfm();">Delete</a> </td> </td> </tr> <% } %> <!--end of loop--> </table> <div><span id="total">Total: <%=cart.getTotalPrices() %>¥</span></div> <% } %> <div><input type="submit" value="" /></div> </form> </div> </body> </html> Wenn Sie auf das Löschen von Produkt Cartservlet -Klasse klicken, rufen Sie die Methode zum Löschen des Produkts auf
// Gegenstände aus dem Einkaufswagen private boolean deletegoodfromcart (httpServletRequest -Anforderung, httpServletResponse -Antwort) {// das Einkaufskartobjekt aus Sitzungsstart Cart Cart = (Cart) Request.GetSession (). GetatTribute ("Cart") erhalten; if (cart! if (cart.removefromcart (dao.getItembyId (id))) {return true; }} return false; }Der Logikcode ist hauptsächlich wie oben.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.