No artigo anterior, o modelo Mode1 foi usado para realizar a navegação no produto. Com base no artigo anterior, este artigo usa a arquitetura MVC para realizar a compra do produto.
Resultados em execução:
Comparado com o artigo anterior, temos mais carrinhos de compras. Desde quando compramos itens, o carrinho de compras precisa de atributos para os itens e a quantidade adquiridos, usamos o valor da chave do mapa para salvar os itens adquiridos.
Claro que há também um preço total. O método de carrinho de compras é adicionar produtos e excluir produtos para calcular o preço total . O preço total deve ser recalculado sempre que o produto for adicionado e excluído. A coleção de produtos do carrinho de compras só pode ser instanciada uma vez quando o carrinho de compras for inicializado.
entidade do pacote; importar java.util.hashmap; Public Class Cart {// Coleção de produtos de carrinho de compras Hashmap privado <itens, número inteiro> carrinho; // Quantidade total dupla privada Totalpics Total; public Cart () {CART = new Hashmap <Itens, Integer> (); Totalprices = 0,0; } public hashmap <itens, número inteiro> getcart () {return carrit; } public void setCart (hashmap <itens, número inteiro> carrinho) {this.cart = carr; } public Double getTotalPresices () {return totalPrices; } public void SettAtalprices (duplo totalPresices) {this.totalprices = Totalprices; } // Adicione itens ao carrinho de compras public boolean addToCart (item de itens, int contam) {// se o item atual foi adicionado apenas aumenta a quantidade se (cart.containsKey (item)) {cart.put (item, cart.get (item)+contagens); } else {Cart.put (item, contagens); } // recalcula o preço caltotalprice (item.getprice ()*contagens); retornar true; } // Remova os itens do carrinho de compras public boolean removefromcart (itens item) {if (carr! Cart.Remove (item); } retornar true; } // Calcule o valor total do vazio privado CaltoTalPrice (preço duplo) {Totalprices+= Price; }} O método de Dogett de Servlet realiza processamento correspondente de acordo com a ação
if (request.getParameter ("ação")! = null) {action = request.getParameter ("ação"); if ("add" .equals (ação)) {// adicione produto if (addgoodstocart (request, resposta)) {request.getRequestDispatcher ("../ succcess.jsp"). forward (solicitação, resposta); } else {request.getRequestDispatcher ("../ falha.jsp"). Forward (solicitação, resposta); }} else if ("show" .equals (ação)) {// Mostrar solicitação de carrinho de compras.getRequestDispatcher ("../ cart.jsp"). Forward (solicitação, resposta); } else if ("delete" .equals (ação)) {// excluir item deletegoodfromcart (solicitação, resposta); request.getRequestDispatcher ("../ cart.jsp"). Forward (solicitação, resposta); }} Quando clicamos na interface do produto para colocar o carrinho, o número do produto atual é transferido para o serviço de carrinho da classe Servlet. Começa a processar o item atual e colocar o item atual no carrinho
Antes de colocá -lo no carrinho de compras, primeiro determine se é a primeira vez que criar um carrinho de compras (definitivamente existe apenas um carrinho de compras, mas não múltiplo). Se for a primeira vez para criar um carrinho de compras
Coloque o carrinho de compras atual em sessão e ligue para o método GetItembyId (ID) através do objeto ItensDAO para obter o objeto do produto. Em seguida, coloque o objeto de produto correspondente e a quantidade do produto no carrinho de compras
// Adicione produtos ao carrinho de compras Private Boolean AddGoodSToCart (solicitação httpServletRequest, httpServletResponse resposta) {string id = request.getParameter ("id"); String counts = request.getParameter ("num"); Itens item = dao.getItembyId (Integer.parseint (id)); // discernir se é a primeira vez para criar um carrinho de compras se (request.getSession (). GetAttribute ("carrinho") == null) {carrinho carrinho = novo carrinho (); request.getSession (). SetAttribute ("carrinho", carrinho); request.getSession (). SetAttribute ("Dao", dao); } Carrinho carrinho = (carrinho) request.getSession (). GetAttribute ("carrinho"); // Adicione o item ao carrinho if (cart.addtocart (item, inteiro.parseint (contagens))) {return true; } else {return false; }} Se você clicar
<%@ Page Language = "Java" import = "java.util. String basalepath = request.getScheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/"; %> <! Doctype html public "-// w3c // dtd html 4.01 transitório // pt"> <html> <head> <base href = "<%= basepath%>"> <title> meu jsp 'cart.jsp' página </title> <meta-http-mequiv "> http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "expire" content = "0"> <meta http-equiv = "palavras-chave" content = "keyword1, keyword2, palavra-chave"> <magle http-equiv = "descrição" "content1, keyword2, palavra-chave"> <magle http-ouquiv = "descrição" " type = "text/css" href = "styles.css"> -> <link type = "text/css" rel = "STILESHEET" href = "css/style1.css"/> <script idioma = "javascript"> function delcfm () {if (! }} </sCript> </head> <body> <h1> meu carrinho de compras </h1> <a href = "Goods.jsp"> home </a> >> <th> Preço do produto </m> <th> Quantidade de compra </th> <th> Ação </th> </tr> <% // primeiro julgue se existe um objeto de carrinho de compras na sessão se (request.getSession (). getAttribute ("carrinho (carrinho)! Hashmap <itens, número inteiro> bens = Cart.getCart (); SET <Itens> itens = Goods.KeySet (); Iterator <ments> it = items.iterator (); while (it.hasnext ()) {itens i = it.next (); %> <trame = "Produtos" id = "Product_id_1"> <td> <img src = "imagens/<%= i.getPicture ()%>"/> <a href = ""> <%= i.getName ()%> <pan> <%= i.getprice ()*goods.get (i)%> </span> <input type = "hidden" value = ""/> </td> <td> <%= goods.get (i)%> </td> <td> <a href = "servlet/carriptlet? Action = Delete & iD = <%= i.id = i.id = i.Id <a href =" servlet/carriptlet? OnClick = "delcfm ();"> excluir </a> </td> </td> </tr> < %} %> <!-Fim do loop-> </ tabela> <div> <span id = "total"> Total: < %= Cart.gettotalprices () %> ¥ </span> </div> /> </div> </morm> </div> </body> </html> Ao clicar em Excluir a classe de serviço de carrinho de produto, chama o método para excluir o produto
// Exclua itens do carrinho de compras Private Boolean DeleteGoodFromcart (solicitação httpServletRequest, httpServletResponse Response) {// Obtenha o objeto de carrinho de compras do carrinho de sessão carrinho = (carrinho) request.getSession (). GetAttribute ("carrinho"); if (carrinho! = null) {int id = integer.parseint (request.getParameter ("id")); if (Cart.RemoveFromcart (dao.getItembyId (id))) {return true; }} retornar false; }O código lógico é principalmente como acima.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.