Este artículo comparte el código específico del caso de carrito de compras Javaweb para su referencia. El contenido específico es el siguiente
1. Estructura del directorio de proyectos
2. Código fuente
Paquete-Dao Capa: Bookdao.java
paquete 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); }}Paquete DB: DB.Java - Base de datos simulada
paquete com.db; import java.util.linkedhashmap; import java.util.map; import com.domain.book; import com.sun.org.apache.bcel.internal.generic.new; // representa la base de datos // representa la clase pública dataBase db {mapa estatico privado = mapa de mapa = nuevo vinculado (new Linkedhashmap ();); static {map.put ("1", nuevo libro ("1", "Desarrollo de Javaweb", "Lao Zhang", 38, "Un buen libro")); map.put("2","new Book("2","jdbc development","Lao Li",18,"a good book")); map.put("3", new Book("3","ajax development","Lao Tong",328,"a good book")); map.put("4", new Book("4","jbpm development","Lao Bi",58,"a good Libro ")); map.put (" 5 ", nuevo libro (" 5 "," Desarrollo de Struts "," Lao Fang ", 28," Un buen libro ")); map.put (" 6 ", nuevo libro (" 6 "," Desarrollo de primavera "," Lao Fang ", 98," Un buen libro "));} Mapa estático público getall () {return Map;}}}}}}}}}}}}}}Paquete de dominio:
Book.java: clase de entidad de un libro
paquete com.domain; // La clase de entidad del libro Public Class Book {private String ID; nombre de cadena privada; autor de cadena privada; precio doble privado; Descripción de la cadena privada; libro público () {super (); // TODO STUB AUTO GENERADO} Public Book (ID de cadena, nombre de cadena, autor de cadena, precio doble, descripción de cadena) {super (); this.id = id; this.name = name; this.author = autor; this.price = precio; this.description = Descripción; } public String getId () {return id; } public void setid (ID de cadena) {this.id = id; } public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public String getAuthor () {return autor; } public void setAuthor (autor de cadena) {this.author = autor; } public Double GetPrice () {Return Price; } public void setPrice (doble precio) {this.price = precio; } public String getDescription () {return Descripción; } public void setDescription (String Descripción) {this.description = Descripción; }}Cart.Java: clase de carrito de compras
paquete com.domain; import java.util.linkedhashmap; import java.util.map; // carro de compras que representa el usuario // carro de compras que representa el carrito de clase pública del usuario {Map privado <string, cartitem> map = new LinkedHashMap (); precio doble privado; // Recuerde cuánto los artículos en el carrito de compras cuestan public Void add (libro de libros) {// Vea si hay alguno en el carrito de compras y el artículo de compra correspondiente al libro que se agregará cartitem item = map.get (book.getID ()); if (item == null) {item = new Cartitem (); item.setbook (libro); item.setQuantity (1); map.put (book.getID (), elemento); } else {item.setQuantity (item.getQuantity ()+1); }} mapa público <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> Entrada: MAP.EntrySet ()) {Cartitem item = Entry.getValue (); TotalPrice += item.getPrice (); } this.price = TotalPrice; precio de devolución; } public void setPrice (doble precio) {this.price = precio; }}Cartitem.java: artículo de compra
paquete com.domain; // utilizado para representar un determinado producto y la cantidad de veces que aparece (artículos de compra) Cartitem de clase pública {Libro privado de libros; Cantidad privada int; precio doble privado; Libro público getBook () {Book de retorno; } public void setbook (libro de libro) {this.book = book; } public int getQuantity () {cantidad de retorno; } public void setQuantity (int this.price = this.book.getPrice () * this.quantity; } public Double GetPrice () {Return Price; } public void setPrice (doble precio) {this.price = precio; }}Paquete de servicio: capa de servicio
BusinessService.java:
paquete com.service; import java.util.map; import com.dao.bookdao; import com.domain.book; import com.domain.cart; import com.domain.cartitem; // clase ejecutiva, proporcione todos los servicios a la capa web de manera unificada de clase pública de clase pública {private bookdao dao = new bookdao ();); mapa público getAllbook () {return dao.getall (); } Libro público Findbook (ID de cadena) {return dao.find (id); } // Eliminar artículos de compras en el carrito de compras public void deletecartitem (ID de cadena, carrito de carrito) {CART.GetMap (). Remo (id); } // Borrar el carrito de compras public void ClearCart (Cart Cart) {Cart.getMap (). Clear (); } // Cambiar la cantidad de artículos de compras public void ChangeItemQuantity (ID de cadena, cantidad de cadena, carrito CART) {Cartitem item = Cart.getMap (). Get (id); item.setQuantity (Integer.ParseInt (cantidad)); }}Capa web:
ListBookServlet.java: Mostrar todos los libros
paquete 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; import com.service.businessService; // Obtenga todos los libros // Obtenga todos los libros Public Class ListbookServlet extiende httpservlet {public void doget (httpservletRequest Solicitud, httpServletResponse Respuesta) lanza servicio de servicio, iOException {nightservice Solicitud = Solicitud de nuevo. BusinessService (); Mapa map = servicio.getAllbook (); request.setAttribute ("map", map); request.getRequestDIsPatcher ("/web-inf/jsp/listbook.jsp"). Foring (solicitud, respuesta); } public void dopost (httpservletRequest solicitud, respuesta httpservletreSponse) lanza ServletException, ioexception {doget (solicitud, respuesta); }}Buyservlet.java: procesamiento de solicitudes de compra
paquete 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.httpservletRespesse; com.domain.cart; import com.service.businessService; // Compra de libro completa // Compra de libro completa de la clase pública Buyservlet extiende httpservlet {public void doget (httpservletRequest solicitud, httpServletReSponse respuesta) arroja ServletException, ioexception {String id = request.getParameter ("id"); BusinessService Service = New BusinessService (); Libro book = servicio.findbook (id); // Obtener el carrito de compras del usuario = (CART) request.getSession (). GetAttribute ("carro"); if (CART == NULL) {CART = NEW CART (); request.getSession (). SetAttribute ("CART", CART); } // Agregue el libro al carrito de compras del usuario y complete la compra de CART.Add (libro); //Response.sendredirect("/webinf/jsp/listcart.jsp "); request.getRequestDIsPatcher ("/web-inf/jsp/listcart.jsp"). ADELAR (solicitud, respuesta); } public void dopost (httpservletRequest solicitud, respuesta httpservletreSponse) lanza ServletException, ioexception {doget (solicitud, respuesta); }}Deleteitemservlet.java: eliminar un determinado producto
paquete 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.htpservletRespesse; com.service.businessService; // Eliminar el elemento de compra especificado de la clase pública DeleteItemServlet extiende httpservlet {public void Doget (httpservletRequest solicitud, httpServletResponse respuesta) lanza ServletException, ioexception {String id = request.getParameter ("id"); Cart Cart = (CART) request.getSession (). GetAttribute ("carro"); BusinessService Service = New BusinessService (); Service.DeletECartitem (id, carrito); // Eliminar correctamente request.getRequestDispatcher ("/web-inf/jsp/listcart.jsp"). Award (solicitud, respuesta); } public void dopost (httpservletRequest solicitud, respuesta httpservletreSponse) lanza ServletException, ioexception {doget (solicitud, respuesta); }}ClearCartservlet.java: Borre el carrito
paquete com.web.controller; import java.io.ioException; import java.io.printwriter; import javax.servlet.servletException; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRequest; importación; 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 ("carro"); BusinessService Service = New BusinessService (); Service.CLearCart (CART); request.getRequestDIsPatcher ("/web-inf/jsp/listcart.jsp"). ADELAR (solicitud, respuesta); } public void dopost (httpservletRequest solicitud, respuesta httpservletreSponse) lanza ServletException, ioexception {doget (solicitud, respuesta); }}ChangequantityServlet.java: modifique la cantidad de productos especificados en el carrito de compras
paquete com.web.controller; import java.io.ioException; import java.io.printwriter; import javax.servlet.servletException; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRequest; importación; javax.servlet.http.httpServletResponse; import com.domain.cart; import com.service.businessService; // Modifique el libro en el carrito de compras a una cantidad de cantidad pública especificada ChangeQuantityServlet extiende httpServlet {public void doget (httpservletRequest, httpServletRetlet extiend IoException {String id = request.getParameter ("id"); Cantidad de cadena = request.getParameter ("cantidad"); Cart Cart = (CART) request.getSession (). GetAttribute ("carro"); BusinessService Service = New BusinessService (); Service.ChangeItemquantity (id, cantidad, carro); request.getRequestDIsPatcher ("/web-inf/jsp/listcart.jsp"). ADELAR (solicitud, respuesta); } public void dopost (httpservletRequest solicitud, respuesta httpservletreSponse) lanza ServletException, ioexception {doget (solicitud, respuesta); }}Página JSP:
Webroot/Web-Inf/jsp/listbook.jsp: Mostrar lista de libros
<%@ page lenguaje = "java" import = "java.util.*" pageEncoding = "utf-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%> < Transitional // en "> <html> <fead> <title> Página de lista de libros </title> </head> <body style =" text-align: centro "> <h1> lista de libros </h1> <table> <ttr> <td> titular de libro </td> <td> autor </td> <td> precio de venta </td> <td> descripción <//td> </tr> <c: foreach var = "Entry" elementos = "$ {map}"> <tr> <tr> <td> $ {entry.value.name} </td> <td> $ {entry.value.author} </td> <td> $ {entry.value.price} </td> <td> $ {Entry.value} <TD> <a href = "$ {pageContext.request.contextPath}/servlet/buyservlet? id = $ {entry.value.id}" rel = "nofollow" externo "target =" _ blank "> buy </a> </td> </trirWebroot/Web-INF/JSP/Listcart.jsp: Mostrar lista de carritos de compras
<%@ page lenguaje = "java" import = "java.util.*" pageEncoding = "utf-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%> < Transitional // en "> <html> <fead> <title> List de autos </title> <script type =" text/javascript "> function deleteitem (id) {var b = window.confirm (" ¿Confirma la eliminación? "); if (b) {window.location.href = "$ {pageContext.request.contextPath}/servlet/deleteitemservlet? id =" rel = "externo nofollow" +id; }} function clearCart () {var b = window.confirm ("¿Confirma la limpieza?"); if (b) {window.location.href = "$ {pageContext.request.contextPath}/servlet/clearCartServlet" rel = "externo nofollow"; }} Cambio de función de función (entrada, id, OldValue) {var Cantidad = input.Value; // Obtenga el número que se modificará sdfsfs /* // verifique si el número de entrada del usuario es un número if (isnan (cantidad)) {alerta ("¡Ingrese el número!"); input.Value = OldValue; devolver; } */// verifique si el número de entrada del usuario es un entero positivo if (cantidad <0 || cantidad! = ParseInt (cantidad)) {alerta ("¡Ingrese el entero positivo!"); input.Value = OldValue; devolver; } var b = window.confirm ("Confirma que el número de libros se modifica a:" + cantidad); if (b) {window.location.href = "$ {pageContext.request.contextPath}/servlet/changeQuantityServlet? id =" rel = "externo nofollow" + id + "& cantity =" + cantidad; }} </script> </head> <body style = "text-align: center"> <h1> Lista de carritos de compras </h1> <c: if test = "$ {vacía (CART.map)}"> ¡No compró ningún artículo! ! ! </c: if> <c: if test = "$ {! vacía (carto.map)}"> <table> <tr> <td> <td> título de libro </td> <td> autor </td> <td> un unital </td> <td> cantidad </td> <td> subtotal </td> <td> operation </td> </td <c: var = "Entry" elementos = "$ {Cart.map}"> <tr> <td> $ {entry.value.book.name} </td> <td> $ {entry.value.book.author} </td> <td> $ {entry.value.book.price} </td> <td> <py type = "text" name "text" name "name" name "name" name "name" name "" n. valor = "$ {entry.value.quantity}" onChange = "ChangeQuantity (this, $ {entry.key}, $ {entry.value.quantity})"> </td> <td> $ {entry.value.price} </td> <td> <a href = "javaScript: void (0)" relat = "n. nofollow "onClick =" deleteitem ($ {entry.key}) "> Eliminar </a> <!-Eliminar el comportamiento predeterminado de Hyperlinks-> </td> </tr> </c: foreach> <ttr> <td colspan =" 3 "> precio total </td> <td colspan =" 2 "> $ {CART.Price} yuan <td td </td td </td> <td colspan =" 2 "> $ {CART. colspan = "1"> <a href = "javaScript: void (0)" rel = "externo nofollow" rel = "externo nofollow" onClick = "clearCart ()"> Borrar el carrito </a> </td> </tr> </table> </c: if> </body> </html>Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.