개발로그필름
[쉽게 배우는 JSP 웹 프로그래밍] 14장 웹 쇼핑몰 예제 코드 본문
728x90
반응형
SMALL
반응형
WebMarket/WebContent/cart.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="dto.Product" %>
<%@ page import="dao.ProductRepository" %>
<html>
<head>
<link rel = "stylesheet" href="./resources/css/bootstrap.min.css" />
<%
String cartId = session.getId();
%>
<title>장바구니</title>
</head>
<body>
<jsp:include page="menu.jsp" />
<div class="jumbotron">
<div class="container">
<h1 class="display-3">장바구니</h1>
</div>
</div>
<div class="container">
<div class="row">
<table width="100%">
<tr>
<td align="left"><a href="./deleteCart.jsp?cartId=<%=cartId %>" class="btn btn-danger">삭제하기</a></td>
<td align="right"><a href="./shippingInfo.jsp?cartId=<%=cartId %>" class="btn btn-success">주문하기</a></td>
</tr>
</table>
</div>
<div style="padding-top: 50px">
<table class="table table-hover">
<tr>
<th>상품</th>
<th>가격</th>
<th>수량</th>
<th>소계</th>
<th>비고</th>
</tr>
<%
int sum = 0;
ArrayList<Product> cartList = (ArrayList<Product>) session.getAttribute("cartlist");
if (cartList == null)
cartList = new ArrayList<Product>();
for (int i=0; i<cartList.size(); i++) { // 상품 리스트 하나씩 출력하기
Product product = cartList.get(i);
int total = product.getUnitPrice() * product.getQuantity();
sum = sum + total;
%>
<tr>
<td><%=product.getProductId()%> - <%=product.getPname()%></td>
<td><%=product.getUnitPrice() %></td>
<td><%=product.getQuantity() %></td>
<td><%=total%></td>
<td><a href="./removeCart.jsp?id=<%=product.getProductId()%>" class="badge badge-danger">삭제</a></td>
</tr>
<%
}
%>
<tr>
<th></th>
<th></th>
<th>총액</th>
<th><%=sum %></th>
<th></th>
</tr>
</table>
<a href="./products.jsp" class="btn btn-secondary"> « 쇼핑 계속하기</a>
</div>
<hr>
</div>
<jsp:include page="footer.jsp" />
</body>
</html>
WebMarket/WebContent/shippingInfo.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<link rel = "stylesheet" href="./resources/css/bootstrap.min.css" />
<title>배송 정보</title>
</head>
<body>
<jsp:include page="menu.jsp"/>
<div class="jumbotron">
<div class="container">
<h1 class="display-3">배송 정보</h1>
</div>
</div>
<div class="container">
<form action="./processShippingInfo.jsp" class="form-horizontal" method="post">
<input type="hidden" name="cartId" value="<%=request.getParameter("cartId") %>"/>
<div class="form-group row">
<label class="col-sm-2">성명</label>
<div class="col-sm-3">
<input name ="name" type="text" class="form-control" />
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">배송일</label>
<div class="col-sm-3">
<input name="shippingDate" type="text" class="form-control" />(yyyy/mm/dd)
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">국가명</label>
<div class="col-sm-3">
<input name="country" type="text" class="form-control" />
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">우편번호</label>
<div class="col-sm-3">
<input name="zipCode" type="text" class="form-control" />
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">주소</label>
<div class="col-sm-5">
<input name="addressName" type="text" class="form-control" />
</div>
</div>
<div class="form-group row">
<div class="col-sm-offset-2 col-sm-10">
<a href="./cart.jsp?cartId=<%=request.getParameter("cartId") %>" class="btn btn-secondary" role="button">이전</a>
<input type="submit" class="btn btn-primary" value="등록"/>
<a href="./checkOutCancelled.jsp" class="btn btn-secondary" role="button">취소</a>
</div>
</div>
</form>
</div>
</body>
</html>
WebMarket/WebContent/processShippingInfo.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.net.URLEncoder" %>
<%
request.setCharacterEncoding("UTF-8");
Cookie cartId = new Cookie("Shipping_cartId", URLEncoder.encode(request.getParameter("cartId"), "utf-8"));
Cookie name = new Cookie("Shipping_name", URLEncoder.encode(request.getParameter("name"), "utf-8"));
Cookie shippingDate = new Cookie("Shipping_shippingDate", URLEncoder.encode(request.getParameter("shippingDate"), "utf-8"));
Cookie country = new Cookie("Shipping_country", URLEncoder.encode(request.getParameter("country"), "utf-8"));
Cookie zipCode = new Cookie("Shipping_zipCode", URLEncoder.encode(request.getParameter("zipCode"), "utf-8"));
Cookie addressName = new Cookie("Shipping_addressName", URLEncoder.encode(request.getParameter("addressName"), "utf-8"));
cartId.setMaxAge(24 * 60 * 60);
name.setMaxAge(24 * 60 * 60);
zipCode.setMaxAge(24 * 60 * 60);
country.setMaxAge(24 * 60 * 60);
addressName.setMaxAge(24 * 60 * 60);
response.addCookie(cartId);
response.addCookie(name);
response.addCookie(shippingDate);
response.addCookie(country);
response.addCookie(zipCode);
response.addCookie(addressName);
response.sendRedirect("orderConfirmation.jsp");
%>
SMALL
WebMarket/WebContent/orderConfirmation.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.net.URLDecoder" %>
<%@ page import="dto.Product"%>
<%@ page import="dao.ProductRepository"%>
<%
request.setCharacterEncoding("UTF-8");
String cartId = session.getId();
String shipping_cartId = "";
String shipping_name = "" ;
String shipping_shippingDate = "" ;
String shipping_country = "" ;
String shipping_zipCode = "" ;
String shipping_addressName = "" ;
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (int i=0; i<cookies.length; i++) {
Cookie thisCookie = cookies[i];
String n = thisCookie.getName();
if (n.equals("Shipping_cartId"))
shipping_cartId = URLDecoder.decode((thisCookie.getValue()), "utf-8");
if (n.equals("Shipping_name"))
shipping_name = URLDecoder.decode((thisCookie.getValue()), "utf-8");
if (n.equals("Shipping_shippingDate"))
shipping_shippingDate = URLDecoder.decode((thisCookie.getValue()), "utf-8");
if (n.equals("Shipping_country"))
shipping_country = URLDecoder.decode((thisCookie.getValue()), "utf-8");
if (n.equals("Shipping_zipCode"))
shipping_zipCode = URLDecoder.decode((thisCookie.getValue()), "utf-8");
if (n.equals("Shipping_addressName"))
shipping_addressName = URLDecoder.decode((thisCookie.getValue()), "utf-8");
}
}
%>
<html>
<head>
<link rel = "stylesheet" href="./resources/css/bootstrap.min.css" />
<title>주문 정보</title>
</head>
<body>
<jsp:include page="menu.jsp" />
<div class="jumbotron">
<div class="container">
<h1 class="display-3">주문 정보</h1>
</div>
</div>
<div class="container col-8 alert alert-info">
<div class="text-center ">
<h1>영수증</h1>
</div>
<div class="fow justify-content-between">
<div class="col-4" align="left">
<Strong>배송 주소</Strong>
<br> 성명 : <% out.println(shipping_name); %>
<br> 우편번호 : <% out.println(shipping_zipCode); %>
<br> 주소 : <% out.println(shipping_addressName); %>
(<% out.println(shipping_country); %>) <br>
</div>
<div class="col-4" align="right">
<p> <em>배송일 : <% out.println(shipping_shippingDate); %></em>
</div>
</div>
<div>
<table class="table table-hover">
<tr>
<th class="text-center">도서</th>
<th class="text-center">#</th>
<th class="text-center">가격</th>
<th class="text-center">소계</th>
</tr>
<%
int sum = 0;
ArrayList<Product> cartList = (ArrayList<Product>) session.getAttribute("cartlist");
if (cartList == null)
cartList = new ArrayList<Product>();
for (int i=0; i<cartList.size(); i++) {
Product product = cartList.get(i);
int total = product.getUnitPrice() * product.getQuantity();
sum = sum + total;
%>
<tr>
<td class="text-center"><em><%=product.getPname() %></em></td>
<td class="text-center"><%=product.getQuantity() %></td>
<td class="text-center"><%=product.getUnitPrice() %>원</td>
<td class="text-center"><%=total %>원</td>
</tr>
<%
}
%>
<tr>
<td></td>
<td></td>
<td class="text-right"><strong>총액: </strong></td>
<td class="text-center text-danger"><strong><%=sum %></strong></td>
</tr>
</table>
<a href="./shippingInfo.jsp?cartId=<%=shipping_cartId%>" class="btn btn-secondary" role="button"> 이전 </a>
<a href="./thankCustomer.jsp" class="btn btn-success" role="button"> 주문 완료 </a>
<a href="./checkOutCancelled.jsp" class="btn btn-secondary" role="button"> 취소 </a>
</div>
</div>
</body>
</html>
WebMarket/WebContent/thankCustomer.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.net.URLDecoder" %>
<html>
<head>
<link rel = "stylesheet" href="./resources/css/bootstrap.min.css" />
<title>주문 완료</title>
</head>
<body>
<%
String shipping_cartId = "";
String shipping_name = "";
String shipping_shippingDate = "";
String shipping_country = "";
String shipping_zipCode = "";
String shipping_addressName = "";
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (int i=0; i<cookies.length; i++) {
Cookie thisCookie = cookies[i];
String n = thisCookie.getName();
if (n.equals("Shipping_cartId"))
shipping_cartId = URLDecoder.decode((thisCookie.getValue()), "utf-8");
if (n.equals("Shipping_shippingDate"))
shipping_shippingDate = URLDecoder.decode((thisCookie.getValue()), "utf-8");
}
}
%>
<jsp:include page="menu.jsp"/>
<div class="jumbotron">
<div class="container">
<h1 class="display-3">주문 완료</h1>
</div>
</div>
<div class="container">
<h2 class="alert alert-danger">주문해주셔서 감사합니다.</h2>
<p> 주문은 <% out.println(shipping_shippingDate); %>에 배송될 예정입니다!
<p> 주문번호 : <% out.println(shipping_cartId); %>
</div>
<div class="container">
<p> <a href="./products.jsp" class="btn btn-secondary"> « 상품 목록</a>
</div>
</body>
</html>
<%
session.invalidate();
for (int i=0; i<cookies.length; i++) {
Cookie thisCookie = cookies[i];
String n = thisCookie.getName();
if (n.equals("Shipping_cartId"))
thisCookie.setMaxAge(0);
if (n.equals("Shipping_name"))
thisCookie.setMaxAge(0);
if (n.equals("Shipping_shippingDate"))
thisCookie.setMaxAge(0);
if (n.equals("Shipping_country"))
thisCookie.setMaxAge(0);
if (n.equals("Shipping_zipCode"))
thisCookie.setMaxAge(0);
if (n.equals("Shipping_addressName"))
thisCookie.setMaxAge(0);
response.addCookie(thisCookie);
}
%>
WebMarket/WebContent/checkOutCancelled.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<link rel = "stylesheet" href="./resources/css/bootstrap.min.css" />
<title>주문 취소</title>
</head>
<body>
<jsp:include page="menu.jsp"/>
<div class="jumbotron">
<div class="container">
<h1 class="display-3">주문 취소</h1>
</div>
</div>
<div class="container">
<h2 class="alert alert-danger">주문이 취소되었습니댜.</h2>
</div>
<div class="container">
<p> <a href="./products.jsp" class="btn btn-secondary"> « 상품 목록</a>
</div>
</body>
</html>
반응형
LIST
'IT > 쉽게 배우는 JSP 웹 프로그래밍' 카테고리의 다른 글
[쉽게 배우는 JSP 웹 프로그래밍] 15장 웹 쇼핑몰 예제 코드 (0) | 2022.12.08 |
---|---|
[쉽게 배우는 JSP 웹 프로그래밍] 13장 웹 쇼핑몰 예제 코드 (0) | 2022.12.06 |
[쉽게 배우는 JSP 웹 프로그래밍] 11장 웹 쇼핑몰 예제 코드 (0) | 2022.12.05 |
[쉽게 배우는 JSP 웹 프로그래밍] 10장 웹 쇼핑몰 예제 코드 (0) | 2022.12.04 |
[쉽게 배우는 JSP 웹 프로그래밍] 9장 웹 쇼핑몰 예제 코드 (0) | 2022.12.03 |