Artikel ini terus berbagi dengan Anda modul keranjang belanja di toko buku Javaweb untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Penyimpanan keranjang belanja
Simpan di Sesi Simpan di Cookie Simpan di Database
1. Buat kelas terkait
Struktur Keranjang Belanja:
Cartitem: Entri keranjang belanja, berisi buku dan kuantitas
Keranjang: Keranjang belanja, termasuk peta
/*** Kelas Keranjang Belanja*/Kelas Public CART {Private Map <String, CartItem> Map = new LinkedHashMap <String, CartItem> (); / *** Hitung total* @return*/ public double getTotal () {// total = jumlah subtotal dari semua entri BigDecimal Total = BigDecimal baru ("0"); untuk (cartitem cartitem: map.values ()) {BigDecimal subtotal = baru BigDecimal ("" + cartitem.getsubtotal ()); total = total.add (subtotal); } return total.doublevalue (); }/*** Tambahkan entri ke mobil* @param cartitem*/public void add (cartitem cartitem) {if (map.containskey (cartitem.getBook (). Getbid ())) {// menilai apakah entri ada di cartitem mobil asli) () (map. entry_cartitem.setCount (_cartitem.getCount () + cartitem.getCount ()); // Setel jumlah entri lama ke nomornya sendiri + jumlah entri baru peta.put (cartitem.getBook (). getbid (), _cartitem); } else {map.put (cartitem.getBook (). getBid (), cartitem); }} / *** Hapus semua entri* / public void clear () {map.clear (); } / *** Hapus entri yang ditentukan* @param BID* / public void delete (string BID) {MAP.Remove (BID); } / *** Dapatkan semua entri* @return* / koleksi publik <dartitem> getCartitems () {return map.values (); }} /*** Kelas Entri Keranjang Belanja**/Kelas Publik Cartitem {Buku Buku Privat; // Produk Private Int Count; // Kuantitas/*** Metode Subtotal* @Return* ditangani masalah kesalahan operasi biner*/Publik getsubtotal () {// Metode subtotal, tetapi tidak memiliki anggota yang sesuai! BigDecimal d1 = BigDecimal baru (book.getPrice () + ""); BigDecimal D2 = BigDecimal baru (Count + ""); return d1.multiply (d2) .doublevalue (); } buku publik getBook () {Buku kembali; } public void setbook (buku buku) {this.book = book; } public int getCount () {return count; } public void setCount (int count) {this.count = count; }}2. Tambahkan entri keranjang belanja
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix = "fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>Shopping cart list</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --><style type = "text/css"> * {font-size: 11pt; } div {margin: 20px; Border: Solid 2px Grey; Lebar: 150px; Tinggi: 150px; Teks-Align: tengah; } li {margin: 10px; } #buy {latar belakang: url (<c: url value = '/images/all.png'/>) no-repeat; Tampilan: blok inline; posisi latar belakang: 0 -902px; margin-kiri: 30px; Tinggi: 36px; Lebar: 146px; } #buy: hover {latar belakang: url (<c: url value = '/images/all.png'/>) no-repeat; Tampilan: blok inline; posisi latar belakang: 0 -938px; margin-kiri: 30px; Tinggi: 36px; Lebar: 146px; } </tyle> </head> <body> <h1> keranjang belanja </h1> <c: pilih> <%-jika tidak ada mobil, atau koleksi konten mobil adalah 0-length-%> <c: when test = "$ {Sesi kosong.cart atau fn: length (sesionscope.cart.cart.cartems) eq 0 value = '/Images/cart.png' //// "/> </c: who> <c: akning> <table cellpaCing =" 0 "latar belakang =" hitam "> <tr> <td colspan =" 7 "Align =" right "style =" font-size: 15pt; CART </a> </td> </tr> <tr> <Th> gambar </t> <t th> judul buku </t> <tr> penulis </t> <t th> Harga satuan </t> <tr> kuantitas </t> <teach items = "$ {THRE. <tr> <td> <div> <img src = "<c: url value = '/$ {cartitem.book.image}' //"/> </div> </td> <td> $ {cartitem.book.bname} </td> <td> $ {cartitem.book.aut.bname} </td> <td> $ {cartitem.book.author Yuan </td> <td> $ {cartitem.count} </td> <td> $ {cartitem.subtotal} yuan </td> <td> <a href = "<c: nilai url = '/cartservlet? Method = delete & bid = $ {cartitem.bid. </td> </td> </tr> </c: foreach> <ttr> <td colspan = "7" align = "kanan" style = "font-size: 15pt; font-weight: 900 "> Total: $ {sesionscope.cart.total} yuan </td> </tr> <tr> <td colspan =" 7 "align =" kanan "style =" font-size: 15pt; font-weight: 900 "> <a id =" buy "href =" <c: url value = '/orderServlet? Metode = add'/> "> </a> </td> </tr> </able> </c: sebaliknya> </c: pilih> </body> </html> CartSerVlet kelas publik memperluas BaseserVlet { /** * Tambahkan entri belanja * @param permintaan * @param response * @return * @throws servletException * @throws ioException * /string public add (httpservletrequest, httpservlexconse response) lempar servletexception {httpservlete. kuantitas)* 3. Tambahkan entri ke mobil*///** 1. Dapatkan mobil*/ cart cart = (cart) request.getSession (). getAttribute ("cart"); /** Formulir hanya melewati tawaran dan kuantitas* 2. Dapatkan entri*> Dapatkan buku dan kuantitas*> Pertama dapatkan tawaran buku, dan kemudian kita perlu menanyakan database melalui tawaran untuk mendapatkan buku*> Ada*/ string bid = request.getParameter ("tawaran"); Buku Buku = BookService baru (). Load (BID); int count = integer.parseint (request.getParameter ("count")); Cartitem cartitem = cartitem baru (); cartitem.setbook (buku); cartitem.setCount (Count); /** 3. Tambahkan entri ke mobil*/ cart.add (cartitem); return "f: /jsps/cart/list.jsp"; } / ** * Hapus entri belanja * @param Permintaan * @param Response * @return * @throws servletException * @throws IoException * / Public String Clear (httpservletRequest Request, httpservletResponse Response) Lempar carbleTException, ioException { / ** ** Get The carblexception * (Cart) request.getSession (). GetAttribute ("cart"); cart.clear (); return "f: /jsps/cart/list.jsp"; } / ** * Hapus entri belanja * @param Permintaan * @param Response * @return * @throws servletException * @throws ioException * / public string delete (httpservletRequest request, httpservletponse respons) (Cart) request.getSession (). GetAttribute ("cart"); String Bid = request.getParameter ("BID"); cart.delete (BID); return "f: /jsps/cart/list.jsp"; }}3. Bersihkan entri
4. Hapus entri keranjang belanja
5. Keranjang belanja saya
Ada tautan di top.jsp: keranjang belanja saya
Keranjang saya mengakses secara langsung /jsps/cart/list.jsp dan menampilkan semua entri keranjang dalam sesi.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.