728x90
세션 활용 쇼핑몰
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.ArrayList,test.ProductVO"%>
<jsp:useBean id="pDAO" class="test.ProductDAO"></jsp:useBean>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%-- test17, 18, 19, 20 --%>
<div id="header">
<%
if (session.getAttribute("name") == null) {
%>
<form action="test18.jsp" method="post">
아이디 <input type="text" name="mid"><br>
비밀번호 <input type="password" name="mpw"><br>
<input type="submit" value="로그인">
</form>
<%
}
else {
%>
<%= session.getAttribute("name") %>님 안녕하세요 :D <a href="test19.jsp">로그아웃</a>
<%
}
%>
</div>
<hr>
<div id="content">
<form action="test20.jsp">
상품선택 <select name="pk">
<%
ArrayList<ProductVO> datas = pDAO.selectAll(null);
for(ProductVO v : datas) {
out.println("<option value='" + v.getPk() + "'>" + v + "</option>");
}
%>
</select>
<input type="submit" value="장바구니 추가하기">
</form>
</div>
<hr>
<a href="test21.jsp">결제하기</a>
</body>
</html>
test17.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- 로그인 후 다시 페이지로 --%>
<jsp:useBean id="mDAO" class="test.MemberDAO"/>
<jsp:useBean id="mVO" class="test.MemberVO"/>
<jsp:setProperty property="*" name="mVO"/>
<%
String mid = request.getParameter("mid");
String mpw = request.getParameter("mpw");
// 이 mid와 이 mpw를 사진 회원이 있니?
mVO = mDAO.selectOne(mVO);
// 없어도 test17.jsp로 가는데, 로그인 실패! 안내
if (mVO == null) {
out.print("<script>alert('로그인 실패...'); location.href = history.go(-1)</script>");
}
// 있으면 test17.jsp로 가고
else {
session.setAttribute("name", mVO.getName());
response.sendRedirect("test17.jsp");
}
session.setAttribute("name", mid);
response.sendRedirect("test17.jsp");
%>
test18.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//session.setAttribute("mid", null); // 해당 세션을 비워줘
session.removeAttribute("name"); // 해당 세선을 지워줘
session.removeAttribute("cart");
//session.invalidate(); // 모든 세션을 지워줘
response.sendRedirect("test17.jsp");
%>
test19.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="test.ProductVO,java.util.ArrayList"%>
<jsp:useBean id="pDAO" class="test.ProductDAO"/>
<jsp:useBean id="pVO" class="test.ProductVO"/>
<jsp:setProperty property="*" name="pVO"/>
<%
// 상품을 받아와서,
// == selectOne()
ProductVO data = pDAO.selectOne(pVO);
ArrayList<ProductVO> cart = (ArrayList<ProductVO>)session.getAttribute("cart");
if (cart == null) {
cart = new ArrayList<ProductVO>();
session.setAttribute("cart", cart);
}
cart.add(data);
// 그걸 장바구니에 추가하고,
// 혹시 장바구니가 없으면?
// 만들어서 넣으면됨
// 사용자한테 ㅁㅁ가 장바구니에 추가되었습니다! :D
// 다시 메인으로 페이지 이동~
%>
<script>
alert('<%= data.getName() %> 이(가) 장바구니에 추가되었습니다! :D');
location.href = 'test17.jsp';
</script>
test20.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.ArrayList,test.ProductVO"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
int total = 0;
%>
<h1><%= session.getAttribute("mid") %>님이 구매한 상품들입니다.</h1>
<hr>
<ol>
<%
ArrayList<ProductVO> cart = (ArrayList<ProductVO>)session.getAttribute("cart");
for (ProductVO v : cart) {
out.println("<li>" + v + "</li>");
total += v.getPrice();
}
%>
</ol>
<hr>
<h2>총 금액은 <%= total %>원 입니다.</h2>
<a href="test17.jsp">메인으로 돌아가기</a>
</body>
</html>
test21.jsp
GitHub
https://github.com/Qkrwnsgus0522/JSP
728x90