首页 > 编程 > Java > 正文

javaweb购物车案列学习开发

2019-11-26 09:57:55
字体:
来源:转载
供稿:网友

本文实例为大家分享了javaweb购物车案列的具体代码,供大家参考,具体内容如下

一、项目目录结构  

 

二、源代码

dao包――dao层:BookDao.java

package 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――模拟数据库

package com.DB;import java.util.LinkedHashMap;import java.util.Map;import com.domain.Book;import com.sun.org.apache.bcel.internal.generic.NEW;//代表数据库//代表数据库public class DB {  private static Map map = new LinkedHashMap(); static{ map.put("1", new Book("1","javaweb开发","老张",38,"一本好书")); map.put("2", new Book("2","jdbc开发","老黎",18,"一本好书")); map.put("3", new Book("3","ajax开发","老佟",328,"一本好书")); map.put("4", new Book("4","jbpm开发","老毕",58,"一本好书")); map.put("5", new Book("5","struts开发","老方",28,"一本好书")); map.put("6", new Book("6","spring开发","老方",98,"一本好书")); }   public static Map getAll(){ return map; } }

domain包:

Book.java:书的实体类

package com.domain;//书的实体类public class Book {  private String id; private String name; private String author; private double price; private String description; public Book() { super(); // TODO Auto-generated constructor stub } public Book(String id, String name, String author, double price,  String description) { super(); this.id = id; this.name = name; this.author = author; this.price = price; this.description = 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(String author) { this.author = author; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; }  }

Cart.java:购物车类    

package com.domain;import java.util.LinkedHashMap;import java.util.Map;//代表用户的购物车//代表用户的购物车public class Cart { private Map<String,CartItem> map = new LinkedHashMap(); private double price; //记住购物车所有商品多少钱  public void add(Book book){ //看购物车中有没有,要添加的书对应的购物项 CartItem item = map.get(book.getId()); if(item==null){  item = new CartItem();  item.setBook(book);  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> entry : map.entrySet()){  CartItem item = entry.getValue();  totalprice += item.getPrice(); } this.price = totalprice; return price; } public void setPrice(double price) { this.price = price; }}

CartItem.java:购物项   

package com.domain;//用于代表某个商品,以及商品出现的次数(购物项)public class CartItem { private Book book; private int quantity; private double price;   public Book getBook() { return book; } public void setBook(Book book) { 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(double price) { this.price = price; }}

service包:service层

BusinessService.java:      

package com.service;import java.util.Map;import com.dao.BookDao;import com.domain.Book;import com.domain.Cart;import com.domain.CartItem;//业务类,统一对web层提供所有服务public class BusinessService { private BookDao dao = new BookDao();  public Map getAllBook(){ return dao.getAll(); }  public Book findBook(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 changeItemQuantity(String id, String quantity, Cart cart) { CartItem item = cart.getMap().get(id); item.setQuantity(Integer.parseInt(quantity)); } }

web层:

ListBookServlet.java:显示所有书籍      

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;import com.service.BusinessService;//获取所有书籍//获取所有书public class ListBookServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException { BusinessService service = new BusinessService(); Map map = service.getAllBook(); request.setAttribute("map", map);  request.getRequestDispatcher("/WEB-INF/jsp/listbook.jsp").forward(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException { doGet(request, response); }}

 BuyServlet.java:处理购买请求      

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;import com.service.BusinessService;//完成书籍购买//完成书籍购买public class BuyServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException { String id = request.getParameter("id"); BusinessService service = new BusinessService(); Book book = service.findBook(id);  //得到用户的购物车 Cart cart = (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").forward(request, response);  } public void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException { doGet(request, response); }} 

DeleteItemServlet.java:删除某一种商品

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;//删除指定的购物项public class DeleteItemServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse 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").forward(request, response);  } public void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException { doGet(request, response); }}

ClearCartServlet.java:清空购物车

package 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;import javax.servlet.http.HttpServletResponse;import com.domain.Cart;import com.service.BusinessService;//清空购物车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").forward(request, response);  } public void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException { doGet(request, response); }}

ChangeQuantityServlet.java:修改购物车中指定商品的数量

package 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;import javax.servlet.http.HttpServletResponse;import com.domain.Cart;import com.service.BusinessService;//把购物车中的书修改为指定数量public class ChangeQuantityServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException { String id = request.getParameter("id"); String quantity = request.getParameter("quantity");  Cart cart = (Cart) request.getSession().getAttribute("cart");  BusinessService service = new BusinessService(); service.changeItemQuantity(id,quantity,cart);  request.getRequestDispatcher("/WEB-INF/jsp/listcart.jsp").forward(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException { doGet(request, response); }}

 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" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>书籍列表页面</title> </head>  <body style="text-align: center">  <h1>书籍列表</h1>  <table width="70%" border="1"> <tr>  <td>书名</td>  <td>作者</td>  <td>售价</td>  <td>描述 </td>  <td>操作</td> </tr> <c:forEach var="entry" items="${map}">  <tr>  <td>${entry.value.name }</td>  <td>${entry.value.author }</td>  <td>${entry.value.price }</td>  <td>${entry.value.description } </td>  <td>   <a href="${pageContext.request.contextPath }/servlet/BuyServlet?id=${entry.value.id }" rel="external nofollow" target="_blank">购买</a>  </td>  </tr> </c:forEach> </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" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>购物车列表</title>  <script type="text/javascript"> function deleteitem(id){  var b = window.confirm("您确认删除吗??");  if(b){  window.location.href="${pageContext.request.contextPath }/servlet/DeleteItemServlet?id=" rel="external nofollow" +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 quantity = input.value; //得到要修改的数量 sdfsfs    /*  //检查用户输入的数量是不是一个数字  if(isNaN(quantity)){  alert("请输入数字!!");  input.value = oldvalue;  return;  }  */    //检查用户输入的数量是不是一个正整数  if(quantity<0 || quantity!=parseInt(quantity)){  alert("请输入正整数!!");  input.value = oldvalue;  return;  }      var b = window.confirm("您确认把书的数量修改为:" + quantity);  if(b){  window.location.href="${pageContext.request.contextPath}/servlet/ChangeQuantityServlet?id=" rel="external nofollow" + id + "&quantity=" + quantity;  } } </script>  </head>  <body style="text-align: center">  <h1>购物车列表</h1>  <c:if test="${empty(cart.map)}">  您没有购买任何商品!!! </c:if>   <c:if test="${!empty(cart.map)}">  <table width="70%" border="1"> <tr>  <td>书名</td>  <td>作者</td>  <td>单价</td>  <td>数量 </td>  <td>小计</td>  <td>操作</td> </tr> <c:forEach var="entry" items="${cart.map}">  <tr>  <td>${entry.value.book.name }</td>  <td>${entry.value.book.author }</td>  <td>${entry.value.book.price }</td>  <td>   <input type="text" name="quantity" value="${entry.value.quantity }" style="width:35px" onchange="changeQuantity(this,${entry.key},${entry.value.quantity})">  </td>  <td>${entry.value.price }</td>  <td>   <a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" onclick="deleteitem(${entry.key })">删除</a> <!-- 去掉超链接默认行为 -->     </td>  </tr> </c:forEach>  <tr>  <td colspan="3">总价</td>  <td colspan="2">${cart.price }元</td>  <td colspan="1">  <a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" onclick="clearcart()">清空购物车</a>  </td> </tr> </table> </c:if>  </body></html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表