Pada artikel sebelumnya, model Mode1 digunakan untuk mewujudkan penelusuran produk. Berdasarkan artikel sebelumnya, artikel ini menggunakan arsitektur MVC untuk mewujudkan pembelian produk.
Hasil Menjalankan:
Dibandingkan dengan artikel sebelumnya, kami memiliki lebih banyak keranjang belanja. Karena ketika kami membeli barang, keranjang belanja membutuhkan atribut untuk barang dan kuantitas yang dibeli, kami menggunakan nilai kunci peta untuk menyimpan barang yang dibeli.
Tentu saja ada juga harga total. Metode keranjang belanja adalah menambahkan produk dan menghapus produk untuk menghitung harga total . Harga total harus dihitung ulang setiap kali produk ditambahkan dan dihapus. Koleksi produk keranjang belanja hanya dapat dipakai sekali ketika keranjang belanja diinisialisasi.
entitas paket; impor java.util.hashmap; CART Kelas Publik {// Koleksi Produk Keranjang Belanja Private HashMap <Item, Integer> Cart; // Jumlah Total Privat Total Total; cart umum () {cart = hashmap baru <item, integer> (); TotalPrices = 0,0; } hashmap publik <item, integer> getCart () {return cart; } public void setCart (hashMap <item, integer> cart) {this.cart = cart; } public double getTotalPrices () {return TotalPrices; } public void setTotalPrices (TotalPrices ganda) {this.totalPrices = TotalPrices; } // Tambahkan item ke dalam keranjang belanja public boolean addtocart (item item, jumlah int) {// Jika item saat ini telah ditambahkan hanya meningkatkan jumlah jika (cart.containskey (item)) {cart.put (item, cart.get (item)+counts); } else {cart.put (item, counts); } // Hitung ulang harga caltotalprice (item.getPrice ()*counts); Kembali Benar; } // Hapus item dari keranjang belanja Boolean publik RemoveFromCart (item item) {if (cart! = Null && cart.containskey (item)) {caltotalPrice (-item.getPrice ()*cart.get (item)); cart.remove (item); } return true; } // Hitung jumlah total caltotalPrice private void (harga ganda) {TotalPrices+= harga; }} Metode dogett cartservlet melakukan pemrosesan yang sesuai sesuai dengan aksinya
if (request.getParameter ("action")! = null) {action = request.getParameter ("action"); if ("add" .equals (action)) {// tambahkan produk if (addgoodstocart (request, response)) {request.getRequestDispatcher ("../ Success.jsp"). Forward (Request, Response); } else {request.getRequestDispatcher ("../ failure.jsp"). Forward (request, response); }} else if ("show" .equals (action)) {// show shople cart request.getRequestDispatcher ("../ cart.jsp"). Maju (permintaan, respons); } else if ("delete" .equals (action)) {// hapus item deletegoodfromcart (request, response); request.getRequestDispatcher ("../ cart.jsp"). Forward (Request, Response); }} Ketika kita mengklik antarmuka produk untuk meletakkan keranjang, jumlah produk saat ini ditransfer ke cartservlet kelas servlet dari keranjang. Itu mulai memproses item saat ini dan memasukkan item saat ini ke dalam kereta
Sebelum memasukkannya ke dalam keranjang belanja, pertama -tama tentukan apakah ini pertama kalinya membuat keranjang belanja (pasti hanya ada satu keranjang belanja, tetapi tidak banyak). Jika ini adalah pertama kalinya membuat keranjang belanja
Masukkan keranjang belanja saat ini ke dalam sesi, lalu hubungi metode getItembyId (ID) melalui objek ItemSdao untuk mendapatkan objek produk. Kemudian masukkan objek produk yang sesuai dan kuantitas produk ke dalam keranjang belanja
// tambahkan produk ke keranjang belanja private boolean addgoodstocart (permintaan httpservletrequest, respons httpservletResponse) {string id = request.getParameter ("id"); String counts = request.getParameter ("num"); Item item = dao.getitembyId (integer.parseint (id)); // Lihatlah apakah ini pertama kalinya membuat keranjang belanja jika (request.getSession (). GetAttribute ("cart") == null) {cart cart = cart baru (); request.getSession (). setAttribute ("cart", cart); request.getSession (). SetAttribute ("Dao", Dao); } Cart cart = (cart) request.getSession (). GetAttribute ("cart"); // Tambahkan item ke cart if (cart.addtocart (item, integer.parseint (counts))) {return true; } else {return false; }} Jika Anda mengklik Lihat CartcartServlet Redirect ke halaman CART
<%@ halaman bahasa = "java" import = "java.util.*" contentType = "text/html; charset = utf-8"%> <%@ page impor = "entity.cart"%> <%@ page impor = "entity.items"%> <%string path = request.getContextPath (); String basePath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerport ()+path+"/"; %> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en"> <html> <head> <base href = "<%= Basepath%>"> <title> carts.jsp 'conte = "no-conte </title> </title </title> <MetA http-equiv =" pRAGA = "no-conte =" no-conte = "no-conte =" no-conte = "no-conte =" no-conte = "no-contpa = http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "kedaluwarsa" konten = "0"> <meta http-equiv = "kata kunci" konten = "kata kunci1, kata kunci2, koki"> <meta http http-equiv = "koki" ini = "ini" type = "text/css" href = "styles.css"> -> <tautan type = "text/css" rel = "stylesheet" href = "css/style1.css"/> <bahasa skrip = "javascript"> fungsi delcfm () {if (! confoll ("confirm to delete?" }} </script> </head> <body> <h1> keranjang belanja saya </h1> <a href = "goods.jsp"> home </a> >> <a href = "goods.jsp"> Daftar produk </a> <hr> <v id = "belanja"> <bentuk aksi = "" metode = "" "<tHR> <hr> <v id =" Belanja "> <form aksi =" "" "" Harga </th> <th> Kuantitas Pembelian </th> <th> Action </th> </tr> <% // menilai pertama apakah ada objek keranjang belanja di sesi jika (request.getSession (). getAttribute ("cart")! = null) {%> <! Hashmap <item, integer> barang = cart.getcart (); Atur <Tertems> item = goods.keyset (); Iterator <Tertems> itu = items.iterator (); while (it.hasnext ()) {item i = it.next (); %> <tr name = "produk" id = "product_id_1"> <td> <img src = "gambar/<%= i.getPicture ()%>"/> <a href = ""> <%= i.getName ()%> </a> </td> <td> <%= i.getprice ()%> </a> </td> <td> <%= i.getprice ()%> </a> </td> <td> <%= i.getprice ()%> </a> </td "<td> <%= i.getprice ()%> </td" </td "<td" <%= i.getprice ()%> </a> </td "<td> <%= i.getprice ()%> </td" </td " <span> <%= i.getPrice ()*goods.get (i)%> </span> <input type = "hidden" value = ""/> </td> <td> <%= goods.get (i)%> </td> <td> <a href = "servlet/cartServlet? action = delete & id = <%= i.pet =". i..) (%href = "Servlet/cartServlet? OnClick = "delcfm ();"> delete </a> </td> </td> </tr> < %} %> <!-akhir loop-> </able> <div> <span id = "Total"> < %= cart.gettotalprices () %> ¥ </span> </div> </ %} <"Input =" div <"div <) <) ¥ ¥ </span> </div> </ %} <"} <" /> </div> </form> </div> </body> </html> Saat mengklik Hapus Produk Kelas CartServer Panggilan Metode untuk Menghapus Produk
// Hapus item dari keranjang belanja private boolean deletegoodfromcart (permintaan httpservletrequest, respons httpservletResponse) {// Dapatkan objek keranjang belanja dari cart cart cart = (cart) request.getSession (). Getattribute ("cart"); if (cart! = null) {int id = integer.parseint (request.getParameter ("id")); if (cart.removeFromCart (dao.getitembyid (id))) {return true; }} return false; }Kode logika terutama seperti di atas.
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.