javaweb 도서 쇼핑 몰 디자인 의 카 트 모듈(3)

본 고 는 자바 웹 도서 쇼핑 몰 에서 카 트 모듈 을 계속 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
카 트 저장 소
session 에 저장
쿠키 에 저장
데이터베이스 에 저장
1.관련 클래스 생 성
카 트 의 구조:
CartItem:카 트 항목,도서 및 수량 포함
Cart:카 트,지도 포함

/**
 *     
 */
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.내 카 트
내 카 트
제 카 트 는 직접 방문/jsps/car/list.jsp 입 니 다.session 중 차 의 모든 항목 을 표시 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기