Este artigo compartilha o código específico do caso de carrinho de compras Javaweb para sua referência. O conteúdo específico é o seguinte
1. Estrutura do diretório do projeto
2. Código -fonte
Pacote-dao camada: bookdao.java
pacote com.dao; importar java.util.map; importar com.db.db; importar com.domain.book; classe pública bookdao {public map getall () {return db.getall (); } public book find (string id) {return (book) db.getall (). get (id); }}Pacote de banco de dados: db.java - banco de dados simulado
pacote com.db; importar java.util.linkedhashmap; importar java.util.map; importar com.domain.book; importar com.sun.org.apache.bcel.internal.generic.new; // representa o mapa do banco de dados // representa a classe pública dBase DB; static {map.put ("1", novo livro ("1", "Development de Javaweb", "Lao Zhang", 38, "Um bom livro")); map.put ("2", "New Book (" 2 "," JDBC Development "," Lao Li ", 18," Um bom livro ")); map.put (" 3 ", novo livro (" 3 "," Ajax Development "," Lao Tong ", 328," A Good Book "); Livro ")); map.put (" 5 ", novo livro (" 5 "," desenvolve o desenvolvimento "," Lao Fang ", 28," um bom livro ")); map.put (" 6 ", novo livro (" 6 "," Desenvolvimento da primavera "," mapa de lao ", 98," um bom livro ");} mapa de estática pública" {mapa ", {mapa", 98, "um bom livro");}} mapa estático ", get) {mapa", {mapa de lao ", 98," um bom livro ");}}}" mapa de estática "{) {mapa", "Return;pacote de domínio:
Book.java: Classe de entidade de um livro
pacote com.Domain; // A classe de entidade do livro Public Class Book {Private String ID; nome de string privado; Autor de String Private; preço duplo privado; Descrição de String Private; public book () {super (); // TODO Construtor GOERATIDO AUTO GRAVO} Public Book (String ID, Nome da String, Autor da String, Preço Double, String Descrição) {Super (); this.id = id; this.name = nome; this.author = autor; this.price = preço; this.Description = Descrição; } public string getId () {return id; } public void setId (string id) {this.id = id; } public string getName () {return name; } public void setName (nome da string) {this.name = name; } public string getAuthor () {return autor; } public void setauthor (string autor) {this.author = autor; } public Double getPrice () {Return Price; } public void setPrice (preço duplo) {this.price = price; } public string getDescription () {return description; } public void SetDescription (String description) {this.Description = Descrição; }}Cart.java: aula de carrinho de compras
pacote com.Domain; importar java.util.linkedhashmap; importar java.util.map; // carrinho de compras representando o usuário // carrinho de compras representando o usuário da classe pública carrinho {private mapa <string, cartItem> map = new LinkedHashmap (); preço duplo privado; // Lembre -se de quanto todos os itens do carrinho de compras custam public void add (livro do livro) {// Veja se existe algum no carrinho de compras e o item de compras correspondente ao livro a ser adicionado CartIm Item = map.get (book.getId ()); if (item == null) {item = new CartItem (); item.setbook (livro); item.setQuantity (1); map.put (book.getId (), item); } else {item.setquantity (item.getQuantity ()+1); }} mapa público <string, cartiM> getMap () {return map; } public void setMap (map <string, cartItem> map) {this.map = map; } public duplo getPrice () {duplo totalprice = 0; para (map.entry <string, cartItem> entrada: map.entrySet ()) {cartItem item = entradas.getValue (); totalPrice += item.getPrice (); } this.price = totalprice; preço de retorno; } public void setPrice (preço duplo) {this.price = price; }}CartIm.java: item de compras
pacote com.Domain; // usado para representar um determinado produto e o número de vezes que ele aparece (itens de compras) Classe Public CartIm {Private Book; Quantidade privada int; preço duplo privado; public book getBook () {return book; } public void Setbook (livro de livros) {this.book = book; } public int getQuantity () {return Quantity; } public void setQuantity (int Quantity) {this.quantity = Quantity; this.price = this.book.getprice () * this.quantity; } public Double getPrice () {Return Price; } public void setPrice (preço duplo) {this.price = price; }}Pacote de serviço: camada de serviço
BusinessService.java:
pacote com.service; importar java.util.map; importar com.dao.bookdao; importação com.domain.book; importar com.domain.cart; importar com.domain.cartiTem; // classe executiva, fornecer todos os serviços à camada da web de uma classe unificada de maneira pública) public map getallbook () {return Dao.getall (); } public book findbook (string id) {return Dao.find (id); } // Excluir itens de compras no carrinho de compras public void DeLeTecartItem (ID da string, carrinho de carrinho) {Cart.getMap (). Remover (id); } // limpe o carrinho de compras public void clearcart (carrinho) {cart.getMap (). Clear (); } // Altere a quantidade de itens de compras public void ChangeItemquantity (ID da sequência, quantidade da string, carrinho de carrinho) {cartItem Item = Cart.getMap (). Get (id); item.setQuantity (Integer.parseint (quantidade)); }}Camada da web:
ListBookServlet.java: mostre todos os livros
package com.web.controller;import java.io.IOException;import java.io.PrintWriter;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.httpServletResponse; importar com.service.businessservice; // obtenha todos os livros // obtenha todos os livros public class ListbookServlet estende httpServLefseptle {public void Doget (httpServleTleTreTElTEst, httpServEptSonsonsept Responsept) SGERTETET (HttPServleTreTerequest, httpseption ósseo resposta) BusinessService (); Mapa mapa = service.getallbook (); request.setAttribute ("mapa", mapa); request.getRequestDispatcher ("/web-inf/jsp/listbook.jsp"). Forward (solicitação, resposta); } public void DoPost (solicitação httpServletRequest, httpServletResponse resposta) lança servletexception, ioexception {doget (solicitação, resposta); }}BuyServlet.java: Processando solicitações de compra
package com.web.controller;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.domain.Book;import com.domain.cart; importar com.service.businessservice; // compra completa de livros // compra completa de compras de compra pública compra de classe estende httpsevlet {public void Doget (httpServLeTrequest Solicy, httpSertLeePonse Response) Throws (ID); Serviço de serviço de negócios = new BusinessService (); Livro do livro = service.findbook (ID); // Obtenha o carrinho de compras do usuário = (carrinho) request.getSession (). GetAttribute ("carrinho"); if (carrinho == null) {carrinho = new carr (); request.getSession (). SetAttribute ("carrinho", carrinho); } // Adicione o livro ao carrinho de compras do usuário e conclua a compra de cart.add (livro); //Response.sendRedirect("/web-inf/jsp/listcart.jsp "); request.getRequestDispatcher ("/web-inf/jsp/listcart.jsp"). Forward (solicitação, resposta); } public void DoPost (solicitação httpServletRequest, httpServletResponse resposta) lança servletexception, ioexception {doget (solicitação, resposta); }}DeleteItemServlet.java: Exclua um determinado produto
package com.web.controller;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.domain.Cart;import com.service.businessService; // Excluir o item de compras especificado Public Class DeleteItemServlet estende httpServlet {public void Doget (httpServletReQuest Solicy, httpSertLeSponse Response) lança servlexception, ioexception {string id = solicit.getPearMeter ("idiota); Carrinho carrinho = (carrinho) request.getSession (). GetAttribute ("carrinho"); Serviço de serviço de negócios = new BusinessService (); Service.DeleletCartItem (ID, CART); // excluir com êxito request.getRequestDispatcher ("/web-inf/jsp/listcart.jsp"). Forward (solicitação, resposta); } public void DoPost (solicitação httpServletRequest, httpServletResponse resposta) lança servletexception, ioexception {doget (solicitação, resposta); }}ClearcartServlet.java: Limpe o carrinho
pacote com.web.controller; importar java.io.ioException; importar java.io.printwriter; importar javax.servlet.servletexception; importar javax.servlet.http.httpSertlet; import javax.servlet.http.httlestlestlest; 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 ("carrinho"); Serviço de serviço de negócios = new BusinessService (); Service.clearcart (carrinho); request.getRequestDispatcher ("/web-inf/jsp/listcart.jsp"). Forward (solicitação, resposta); } public void DoPost (solicitação httpServletRequest, httpServletResponse resposta) lança servletexception, ioexception {doget (solicitação, resposta); }}ChangeQuantityServlet.java: modifique a quantidade de produtos especificados no carrinho de compras
pacote com.web.controller; importar java.io.ioException; importar java.io.printwriter; importar javax.servlet.servletexception; importar javax.servlet.http.httpSertlet; import javax.servlet.http.httlestlestlest; javax.servlet.http.httpServletResponse; importar com.domain.cart; importar com.service.businessservice; // modifique o livro no carrinho de compras para uma quantidade especificada de resposta pública de mudança de letra de atendção de servEstlestrity, htttservlet {public void Doget (httSertlestlestlertlestlestlestlettlettlesttlet, httpsServlet {public void doget (httSertlestlestlertlestlestlestlettlet, httpsServlet {vazio público. Ioexception {string id = request.getParameter ("id"); Quantidade de string = request.getParameter ("Quantity"); Carrinho carrinho = (carrinho) request.getSession (). GetAttribute ("carrinho"); Serviço de serviço de negócios = new BusinessService (); Service.ChangeItemquantity (ID, quantidade, carrinho); request.getRequestDispatcher ("/web-inf/jsp/listcart.jsp"). Forward (solicitação, resposta); } public void DoPost (solicitação httpServletRequest, httpServletResponse resposta) lança servletexception, ioexception {doget (solicitação, resposta); }}Página JSP:
Webroot/web-inf/jsp/listbook.jsp: Mostrar lista de livros
<%@ página linguagem = "java" import = "java.util. Transição // pt "> <html> <head> <title> Lista de livros Página </ititle> </ad Head> <body style =" text-align: center "> <h1> Lista de livros </h1> <table> <tt> <td> título </td> <Td> Autor </td> <Td> PREÇO DE VENDO </TD </tr> <c: foreach var = "entradas" itens = "$ {map}"> <tr> <td> $ {entradas.value.name} </td> <td> $ {entry.value.author} </td> <td> $ {Entry.value.price} </td> <td> $ {Entry.value.used} </td> <td> $ { <a href = "$ {pageContext.request.ContextPath}/servlet/buyServlet? Id = $ {Entry.value.id}" rel = "Nofollow externo" Target = "_ Blank"> Comprar </a> </td> </tr> </c: forach> </tabela> </body>Webroot/web-inf/jsp/listcart.jsp: Mostrar lista de carrinho de compras
<%@ página linguagem = "java" import = "java.util. Transição // pt "> <html> <head> <title> Lista de carros </ititle> <script type =" text/javascript "> função deleteItem (id) {var b = window.confirm (" Você confirma o delete ?? "); if (b) {window.location.href = "$ {PageContext.request.ContextPath}/servlet/deleteItemServlet? id =" rel = "Nofollow externo" +id; }} função clearcart () {var b = window.confirm ("Você confirmou a limpeza ??"); if (b) {window.Location.href = "$ {PageContext.request.ContextPath}/servlet/clearcartServlet" rel = "Nofollow externo"; }} função alteração de alteração (entrada, id, antiga) {var quantity = input.value; // Obtenha o número a ser modificado sdfsfs /* // verifique se o número de entrada do usuário é um número se (isnan (quantidade)) {alert ("digite o número !!"); input.Value = OldValue; retornar; } */// Verifique se o número de entrada do usuário é um número inteiro positivo se (quantidade <0 || quantidade! = Parseint (quantidade)) {alert ("Por favor, digite o número inteiro positivo !!"); input.Value = OldValue; retornar; } var b = window.confirm ("Você confirma que o número de livros é modificado para:" + quantidade); if (b) {window.location.href = "$ {PagEContext.Request.ContextPath}/servlet/changequantityServlet? id =" rel = "Nofollow externo" + id + "e quantidade =" + quantidade; }} </script> </ad Head> <body style = "text-align: Center"> <h1> Lista de carrinhos de compras </h1> <c: if test = "$ {empty (cart.map)}"> Você não comprou itens! ! ! </c: if> <c: if test = "$ {! Empty (Cart.map)}"> <table> <tr> <td> <td> título do livro </td> <td> autor </td> <td> Preço unitário </td> <tm> Quantity </td> <td> subtotal </td> var = "Entry" itens = "$ {Cart.map}"> <tr> <td> $ {Entry.value.book.name} </td> <td> $ {Entry.value.book.author} </td> <td> $ {Entry.value.book.price value = "$ {Entry.Value.quantity}" onchange = "ChangeQuantity (this, $ {Entry.key}, $ {Entry.value.quantity})"> </td> <td> $ {Entry.value.price} </td> <Td> <a href = " OnClick = "DeleteItem ($ {Entry.key})"> excluir </a> <!-Remova o comportamento padrão dos hiperlinks-> </td> </tr> </c: foreach> <ttr> <td colspan = "3"> Preço total </td> <td colspan = "2"> colspan = "1"> <a href = "javascript: void (0)" rel = "nofollow externo" rel = "nofollow externo" onclick = "clearcart ()"> limpe o carrinho </a> </td> </tr> </ table> </c: seO 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.