บทความนี้ยังคงแบ่งปันโมดูลตะกร้าสินค้าในร้านหนังสือ Javaweb สำหรับการอ้างอิงกับคุณ เนื้อหาเฉพาะมีดังนี้
ที่เก็บตะกร้าสินค้า
บันทึกในเซสชันบันทึกในคุกกี้บันทึกในฐานข้อมูล
1. สร้างคลาสที่เกี่ยวข้อง
โครงสร้างตะกร้าสินค้า:
CartItem: รายการตะกร้าสินค้าที่มีหนังสือและปริมาณ
รถเข็น: ตะกร้าสินค้ารวมถึงแผนที่
/*** คลาสตะกร้าสินค้า*/รถเข็นระดับสาธารณะ {แผนที่ส่วนตัว <String, CartItem> MAP = ใหม่ LinkedHashMap <String, CartItem> (); / *** คำนวณยอดรวม* @return*/ public double gettotal () {// total = ผลรวมของผลรวมของรายการทั้งหมด bigdecimal total = new BigDecimal ("0"); สำหรับ (cartItem cartItem: map.values ()) {BigDecimal subtotal = ใหม่ bigDecimal ("" + cartItem.getSubtotal ()); total = total.add (ผลรวมย่อย); } return total.doublevalue (); }/*** เพิ่มรายการไปยังรถ* @param cartItem*/โมฆะสาธารณะเพิ่ม (cartItem cartItem) {ถ้า (map.containsKey (cartItem.getBook (). getBid ()) {// ตัดสินว่ารายการนั้นมีอยู่ entry_cartitem.setCount (_cartitem.getCount () + cartItem.getCount ()); // ตั้งจำนวนรายการเก่าเป็นหมายเลขของตัวเอง + จำนวนรายการใหม่ map.put (cartItem.getBook (). getBid (), _CartItem); } else {map.put (cartItem.getBook (). getBid (), cartItem); }} / *** ล้างรายการทั้งหมด* / โมฆะสาธารณะล้าง () {map.clear (); } / *** ลบรายการที่ระบุ* @param BID* / โมฆะสาธารณะลบ (การเสนอราคาสตริง) {map.remove (เสนอราคา); } / *** รับรายการทั้งหมด* @return* / คอลเลกชันสาธารณะ <CartItem> getCartItems () {return map.values (); - /*** คลาสรายการตะกร้าสินค้า**/คลาสสาธารณะ cartItem {หนังสือส่วนตัวหนังสือ; // ผลิตภัณฑ์ INT จำนวน int จำนวน; // ปริมาณ/*** วิธีการรวมย่อย* @return* จัดการข้อผิดพลาดการดำเนินการไบนารีการดำเนินการ*/public double getSubtotal () {// วิธีการรวมย่อย แต่ไม่มีสมาชิกที่สอดคล้องกัน! bigdecimal d1 = ใหม่ bigdecimal (book.getPrice () + ""); bigdecimal d2 = ใหม่ bigdecimal (count + ""); ส่งคืน d1.multiply (d2) .doublevalue (); } หนังสือสาธารณะ getBook () {หนังสือคืน; } โมฆะสาธารณะ setbook (หนังสือหนังสือ) {this.book = book; } public int getCount () {นับคืน; } โมฆะสาธารณะ setCount (จำนวน int) {this.count = count; -2. เพิ่มรายการตะกร้าสินค้า
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> uri = "http://java.sun.com/jsp/jstl/fmt" %> < %@ taglib คำนำหน้า = "fn" uri = "http://java.sun.com/jsp/jstl/functions" %> <! transitional // en "> <html> <head> <title> รายการตะกร้าสินค้า </title> <meta http-equiv =" pragma "content =" no-cache "> <meta http-equiv =" cache-control "content =" no-cache "> content = "keyword1, keyword2, keyword3"> <meta http-equiv = "คำอธิบาย" content = "นี่คือหน้าของฉัน"> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <! type = "text/css"> * {font-size: 11pt; } div {margin: 20px; เส้นขอบ: สีเทา 2px ของแข็ง; ความกว้าง: 150px; ความสูง: 150px; TEXT-ALIGN: CENTER; } li {margin: 10px; } #buy {พื้นหลัง: url (<c: url value = '/images/all.png'/>) ไม่ซ้ำ; แสดง: Inline-Block; ตำแหน่งพื้นหลัง: 0 -902px; ขอบซ้าย: 30px; ความสูง: 36px; ความกว้าง: 146px; } #buy: hover {พื้นหลัง: url (<c: url value = '/images/all.png'/>) ไม่ซ้ำ; แสดง: Inline-Block; ตำแหน่งพื้นหลัง: 0 -938px; ขอบซ้าย: 30px; ความสูง: 36px; ความกว้าง: 146px; } </style> </head> <body> <h1> ตะกร้าสินค้า </h1> <c: เลือก> <%-ถ้าไม่มีรถยนต์หรือคอลเลกชันเนื้อหาของรถมีความยาว 0-%> <c: เมื่อทดสอบ = "$ {เซสชันว่างเปล่า value = '/images/cart.png' /////// "/> </c: เมื่อ> <c: มิฉะนั้น> <ตารางการจับเวลา =" 0 "พื้นหลัง =" ดำ "> <tr> <td colspan =" 7 "allign =" ขวา "style =" font-size: 15pt; รถเข็น </a> </td> </tr> <tr> <th> รูปภาพ </th> <th> ชื่อหนังสือ </th> <th> ผู้แต่ง </th> <th> ราคาหน่วย </th> <th> ปริมาณ </th> <th> subtotal </th> <th> var = "cartItem"> <tr> <td> <div> <img src = "<c: url value = '/$ {cartItem.Book.Image}' //"/> </div> </td> <td> $ {cartItem.book.bname <td> $ {cartitem.book.price} yuan </td> <td> $ {cartitem.count} </td> <td> $ {cartitem.subtotal} yuan </td> <td> } '/> "> ลบ </a> </td> </td> </td> </tr> </c: foreach> <tr> <td colspan =" 7 "allign =" ขวา "สไตล์ =" ตัวอักษรขนาด: 15pt; font-weight: 900 "> ทั้งหมด: $ {sessionscope.cart.total} yuan </td> </tr> <tr> <td colspan =" 7 "allign =" ขวา "สไตล์ =" ตัวอักษรขนาด: 15pt; Font-Weight: 900 "> <a id =" ซื้อ "href =" <c: url value = '/orderservlet? method = เพิ่ม'/> "> </a> </td> </tr> </table> </c: มิฉะนั้น> </c: เลือก> </body> Cartservlet ระดับสาธารณะขยาย Baseservlet { /** * เพิ่มรายการช้อปปิ้ง * @param Request * @param Response * @return * @throws ServleTexception * @throws ioexception * /สตริงสาธารณะเพิ่ม (httpservletrequest คำขอ httpsertResponse) 3. เพิ่มรายการไปยังรถ*//** 1 รับรถ*/ รถเข็น = (รถเข็น) คำขอ. getSession (). getAttribute ("รถเข็น"); /** ฟอร์มผ่านการเสนอราคาและปริมาณ* 2 รับรายการ*> รับหนังสือและปริมาณ*> ก่อนอื่นรับการเสนอราคาของหนังสือจากนั้นเราจำเป็นต้องสอบถามฐานข้อมูลผ่านการเสนอราคาเพื่อรับหนังสือ*> มี*/ string bid = request.getParameter ("เสนอราคา"); หนังสือหนังสือ = ใหม่ Bookservice () โหลด (เสนอราคา); int count = integer.parseInt (request.getParameter ("count")); cartItem cartItem = new cartItem (); cartitem.setbook (หนังสือ); cartItem.SetCount (นับ); /** 3. เพิ่มรายการไปยังรถ*/ cart.add (cartItem); return "f: /jsps/cart/list.jsp"; } / ** * ล้างรายการช้อปปิ้ง * @param Request * @param Response * @return * @throws servletexception * @throws ioexception * / สตริงสาธารณะที่ชัดเจน (httpservletrequest คำขอ httpservletResponse (รถเข็น) request.getSession (). getAttribute ("cart"); Cart.Clear (); return "f: /jsps/cart/list.jsp"; } / ** * ลบรายการช้อปปิ้ง * @param Request * @param Response * @return * @throws servletexception * @throws ioexception * / สตริงสาธารณะลบ (httpservletrequest Request, httpservletResponse) โยน servletexception, ioexception { / * 1 (รถเข็น) request.getSession (). getAttribute ("cart"); String BID = request.getParameter ("BID"); Cart.Delete (เสนอราคา); return "f: /jsps/cart/list.jsp"; -3. ล้างรายการ
4. ลบรายการตะกร้าสินค้า
5. ตะกร้าสินค้าของฉัน
มีลิงค์อยู่ใน top.jsp: ตะกร้าสินค้าของฉัน
รถเข็นของฉันเข้าถึงโดยตรง /jsps/cart/list.jsp และแสดงรายการทั้งหมดของรถเข็นในเซสชัน
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น