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 중 차 의 모든 항목 을 표시 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Javaweb에서 양식 데이터를 가져오는 다양한 방법Javaweb에서 양식 데이터를 가져오는 몇 가지 방법 1. 키 값이 맞는 형식으로 폼 데이터를 얻는다 getParameter(String name): 키를 통해 value를 반환합니다. getParameterVal...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.