В предыдущей статье модель Mode1 использовалась для реализации просмотра продуктов. Основываясь на предыдущей статье, в этой статье используется архитектура MVC для реализации покупки продукта.
Результаты работы:
По сравнению с предыдущей статьей, у нас есть больше корзин для покупок. С тех пор, как мы покупаем товары, корзина для покупок нуждается в атрибутах для приобретенных товаров и количества, мы используем значение ключа карты для сохранения приобретенных товаров.
Конечно, есть также общая цена. Метод корзины для покупок - добавление продуктов и удаление продуктов для расчета общей цены . Общая цена должна быть пересчитана каждый раз, когда продукт добавляется и удаляется. Коллекция продуктов корзины для покупок может быть создана только один раз при инициативе корзины.
Пакет сущность; импортировать java.util.hashmap; Общедоступный класс CART {// Коллекция продукта корзины для покупок частная HashMap <предметы, целое число> cart; // общая сумма частных двойных общих процессов; public cart () {cart = new Hashmap <элементы, целое число> (); общий PPRICE = 0,0; } public hashmap <eptions, integer> getCart () {return cart; } public void setCart (hashmap <eptions, integer> cart) {this.cart = cart; } public Double GetTotalPrices () {return TotalPrices; } public void cetTotalPrices (Double TotalPrices) {this.TotalPrices = totalPrices; } // Добавить элементы в корзину для корзины public boolean addtocart (элемент элемент, int counts) {// Если текущий элемент был добавлен только увеличивает количество if (cart.containskey (item)) {cart.put (item, cart.get (item)+counts); } else {cart.put (item, counts); } // пересчитывать цену caltotalprice (item.getprice ()*counts); вернуть истину; } // Удалить предметы из корзины для корзины public boolean removefromcart (элемент) {if (cart! = Null && cart.containskey (item)) {caltotalprice (-item.getprice ()*cart.get (item)); cart.remove (item); } вернуть true; } // Рассчитайте общую сумму private void caltotalprice (двойная цена) {totalprices+= цена; }} Метод Cartett Cartservlet выполняет соответствующую обработку в соответствии с действием
if (request.getParameter ("action")! = null) {action = request.getParameter ("action"); if ("add" .equals (action)) {// Добавить продукт if (addgoststocart (request, response)) {request.getRequestDispatcher ("../ success.jsp"). forward (request, response); } else {request.getRequestDispatcher ("../ affl.jsp"). }} else if ("show" .equals (action)) {// show cart chard Quard.getRequestDispatcher ("../ cart.jsp"). Forward (запрос, ответ); } else if ("delete" .equals (action)) {// delete item deletegoodfromcart (request, response); request.getRequestDispatcher ("../ cart.jsp"). }} Когда мы нажимаем на интерфейс продукта, чтобы поместить корзину, количество текущего продукта переносится в корзину класса сервиса корзины. Он начинает обрабатывать текущий элемент и помещать текущий элемент в корзину
Прежде чем поместить его в корзину, сначала определите, является ли это первый раз, когда создать корзину для покупок (определенно есть только одна корзина для покупок, но не несколько). Если это первый раз, чтобы создать корзину для покупок
Поместите текущую корзину для покупок в сеанс, а затем вызовите метод GetIteMbyID (ID) через объект itemsDao, чтобы получить объект продукта. Затем поместите соответствующий объект продукта и количество продукта в корзину
// Добавить продукты в корзину для корзины Private Boolean AddGOSTOCART (httpservlectrequest, httpservletresponse response) {string id = request.getParameter ("id"); String counts = request.getParameter ("num"); Элемент элемент = dao.getIteMbyId (integer.parseint (id)); // Разометьте ли это первый раз, когда создать корзину для покупок if (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"); // Добавить элемент в корзину if (cart.addtocart (item, integer.parseint (counts))) {return true; } else {return false; }} Если вы нажмите «Просмотреть CartCartServlet Redirect» на страницу корзины
<%@ page language = "java" import = "java.util.*" contentType = "text/html; charset = utf-8"%> <%@ page import = "entity.cart"%> <%@ page import = "entity.items"%> <%string path = request.getContextPath ();); 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' начальная страница </title> <Meta http-equive = "pragma" noble = "no content =" no-content = "no-content =" no-content = "no-content =" no-content = "no-content =" meta-equache = " http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "expires" content = "0"> <meta http-equiv = "Content" Content = ", ключевое слово1, ключевое слово3"> <meta http-equiv = "description". type = "text/css" href = "styles.css"> -> <link type = "text/css" rel = "stylessheep" href = "css/style1.css"/> <script language = "javascript"> function delcfm () {if? }} </script> </head> <body> <h1> моя корзина для покупок </h1> <a href = "goods.jsp"> home </a> >> <a href = "goods.jsp"> Список продуктов </a> <hr> <div Id = "Покупки"> <Form Action = "" Method = "> <tal> <tr> <tr> <tre> <tric> <try> <try> <try> <try> <tre> <tre> <tre>. <Th> Цена продукта </th> <Th> Количество покупки </th> <Th> Action </th> </tr> <% // Сначала судите, есть ли объект корзины для покупок в сессии if (request.getSession (). getattribute ("cart")! = null) {%> <!-начало петли-> <% cart cart = (cart) Quardsessessessessession () getTtribt () gateTtribt (). HashMap <пункты, целое число> товары = cart.getCart (); Установить <пункты> items = goods.keyset (); Итератор <элементы> it = item.iterator (); while (it.hasnext ()) {элементы 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_11 <pran> <%= i.getPrice ()*Goods.get (i)%> </span> <input type = "hidden" value = ""/> </td> <td> <%= Goods.get (i)%> </td> <td> <a href = "Сервлет/Cartservlet? action = delete & id = <%= i.igetId ()%>%>%>% 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> При нажатии на удаление продукта Cartservlet Class вызывает метод удаления продукта
// Удалить предметы из корзины для корзины Private Boolean DeleteGoodfromCart (httpservletrequest, httpservletresponse response) {// Получить объект корзины для покупок из корзины сеанса Cart = (cart) request.getSession (). Getattribute ("cart"); if (cart! = null) {int id = integer.parseint (request.getParameter ("id")); if (cart.removefromcart (dao.getitembyid (id))) {return true; }} вернуть false; }Логический код в основном, как указано выше.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.