国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|

服務器之家 - 編程語言 - JAVA教程 - javaweb圖書商城設計之購物車模塊(3)

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

2020-07-04 10:43Android-Dev JAVA教程

這篇文章主要為大家詳細介紹了javaweb圖書商城設計之購物車模塊的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

購物車存儲

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

1、創建相關類

購物車的結構:

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

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/**
 * 購物車類
 */
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();
  }
}

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/**
 * 購物車條目類
 *
 */
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、添加購物車條目

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

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<%@ 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>

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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、清空條目

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

4、刪除購物車條目

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

5、我的購物車

top.jsp中存在一個鏈接:我的購物車

我的購物車直接訪問/jsps/cart/list.jsp,它會顯示session中車的所有條目。

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

延伸 · 閱讀

精彩推薦
  • JAVA教程Java基于直方圖應用的相似圖片識別實例

    Java基于直方圖應用的相似圖片識別實例

    這篇文章主要介紹了Java基于直方圖應用的相似圖片識別實例,是非常實用的技巧,多見于圖形里游戲中,需要的朋友可以參考下 ...

    shichen20143142019-11-29
  • JAVA教程JSON數據轉換成Java對象的方法

    JSON數據轉換成Java對象的方法

    就目前來講,將Java對象轉換成JSON對象還是相當簡單的,但是 將JSON對象轉換成Java對象,就相對比較復雜了些 ...

    java教程網4282019-11-14
  • JAVA教程Java中獲取類路徑classpath的簡單方法(推薦)

    Java中獲取類路徑classpath的簡單方法(推薦)

    下面小編就為大家帶來一篇Java中獲取類路徑classpath的簡單方法(推薦)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看...

    yigese4932020-06-16
  • JAVA教程深入JVM剖析Java的線程堆棧

    深入JVM剖析Java的線程堆棧

    這篇文章主要介紹了深入JVM剖析Java的線程堆棧,Java中的堆內存和堆棧原理的應用等知識是深入學習Java的重點,需要的朋友可以參考下 ...

    goldensun4442019-12-25
  • JAVA教程Java的Hibernate框架中的組合映射學習教程

    Java的Hibernate框架中的組合映射學習教程

    組合映射即是指主對象和子對象關聯且擁有相同的生命周期的映射關系,這里我們將舉一些數據操作的實例,來講解Java的Hibernate框架中的組合映射學習教程...

    zhang_xinxiu1512020-05-27
  • JAVA教程理解Java垃圾回收

    理解Java垃圾回收

    這篇文章主要幫助大家理解Java垃圾回收,通過實例學習java垃圾回收,什么是垃圾回收,感興趣的小伙伴們可以參考一下 ...

    趙杰A-1241652020-04-13
  • JAVA教程Java實現仿微信紅包分配規則

    Java實現仿微信紅包分配規則

    這篇文章主要為大家詳細介紹了Java實現仿微信紅包分配規則,介紹一種隨機紅包分配策略,感興趣的小伙伴們可以參考一下 ...

    xiaojimanman2032020-04-03
  • JAVA教程最值得Java開發者收藏的網站

    最值得Java開發者收藏的網站

    這篇文章主要為大家分享了最值得Java開發者收藏的11個網站,幫助Java開發者提升編程能力 ...

    Java團長1902020-07-02
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲视频在线观看网址 | 91av精品 | 国产成人一区二区三区 | 国产一区二区精品久久 | 我我色综合 | 国产日韩欧美一区二区 | 国产成人在线一区 | 国产一区二区三区免费观看 | 久久久精彩 | 99在线免费视频 | 一级大毛片 | 韩国精品一区二区三区 | 久久久久亚洲美女啪啪 | 亚洲精品一区二区在线 | 日韩欧美国产综合 | 四虎影视免费看电影 | 四影虎影ww4hu55.com | 午夜精品福利网 | 久久大陆| 一区二区三区在线播放视频 | 永久免费av | 中文字幕一区二区三区乱码图片 | 国产美女在线观看 | 欧美setu| 在线观看免费av网 | 久久久久国产精品免费免费搜索 | 不卡一区| 欧美综合一区 | 国产中文视频 | 日韩精品视频在线 | 日韩精品无码一区二区三区 | 精品国产黄a∨片高清在线 成人欧美 | 狠狠色综合网站久久久久久久 | 中文字幕亚洲欧美日韩在线不卡 | 精品久久久久久国产 | 亚洲一区视频 | 日韩午夜一级片 | 亚洲精品中文字幕在线观看 | 99亚洲伊人久久精品影院红桃 | 久久成人精品 | 久久国产综合 |