国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

javaweb圖書商城設計之購物車模塊(3)

2019-11-26 13:34:43
字體:
來源:轉載
供稿:網友

本文繼續為大家分享了javaweb圖書商城中購物車模塊,供大家參考,具體內容如下

購物車存儲

保存在session中
保存在cookie中
保存在數據庫中

1、創建相關類

購物車的結構:

CartItem:購物車條目,包含圖書和數量
Cart:購物車,包含一個Map

/** * 購物車類 */public class Cart {  private Map<String,CartItem> map = new LinkedHashMap<String,CartItem>();  /**   * 計算合計   * @return   */  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();  }  /**   * 添加條目到車中   * @param cartItem   */  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();  }  /**   * 刪除指定條目   * @param bid   */  public void delete(String bid) {    map.remove(bid);  }  /**   * 獲取所有條目   * @return   */  public Collection<CartItem> getCartItems() {    return map.values();  }}

/** * 購物車條目類 *  */public class CartItem {  private Book book;// 商品  private int count;// 數量  /**   * 小計方法   * @return   * 處理了二進制運算誤差問題   */  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" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head>  <title>購物車列表</title>  <meta http-equiv="pragma" content="no-cache">  <meta http-equiv="cache-control" content="no-cache">  <meta http-equiv="expires" content="0">  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  <meta http-equiv="description" content="This is my page">  <meta http-equiv="content-type" content="text/html;charset=utf-8">  <!--  <link rel="stylesheet" type="text/css" href="styles.css">  --><style type="text/css">  * {    font-size: 11pt;  }  div {    margin:20px;    border: solid 2px gray;    width: 150px;    height: 150px;    text-align: center;  }  li {    margin: 10px;  }  #buy {    background: url(<c:url value='/images/all.png'/>) no-repeat;    display: inline-block;    background-position: 0 -902px;    margin-left: 30px;    height: 36px;    width: 146px;  }  #buy:HOVER {    background: url(<c:url value='/images/all.png'/>) no-repeat;    display: inline-block;    background-position: 0 -938px;    margin-left: 30px;    height: 36px;    width: 146px;  }</style> </head> <body><h1>購物車</h1><c:choose>  <%-- 如果沒有車,或車的內容集合為0長 --%>  <c:when test="${empty sessionScope.cart or fn:length(sessionScope.cart.cartItems) eq 0}">    <img src="<c:url value='/images/cart.png'/>" width="300"/>  </c:when>  <c:otherwise><table border="1" width="100%" cellspacing="0" background="black">  <tr>    <td colspan="7" align="right" style="font-size: 15pt; font-weight: 900">      <a href="<c:url value='/CartServlet?method=clear'/>">清空購物車</a>    </td>  </tr>  <tr>    <th>圖片</th>    <th>書名</th>    <th>作者</th>    <th>單價</th>    <th>數量</th>    <th>小計</th>    <th>操作</th>  </tr><c:forEach items="${sessionScope.cart.cartItems }" var="cartItem">  <tr>    <td><div><img src="<c:url value='/${cartItem.book.image }'/>"/></div></td>    <td>${cartItem.book.bname }</td>    <td>${cartItem.book.author }</td>    <td>${cartItem.book.price }元</td>    <td>${cartItem.count }</td>    <td>${cartItem.subtotal }元</td>    <td><a href="<c:url value='/CartServlet?method=delete&bid=${cartItem.book.bid }'/>">刪除</a></td>  </tr></c:forEach>  <tr>    <td colspan="7" align="right" style="font-size: 15pt; font-weight: 900">      合計:${sessionScope.cart.total }元    </td>  </tr>  <tr>    <td colspan="7" align="right" style="font-size: 15pt; font-weight: 900">      <a id="buy" href="<c:url value='/OrderServlet?method=add'/>"></a>    </td>  </tr></table>  </c:otherwise></c:choose> </body></html>

public class CartServlet extends BaseServlet {  /**   * 添加購物條目   * @param request   * @param response   * @return   * @throws ServletException   * @throws IOException   */  public String add(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {    /*     * 1. 得到車     * 2. 得到條目(得到圖書和數量)     * 3. 把條目添加到車中     */    /*     * 1. 得到車     */    Cart cart = (Cart)request.getSession().getAttribute("cart");    /*     * 表單傳遞的只有bid和數量     * 2. 得到條目     *  > 得到圖書和數量     *  > 先得到圖書的bid,然后我們需要通過bid查詢數據庫得到Book     *  > 數量表單中有     */    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);    /*     * 3. 把條目添加到車中     */    cart.add(cartItem);    return "f:/jsps/cart/list.jsp";  }  /**   * 清空購物條目   * @param request   * @param response   * @return   * @throws ServletException   * @throws IOException   */  public String clear(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {    /**     * 1. 得到車     * 2. 設置車的clear     */    Cart cart = (Cart)request.getSession().getAttribute("cart");    cart.clear();    return "f:/jsps/cart/list.jsp";  }  /**   * 刪除購物條目   * @param request   * @param response   * @return   * @throws ServletException   * @throws IOException   */  public String delete(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {    /*     * 1. 得到車     * 2. 得到要刪除的bid     */    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中車的所有條目。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天津市| 古丈县| 京山县| 屏东县| 于都县| 鹤峰县| 双辽市| 甘孜| 建昌县| 仙居县| 成安县| 方城县| 泽普县| 泸定县| 封丘县| 雷山县| 北川| 延川县| 宁安市| 彝良县| 白玉县| 天全县| 张家川| 富民县| 伊春市| 恩平市| 宜黄县| 华阴市| 汝阳县| 灌阳县| 滁州市| 丘北县| 永靖县| 承德市| 永城市| 宁武县| 福安市| 金坛市| 双柏县| 阳信县| 诸城市|