Эта статья разделяет конкретный код корзины для покупок Javaweb для вашей ссылки. Конкретный контент заключается в следующем
1. Структура каталогов проектов
2. исходный код
Пакет-DAO Layer: bookdao.java
пакет com.dao; import java.util.map; import com.db.db; import com.domain.book; public class bookdao {public map getall () {return db.getall (); } public book find (string id) {return (book) db.getall (). get (id); }}Пакет DB: DB.Java - смоделированная база данных
Пакет com.db; import java.util.linkedhashmap; import java.util.map; import com.domain.book; import com.sun.org.apache.bcel.internal.generic.new; // Представляет базу данных // представляет базу данных открытого класса db {private Static Map = new Linkhashmap;); static {map.put ("1", новая книга ("1", "Javaweb Development", "Lao Zhang", 38, "хорошая книга")); map.put ("2", "Новая книга (" 2 "," JDBC Development "," Lao Li ", 18," хорошая книга ")); map.put (" 3 ", новая книга (" 3 "," Development "Ajax", "Lao Tong", 328, "Хорошая книга"); Map.put ("4", новая книга (4 ", JBPM Development", "LAO", "48 BI", "48", "48", "48". Книга ")); map.put (" 5 ", новая книга (" 5 "," Развитие на стойки "," Лао Фанг ", 28," хорошая книга ")); map.put (" 6 ", новая книга (" 6 "," Spring Development "," Lao Fang ", 98," Хорошая книга ");} public Static getall () {return Map;Доменная пакет:
Book.java: класс сущности книги
пакет com.domain; // класс объектов книги «Книга публичного класса» {private String Id; Приватное название строки; частная строка автор; частная двойная цена; частная строка описание; public book () {super (); // TODO Auto Generated Constructor Stub} Public Book (String Id, String Name, Author, Double Price, String Description) {super (); this.id = id; this.name = name; this.author = автор; this.price = цена; this.description = описание; } public String getId () {return id; } public void setId (String id) {this.id = id; } public String getName () {return name; } public void setName (string name) {this.name = name; } public String getAuthor () {return Author; } public void setAuthor (строка автор) {this.Author = Author; } public Double GetPrice () {return Price; } public void setPrice (двойная цена) {this.price = цена; } public String getDescription () {return description; } public void setDescription (строка описание) {this.description = description; }}Cart.java: класс корзины по магазинам
пакет com.domain; import java.util.linkedhashmap; import java.util.map; // Chare Cart, представляющая пользователь // корзина для покупок, представляющая общедоступную корзину пользователя {Private Map <String, cartitem> map = new LinkedHashmap (); частная двойная цена; // Помните, сколько все предметы в корзине за покупки стоили public void add (book book) {// Посмотрите, есть ли какие -либо в корзине, и предмет покупок, соответствующий книге, которая будет добавлена Cartitem item = map.get (book.getid ()); if (item == null) {item = new cartitem (); item.setbook (книга); item.setquantity (1); map.put (book.getid (), item); } else {item.setquantity (item.getQuantity ()+1); }} public map <string, cartitem> getMap () {return Map; } public void setmap (map <string, cartitem> map) {this.map = map; } public Double GetPrice () {Double TotalPrice = 0; for (map.Entry <string, cartitem> intpirt: map.EntrySet ()) {cartitem item = intry.getValue (); TotalPrice += item.getPrice (); } this.price = totalprice; возвращаемая цена; } public void setPrice (двойная цена) {this.price = цена; }}Cartitem.java: предмет покупок
пакет com.domain; // используется для представления определенного продукта и количество раз, когда он появляется (предметы покупки) Общедоступный класс Cartitem {частная книга; Частное количество int количество; частная двойная цена; Общественная книга GetBook () {return Book; } public void setbook (книга книги) {this.book = book; } public int getQuantity () {return Количество; } public void setquantity (int Количество) {this.quantity = количество; this.price = this.book.getprice () * this.quantity; } public Double GetPrice () {return Price; } public void setPrice (двойная цена) {this.price = цена; }}Сервисный пакет: сервисный уровень
BusinessService.java:
пакет com.service; import java.util.map; import com.dao.bookdao; import com.domain.book; import com.domain.cart; import com.domain.cartitem; // бизнес -класс, предоставление всех услуг веб -слое единым образом общедоступным классом. public Map getallBook () {return dao.getall (); } public Bookbook (String Id) {return dao.find (id); } // Удалить товары для покупок в корзине для корзины public void deleteCartitem (String Id, Cart Cart) {cart.getMap (). Remove (id); } // Очистить корзину для покупок public void clearcart (cart cart) {cart.getMap (). Clear (); } // Изменение количества предметов покупки public void indomeemquantity (идентификатор строки, количество строки, корзина) {cartitem item = cart.getMap (). Get (id); item.setquantity (integer.parseint (количество)); }}Веб -слой:
Списокзалблет. Ява: Показать все книги
Пакет com.web.controller; импорт java.io.ioexception; import java.io.printwriter; импорт java.util.map; import javax.servlet.servletexception; импорт javax.servlet.http.httpservlet; import javax.servlet.httplet.httplecervelt; javax.servlet.http.HttpServletResponse;import com.service.BusinessService;//Get all books//Get all books public class ListBookServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { BusinessService service = new BusinessService (); Карта карта = service.getallbook (); request.setattribute ("map", map); request.getRequestDispatcher ("/web-inf/jsp/listbook.jsp"). } public void Dopost (httpservletRequest, httpservletresponse response) Throws ServletException, ioException {Doget (запрос, ответ); }}Buyservlet.java: обработка запросов на покупку
Пакет com.web.controller; импорт java.io.ioexception; import javax.servlet.servletexception; импорт javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; importmest.pormesmess wipport. com.domain.cart; import com.service.businessservice; // Полная покупка книги // Полная покупка книги общедоступное купиллет httpservlet {public void doget (httpservletrequest, httpservletrespons BusinessService Service = New BusinessService (); Book Book = service.findbook (id); // Получить пользовательский корзин для корзины для покупок = (cart) request.getSession (). Getattribute ("cart"); if (cart == null) {cart = new cart (); request.getSession (). setattribute ("cart", cart); } // Добавить книгу в корзину для покупок пользователя и завершить покупку cart.add (book); //response.sendredirect("/web-inf/jsp/listcart.jsp "); request.getRequestDispatcher ("/web-inf/jsp/listcart.jsp"). } public void Dopost (httpservletRequest, httpservletresponse response) Throws ServletException, ioException {Doget (запрос, ответ); }}DeleteItemServlet.java: удалить определенный продукт
пакет com.web.controller; импорт java.io.ioexception; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; importmest. com.service.businessservice; // Удалить указанный пункт покупки открытого класса deleteMervlet расширяет httpservlet {public void Doget (httpservletrequest, httpservlectresponse response) throws servletexception, ioException {String id = request.getParameter ("id"); Cart cart = (cart) request.getSession (). Getattribute ("cart"); BusinessService Service = New BusinessService (); service.deleteCartitem (id, cart); // Удалить успешно request.getRequestDispatcher ("/web-inf/jsp/listcart.jsp"). } public void Dopost (httpservletRequest, httpservletresponse response) Throws ServletException, ioException {Doget (запрос, ответ); }}Clearcartservlet.java: очистить корзину
пакет com.web.controller; import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; импорт javax.servlet.http.httpservlet; импорт javax.servlet.http.httpservequest; javax.servlet.http.HttpServletResponse;import com.domain.Cart;import com.service.BusinessService;//Clear the shopping cart public class ClearCartServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Cart cart = (Cart) request.getSession (). getattribute ("cart"); BusinessService Service = New BusinessService (); Service.clearcart (cart); request.getRequestDispatcher ("/web-inf/jsp/listcart.jsp"). } public void Dopost (httpservletRequest, httpservletresponse response) Throws ServletException, ioException {Doget (запрос, ответ); }}ChangequantityServlet.java: изменить количество указанных продуктов в корзине покупок
пакет com.web.controller; import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; импорт javax.servlet.http.httpservlet; импорт javax.servlet.http.httpservequest; javax.servlet.http.httpservletresponse; import com.domain.cart; import com.service.businessservice; // Модифицировать книгу в корзине покупок в указанное количество общедоступного класса. IoException {String id = request.getParameter ("id"); Строка количества = request.getParameter ("Количество"); Cart cart = (cart) request.getSession (). Getattribute ("cart"); BusinessService Service = New BusinessService (); Service.ChangeItemQuantity (ID, количество, корзина); request.getRequestDispatcher ("/web-inf/jsp/listcart.jsp"). } public void Dopost (httpservletRequest, httpservletresponse response) Throws ServletException, ioException {Doget (запрос, ответ); }}Страница JSP:
WebRoot/Web-Inf/JSP/ListBook.jsp: Показать список книг
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%> <! doctpe html public "// w3c // dtdml htm.01. Transitional // en "> <html> <Head> <title> страница списка книг </title> </head> <body style =" text-align: center "> <h1> Список книг </h1> <table> <ttr> <td> Название книги </td> <td> Автор </td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <td> <C: foreach var = "intry" items = "$ {map}"> <tr> <td> $ {entry.value.name} </td> <td> $ {entry.value.author} </td> <td> $ {inpit.value.price} </td> <td> $ {inpit.value.palue.price} </td> <td> $ <a href = "$ {pagecontext.request.contextPath}/servlet/buyservlet? id = $ {entry.value.id}" rel = "enferlow" target = "_ blank"> buy </a> </td> </tr> </c: for> </table> </body>WebRoot/Web-Inf/JSP/ListCart.jsp: Показать список корзины покупок
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%> <! doctpe html public "// w3c // dtdml htm.01. Transitional // en "> <html> <Head> <Title> List Car </title> <script type =" text/javascript "> функция deleteitem (id) {var b = window.confirm (« Вы подтверждаете удаление ?? "); if (b) {window.location.href = "$ {pagecontext.request.contextPath}/servlet/deleteItemservlet? id =" rel = "enfullow" +id; }} function clearCart () {var b = window.confirm ("Вы подтвердили очистку ??"); if (b) {window.location.href = "$ {pagecontext.request.contextpath}/servlet/clearcartservlet" rel = "external nofollow"; }} function changequantity (input, id, oldvalue) {var ucliity = input.value; // Получить изменение номера SDFSFS /* // Проверьте, является ли количество пользовательского ввода номером, если (isnan (количество)) {alert («Пожалуйста, введите номер !!»); input.value = OldValue; возвращаться; } */// Проверьте, является ли количество пользовательского ввода положительным целым числом if (количество <0 || Количество! input.value = OldValue; возвращаться; } var b = window.confirm («Вы подтверждаете, что количество книг модифицировано на:» + количество); if (b) {window.location.href = "$ {pagecontext.request.contextPath}/servlet/redingquantityservlet? id =" rel = "внешний nofollow" + id + "& uclity =" + ucliety; }} </script> </head> <body style = "text-align: center"> <h1> Список корзины для покупок </h1> <c: if test = "$ {empty (cart.map)}"> вы не купили какие-либо предметы! ! ! </c: if> <c: if test = "$ {! empty (cart.map)}"> <table> <tr> <td> <td> Название книги </td> <td> Автор </td> <td> Прайс </td> <td> Количество </td> <td> </td> <td> <td> <td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> </td> var = "intry" items = "$ {cart.map}"> <tr> <td> $ {entry.value.book.name} </td> <td> $ {inpit.value.book.author} </td> <td> $ {inpit.value.book.price} </td> <td> <tpint. value = "$ {entry.value.quantity}" onchange = "changequantity (this, $ {intry.key}, $ {entry.value.quantity})"> </td> <td> $ {entry.value.price} </td> <td> <a href = "javascript: void (0)" velollow "vellow" vellow ". nofollow "onclick =" deleteitem ($ {entry.key}) "> delete </a> <!-Удалите поведение гиперссылок по умолчанию-> </td> </tr> </c: foreach> <ttr> <td colspan =" 3 "> colspan = "1"> <a href = "javaScript: void (0)" rel = "внешний nofollow" rel = "внешний nofollow" onclick = "clearcart ()"> очистить корзину </a> </td> </tr> </table> </c: if> </body> </html> </tr> </table> </c: if> </body> </html>Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.