栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

javaweb图书商城设计之购物车模块(3)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

javaweb图书商城设计之购物车模块(3)

本文继续为大家分享了javaweb图书商城中购物车模块,供大家参考,具体内容如下

购物车存储

保存在session中
保存在cookie中
保存在数据库中

1、创建相关类

购物车的结构:

CartItem:购物车条目,包含图书和数量
Cart:购物车,包含一个Map


public class Cart {
  private Map map = new linkedHashMap();

  
  public double getTotal() {
    // 合计=所有条目的小计之和
    BigDecimal total = new BigDecimal("0");
    for(CartItem cartItem : map.values()) {
      BigDecimal subtotal = new BigDecimal("" + cartItem.getSubtotal());
      total = total.add(subtotal);
    }
    return total.doublevalue();
  }

  
  public void add(CartItem cartItem) {
    if(map.containsKey(cartItem.getBook().getBid())) {//判断原来车中是否存在该条目
      CartItem _cartItem = map.get(cartItem.getBook().getBid());//返回原条目
      _cartItem.setCount(_cartItem.getCount() + cartItem.getCount());//设置老条目的数量为,其自己数量+新条目的数量
      map.put(cartItem.getBook().getBid(), _cartItem);
    } else {
      map.put(cartItem.getBook().getBid(), cartItem);
    }
  }

  
  public void clear() {
    map.clear();
  }

  
  public void delete(String bid) {
    map.remove(bid);
  }

  
  public Collection getCartItems() {
    return map.values();
  }
}


public class CartItem {
  private Book book;// 商品
  private int count;// 数量

  
  public double getSubtotal() {//小计方法,但它没有对应的成员!
    BigDecimal d1 = new BigDecimal(book.getPrice() + "");
    BigDecimal d2 = new BigDecimal(count + "");
    return d1.multiply(d2).doublevalue();
  }

  public Book getBook() {
    return book;
  }

  public void setBook(Book book) {
    this.book = book;
  }

  public int getCount() {
    return count;
  }

  public void setCount(int count) {
    this.count = count;
  }
}

2、添加购物车条目

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>




 
  购物车列表

  
  
  
  
  
  
  

  * {
    font-size: 11pt;
  }
  div {
    margin:20px;
    border: solid 2px gray;
    width: 150px;
    height: 150px;
    text-align: center;
  }
  li {
    margin: 10px;
  }

  #buy {
    background: url() no-repeat;
    display: inline-block;

    background-position: 0 -902px;
    margin-left: 30px;
    height: 36px;
    width: 146px;
  }
  #buy:HOVER {
    background: url() no-repeat;
    display: inline-block;

    background-position: 0 -938px;
    margin-left: 30px;
    height: 36px;
    width: 146px;
  }

 

 
购物车

  <%-- 如果没有车,或车的内容集合为0长 --%>
  
    " width="300"/>
  
  

  
">清空购物车
图片 书名 作者 单价 数量 小计 操作
"/> ${cartItem.book.bname } ${cartItem.book.author } ${cartItem.book.price }元 ${cartItem.count } ${cartItem.subtotal }元 ">删除
合计:${sessionScope.cart.total }元
">

public class CartServlet extends baseServlet {
  
  public String add(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    
    
    Cart cart = (Cart)request.getSession().getAttribute("cart");
    
    String bid = request.getParameter("bid");
    Book book = new BookService().load(bid);
    int count = Integer.parseInt(request.getParameter("count"));
    CartItem cartItem = new CartItem();
    cartItem.setBook(book);
    cartItem.setCount(count);

    
    cart.add(cartItem);

    return "f:/jsps/cart/list.jsp";
  }

  
  public String clear(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    
    Cart cart = (Cart)request.getSession().getAttribute("cart");
    cart.clear();
    return "f:/jsps/cart/list.jsp";
  }

  
  public String delete(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    
    Cart cart = (Cart)request.getSession().getAttribute("cart");
    String bid = request.getParameter("bid");
    cart.delete(bid);
    return "f:/jsps/cart/list.jsp";
  }
}

3、清空条目

4、删除购物车条目

5、我的购物车

top.jsp中存在一个链接:我的购物车

我的购物车直接访问/jsps/cart/list.jsp,它会显示session中车的所有条目。

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/148676.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号