JSP

[JSP] session 예제 (장바구니)

에띠 2022. 5. 23. 18:58
728x90

장바구니 페이지 7_basket.jsp

<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>장바구니</title>
<script>
	function payment() {
		alert("결제페이지로 이동합니다.");
		location.href="7_basket_payment.jsp";
	}
</script>
</head>
<body>
	<h2>장바구니</h2>
	<form method="post" action="7_basket_ok.jsp">
		<p>
			<select name="product">
				<option value="가방">가방</option>
				<option value="라면">라면</option>
				<option value="계란">계란</option>
				<option value="다이슨청소기">다이슨청소기</option>
				<option value="삼성핸드폰">삼성핸드폰</option>
			</select>
		</p>
		<hr>
		<p>
			<input type="submit" value="추가">
			<input type="button" value="결제" onclick="payment()">
		</p>
		<hr>
		<p>
		<%
			List<String> list = (List)session.getAttribute("productList");
		
			if (list != null) {
				for (String product : list) {
					out.print(product + " ");
				}
			}
		%>
		</p>
	</form>
</body>
</html>

 

 

상품 추가 페이지 7_basket_ok.jsp

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	request.setCharacterEncoding("UTF-8");

	String product = request.getParameter("product") == null ? "" : 
		request.getParameter("product");
	
	List list = (List)session.getAttribute("productList");
	
	if (list == null) {
		list = new ArrayList();
	}
	list.add(product);
	
	session.setAttribute("productList", list);
	
%>    
<script>
	alert("<%=product %> 상품이 장바구니에 추가 되었습니다.");
	location.href = "7_basket.jsp";
</script>

 

 

결제 페이지 7_basket_payment.jsp

<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	List<String> list = (List)session.getAttribute("productList");
	
	if (list != null){
		int sum = 0;
		for (String product : list) {
			if ("가방".equals(product)) {
				sum += 100000;
			} else if ("라면".equals(product)) {
				sum += 1500;
			} else if ("계란".equals(product)) {
				sum += 8000;
			} else if ("다이슨청소기".equals(product)) {
				sum += 150000;
			} else if ("삼성핸드폰".equals(product)) {
				sum += 1250000;
			}
		}
%>
	<script>
		if (confirm('<%=sum%>원을 결제하시겠습니까?')) {
			alert('결제가 성공적으로 완료되었습니다.\n장바구니를 초기화합니다.');
			location.href="7_basket_invalid.jsp";
		} else {
			alert('결제를 취소했습니다.');
			history.back();
		}
	</script>
<%
	} else {
%>
	<script>
		alert('결제할 상품이 없습니다.');
	</script>
<%		
	}
%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

</body>
</html>

 

 

장바구니 초기화 페이지 7_basket_invalid.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	session.invalidate();
	response.sendRedirect("7_basket.jsp"); // loaction.href랑 비슷
%>

 

728x90