상품의 이미지나 이름을 누르면 해당 상품의 상세 정보 및 구매를 할 수 있는 페이지를 만들었다.
<%@page import="java.util.*"%>
<%@page import="shop.dao.GoodsDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
// 요청 값 확인
String goodsNo = request.getParameter("goodsNo");
// 요청 값 디버깅
System.out.println("customerGoodsOne - goodsNo = " + goodsNo);
// goodsNo가 null이면 메인페이지로 redirect
if(goodsNo == null) {
response.sendRedirect("/shop/customer/goods/customerGoodsList.jsp");
}
// 최근 본 상품 세션에 추가
Set<String> recentViewdGoods = null;
if(session.getAttribute("recentViewdGoods") == null) {
recentViewdGoods = new HashSet<String>();
} else {
recentViewdGoods = (HashSet<String>)session.getAttribute("recentViewdGoods");
}
if(goodsNo != null) {
recentViewdGoods.add(goodsNo);
session.setAttribute("recentViewdGoods", recentViewdGoods);
}
%>
<%
// 상품 상세보기
HashMap<String, Object> goodsInfo = GoodsDAO.selectGoodsInfo(goodsNo);
%>
<%
// 비회원 주문 누를 경우 로그인 이동 하기위해 고객 session 가져오기
HashMap<String, Object> loginCustomer = (HashMap<String, Object>)session.getAttribute("loginCustomer");
System.out.println("customerGoodsOne - loginCustomer = " + loginCustomer);
%>
<!-- View Layer -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><%=goodsInfo.get("goodsTitle") %></title>
<link href="/shop/css/w3.css" rel="stylesheet" type="text/css">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<!-- 메인 메뉴 -->
<jsp:include page="/customer/inc/customerMenu.jsp"></jsp:include>
<div>
<!-- 사이드바 - 서브메뉴 카테고리별 상품리스트 -->
<jsp:include page="/customer/inc/customerSideBar.jsp"></jsp:include>
<!-- customerGoodsOne 본문 -->
<div style="margin-left:15%; ">
<div style="padding:20px 5%;">
<h1 style="display: inline-block;"><%=goodsInfo.get("goodsTitle") %></h1>
</div>
<!-- 상품 상세 출력 -->
<div style="display: flex; justify-content: center;">
<div class="row" style="margin: 0 3%; align-items: center; width: 60%;">
<div class="col-6">
<img alt="" src="/shop/upload/<%=goodsInfo.get("imgName") %>" style="width: 100%;">
</div>
<div class="col-6">
<div style="width: 90%;">
<div>
<div style="display: inline-block; width: 20%;">카테고리</div>
<div style="display: inline-block;"><%=goodsInfo.get("category") %></div>
</div>
<div>
<div style="display: inline-block; width: 20%;">판매자</div>
<div style="display: inline-block;"><%=goodsInfo.get("empId") %></div>
</div>
<div>
<div style="display: inline-block; width: 20%;">상품명</div>
<div style="display: inline-block;"><%=goodsInfo.get("goodsTitle") %></div>
</div>
<div>
<div style="display: inline-block; width: 20%;">설명</div>
<div style="display: inline-block;"><%=goodsInfo.get("goodsContent") %></div>
</div>
<div>
<div style="display: inline-block; width: 20%;">가격</div>
<div style="display: inline-block;"><%=goodsInfo.get("goodsPrice") %></div>
</div>
<div>
<div style="display: inline-block; width: 20%;">수량</div>
<div style="display: inline-block;"><%=goodsInfo.get("goodsAmount") %></div>
</div>
<div>
<div style="display: inline-block; width: 20%;">등록일</div>
<div style="display: inline-block;"><%=goodsInfo.get("createDate") %></div>
</div>
<!-- 주문 하기 -->
<div>
<%
if(loginCustomer != null) {
if(Integer.parseInt((String)goodsInfo.get("goodsAmount")) > 0) {
%>
<a class="a-to-button" href="/shop/customer/customerOrdersForm.jsp?goodsNo=<%=goodsNo %>" style="width: 100%;">
주문 하기
</a>
<%
} else {
%>
<a class="a-to-button" href="#" style="width: 100%;">품절입니다</a>
<%
}
} else {
%>
<a class="a-to-button" href="/shop/customer/customerLoginForm.jsp" style="width: 100%;">주문 하기</a>
<%
}
%>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
이미지나 title을 클릭하면 해당 상품의 goodsNo가 넘어가고 요청값으로 받는다
만약 goodsNo가 null이면 다시 메인페이지로 redirect한다.
그리고 최근 본 상품목록을 구현하기위해 상품을 클릭하면 recentViewedGoods 세션 변수를 불러오고, recentViewedGoods가 null일 경우 Set을 만들어 해당 goodsNo를 추가한다. null이 아니면 세션변수를 불러와서 추가해준다
또한 상품의 상세정보를 볼 수 있는 DAO의 메서드를 실행한다.
만약 로그인이 안돼있는(비회원일 경우)는 주문을 클릭하면 로그인폼으로 redirect하게 만들었다.
/* 상품 정보 가져오기 */
public static HashMap<String, Object> selectGoodsInfo(String goodsNo) throws Exception{
HashMap<String, Object> goodsInfo = new HashMap<String, Object>();
// DB 연결
Connection conn = DBHelper.getConnection();
/* 상품 하나의 모든 정보 가져오는 쿼리 */
String selectGoodsInfoSql = "SELECT category, emp_id empId, goods_title goodsTitle, img_name imgName, goods_content goodsContent, goods_price goodsPrice, goods_amount goodsAmount, create_date createDate FROM goods WHERE goods_no = ?";
PreparedStatement selectGoodsInfoStmt = null;
ResultSet selectGoodsInfoRs = null;
selectGoodsInfoStmt = conn.prepareStatement(selectGoodsInfoSql);
selectGoodsInfoStmt.setString(1, goodsNo);
selectGoodsInfoRs = selectGoodsInfoStmt.executeQuery();
while(selectGoodsInfoRs.next()) {
goodsInfo.put("category", selectGoodsInfoRs.getString("category"));
goodsInfo.put("empId", selectGoodsInfoRs.getString("empId"));
goodsInfo.put("goodsTitle", selectGoodsInfoRs.getString("goodsTitle"));
goodsInfo.put("imgName", selectGoodsInfoRs.getString("imgName"));
goodsInfo.put("goodsContent", selectGoodsInfoRs.getString("goodsContent"));
goodsInfo.put("goodsPrice", selectGoodsInfoRs.getString("goodsPrice"));
goodsInfo.put("goodsAmount", selectGoodsInfoRs.getString("goodsAmount"));
goodsInfo.put("createDate", selectGoodsInfoRs.getString("createDate"));
}
conn.close();
return goodsInfo;
}
그리고 화면에 뿌려주면 상품 상세보기는 끝이다!
다음은 고객 마이 페이지이다.
상단의 메뉴 부분에서 프로필 사진부분을 누르면 이동할 수 있다
customerOne.jsp
<%@page import="shop.dao.CustomerDAO"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file ="/customer/inc/CustomerCommonSessionCheck.jsp" %>
<%
// loginCutomer 세션 변수 가져오기
HashMap<String, Object> loginCustomerMember = (HashMap<String, Object>)(session.getAttribute("loginCustomer"));
%>
<%
// 고객 정보 가져오기
HashMap<String, Object> customerInfo = CustomerDAO.selectCustomerInfo((String)loginCustomerMember.get("customerId"));
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>title</title>
<link href="/shop/css/w3.css" rel="stylesheet" type="text/css">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="row">
<!-- 메인 메뉴 -->
<jsp:include page="/customer/inc/customerMenu.jsp"></jsp:include>
<div class="col"></div>
<div class="col-4">
<table class="w3-table w3-centered w3-card-4 w3-bordered" style="margin-top: 50px; width: 100%;">
<thead class="w3-dark-grey">
<tr>
<td colspan="2">
<h1><%=customerInfo.get("customerName") %>의 상세정보</h1>
</td>
</tr>
</thead>
<tbody>
<tr>
<th>고객 ID</th>
<td>
<%=customerInfo.get("customerId") %>
</td>
</tr>
<tr>
<th>고객 이름</th>
<td>
<%=customerInfo.get("customerName") %>
</td>
</tr>
<tr>
<th>생년월일</th>
<td>
<%=customerInfo.get("customerBirth") %>
</td>
</tr>
<tr>
<th>성별</th>
<td>
<%=customerInfo.get("customerGender") %>
</td>
</tr>
<tr>
<th>정보 수정일</th>
<td>
<%=customerInfo.get("updateDate") %>
</td>
</tr>
<tr>
<th>정보 생성일</th>
<td>
<%=customerInfo.get("createDate") %>
</td>
</tr>
<tr>
<td width="50%;">
<a class="a-to-button" href="/shop/customer/checkInfoUpdateCustomer.jsp" style="width: 100%;">회원정보 수정</a>
</td>
<td width="50%;">
<a class="a-to-button" href="/shop/customer/deleteCustomerForm.jsp" style="width: 100%;">회원 탈퇴</a>
</td>
</tr>
</tbody>
</table>
</div>
<div class="col"></div>
</div>
</body>
</html>
loginCustomer의 세션변수를 가져와 해당 세션변수에서 customerId 값을 가져오고,
customerDAO의 고객 정보를 가져오는 메서드를 사용해 고객의 정보를 Map에 담는다.
Map에 담긴 정보를 향상된 for문을 이용해 페이지에 출력해주면 된다.
다음은 회원정보 수정이다.
회원정보 수정을 클릭하면 일단 id와 pw를 확인하기 위해 id,pw입력 페이지로 이동하고, id,pw가 일치하면
회원정보 수정 폼으로 이동한다.
checkInfoUpdateCustomer.jsp
<%-- <%@page import="java.util.HashMap"%> --%>
<%@page import="java.util.HashMap"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file ="/customer/inc/CustomerCommonSessionCheck.jsp" %>
<%
// loginCutomer 세션 변수 가져오기
HashMap<String, Object> loginCustomerMember = (HashMap<String, Object>)(session.getAttribute("loginCustomer"));
%>
<%
// msg 출력
String msg = request.getParameter("msg");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>title</title>
<link href="/shop/css/w3.css" rel="stylesheet" type="text/css">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="row">
<!-- 메인 메뉴 -->
<jsp:include page="/customer/inc/customerMenu.jsp"></jsp:include>
<div class="col"></div>
<div class="col-2 w3-container w3-half w3-margin-top" style="height: 90vh; width: 25%;">
<div style="text-align: center;">
<%
if(msg != null) {
%>
<%=msg %>
<%
}
%>
</div>
<form class="w3-container w3-card-4 w3-border w3-round-large" action="/shop/customer/updateCustomerForm.jsp" method="post" style="margin: 40% auto; height: 330px;">
<div style="margin-top: 30px; text-align: center;">
<h1>회원정보 수정</h1>
</div>
<div>
<label>ID 확인</label>
<input class="w3-input" type="text" name="customerId" value="<%=loginCustomerMember.get("customerId")%>" readonly="readonly">
</div>
<div>
<label>PW 확인</label>
<input class="w3-input" type="password" name="customerPw" required="required">
</div>
<div class="row" style="margin-top: 20px;">
<div class="col">
<button class="w3-button w3-section w3-dark-grey w3-ripple" type="submit" style="width: 100%;">
정보 수정하기
</button>
</div>
</div>
</form>
</div>
<div class="col"></div>
</div>
</body>
</html>
id와 pw를 입력해야하는데 id의 경우에는 세션변수에서 가져와 이미 입력돼있게 했다.
정보 수정버튼을 클릭하면 회원정보수정 폼으로 이동한다.
updateCustomerForm.jsp
<%@page import="java.net.URLEncoder"%>
<%@page import="java.util.HashMap"%>
<%@page import="shop.dao.CustomerDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file ="/customer/inc/CustomerCommonSessionCheck.jsp" %>
<%
// 요청값
String customerId = request.getParameter("customerId");
String customerPw = request.getParameter("customerPw");
System.out.println("udpateCustomerForm - customerId = " + customerId);
System.out.println("udpateCustomerForm - customerPw = " + customerPw);
%>
<%
// ID, PW 체크
boolean isCustomer = CustomerDAO.checkCustomerIdPw(customerId, customerPw);
if(!isCustomer) {
String msg = URLEncoder.encode("id, pw를 다시 확인해주세요", "UTF-8");
response.sendRedirect("/shop/customer/checkInfoUpdateCustomer.jsp?msg=" + msg);
}
// customer 정보
HashMap<String, Object> customerInfo = CustomerDAO.selectCustomerInfo(customerId);
String customerBirth = (String)customerInfo.get("customerBirth");
customerBirth = customerBirth.substring(0, 10);
%>
<%
// msg 출력
String msg = request.getParameter("msg");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>비밀번호 변경</title>
<link href="/shop/css/w3.css" rel="stylesheet" type="text/css">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="row">
<!-- 메인 메뉴 -->
<jsp:include page="/customer/inc/customerMenu.jsp"></jsp:include>
<div class="col"></div>
<div class="col-4">
<div style="text-align: center;">
<%
if(msg != null) {
%>
<%=msg %>
<%
}
%>
</div>
<div class="w3-border w3-round" style="margin-top: 20px;">
<div class="w3-container w3-dark-grey" style="padding: 10px;">
<h1>비밀번호 변경</h1>
</div>
<div class="w3-card-4">
<form class="w3-container" action="/shop/customer/updateCustomerAction.jsp" method="post">
<div>
<label style="margin: 10px;">고객 ID</label>
<input class="w3-input" type="text" name="customerId" value="<%=customerInfo.get("customerId")%>" readonly="readonly">
<input type="hidden" name="customerPw" value="<%=customerPw%>">
</div>
<div>
<label style="margin: 10px;">고객 이름</label>
<input class="w3-input" type="text" name="customerName" value="<%=customerInfo.get("customerName")%>" required="required">
</div>
<div>
<label style="margin: 10px;">생년월일</label>
<input class="w3-input" type="date" name="customerBirth" value="<%=customerBirth %>" required="required">
</div>
<div>
<label style="margin: 10px;">성별</label>
<p>
<%
if((customerInfo.get("customerGender")).equals("남")) {
%>
<input class="w3-radio" type="radio" name="customerGender" value="남" required="required" checked="checked">
<label>남</label>
<input class="w3-radio" type="radio" name="customerGender" value="여" required="required">
<label>여</label>
<%
} else {
%>
<input class="w3-radio" type="radio" name="customerGender" value="남" required="required">
<label>남</label>
<input class="w3-radio" type="radio" name="customerGender" value="여" required="required" checked="checked">
<label>여</label>
<%
}
%>
</div>
<div>
<label style="margin: 10px;">새 비밀번호</label>
<div>
<input class="w3-input" type="password" name="newCustomerPw" placeholder="새 비밀번호를 입력해주세요">
</div>
<label style="margin: 10px;">새 비밀번호 확인</label>
<div>
<input class="w3-input" type="password" name="newCustomerPwCheck" placeholder="새 비밀번호를 다시 입력해주세요">
</div>
</div>
<div style="text-align: center;">
<button class="w3-button w3-section w3-dark-grey w3-ripple" type="submit" style="width: 80%; margin: 20px;">
변경하기
</button>
</div>
</form>
</div>
</div>
</div>
<div class="col"></div>
</div>
</body>
</html>
입력한 id, pw값을 요청값으로 받고,
id, pw가 일치하는지 customerDAO의 checkCustomerIdPw메서드를 통해 확인한다.
메서드를 사용하면 boolean 값이 return 되는데 true이면 일치하고, false이면 id, pw가 일치하지 않는 것이다
/* 정보 수정 전 고객 id, pw 확인 */
public static boolean checkCustomerIdPw(String customerId, String customerPw) throws Exception {
boolean result = false;
// DB 연결
Connection conn = DBHelper.getConnection();
String checkIdPwSql = "SELECT id customerID FROM customer WHERE id = ? AND pw = ?";
PreparedStatement checkIdPwStmt = conn.prepareStatement(checkIdPwSql);
checkIdPwStmt.setString(1, customerId);
checkIdPwStmt.setString(2, customerPw);
ResultSet checkIdPwRs = checkIdPwStmt.executeQuery();
if (checkIdPwRs.next()) {
result = true;
}
conn.close();
return result;
}
그래서 일치한다면 정보를 수정할 수 있게되고, 그게 아니면 다시 id,pw를 확인하는 checkInfoUpdateCustomer.jsp로 redirect한다.
아래는 회원정보 수정 페이지이다.
변경할 수 있는 부분은 이름, 생년월일, 성별이 있으며
비밀번호같은경우는 바꾸고 싶다면 입력하고, 그렇지 않다면 비워두면 된다.
왜냐면 updateCustomerAction.jsp 에서 새 비밀번호와 새비밀번호 확인 값이 일치해야만 진행되도록 했기때문이다.
updateCustomerAction.jsp
<%@page import="java.net.URLEncoder"%>
<%@page import="java.util.HashMap"%>
<%@page import="shop.dao.CustomerDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file ="/customer/inc/CustomerCommonSessionCheck.jsp" %>
<%
// loginCutomer 세션 변수 가져오기
HashMap<String, Object> loginCustomerMember = (HashMap<String, Object>)(session.getAttribute("loginCustomer"));
%>
<%
// 요청 값
String customerId = request.getParameter("customerId");
String customerName = request.getParameter("customerName");
String customerBirth = request.getParameter("customerBirth");
String customerGender = request.getParameter("customerGender");
String oldCustomerPw = request.getParameter("customerPw");
String newCustomerPw = request.getParameter("newCustomerPw");
String newCustomerPwCheck = request.getParameter("newCustomerPwCheck");
System.out.println("updateCustomerAction - customerId = " + customerId);
System.out.println("updateCustomerAction - customerName = " + customerName);
System.out.println("updateCustomerAction - customerBirth = " + customerBirth);
System.out.println("updateCustomerAction - customerGender = " + customerGender);
System.out.println("updateCustomerAction - oldCustomerPw = " + oldCustomerPw);
System.out.println("updateCustomerAction - newCustomerPw = " + newCustomerPw);
System.out.println("updateCustomerAction - newCustomerPwCheck = " + newCustomerPwCheck);
%>
<%
// 새 비밀번호와 새 비밀번호 확인 값이 다를 경우
if(!newCustomerPw.equals(newCustomerPwCheck)) {
String msg = URLEncoder.encode("회원정보 수정에 실패했습니다. 다시 입력 해주세요", "UTF-8");
response.sendRedirect("/shop/customer/checkInfoUpdateCustomer.jsp?msg=" + msg);
return;
}
int updateCustomerRow = CustomerDAO.updateCustomer(customerId, customerName, customerBirth, customerGender, oldCustomerPw, newCustomerPw);
// 회원정보 수정 실패
if(updateCustomerRow == 0) {
String msg = URLEncoder.encode("회원정보 수정에 실패했습니다. 다시 입력 해주세요", "UTF-8");
response.sendRedirect("/shop/customer/checkInfoUpdateCustomer.jsp?msg=" + msg);
return;
}
// 회원정보 수정 성공 및 loginCustomer 세션 값 변경
HashMap<String, Object> newCustomer = new HashMap<String,Object>();
HashMap<String, Object> updateCustomer = CustomerDAO.selectCustomerInfo(customerId);
newCustomer.put("customerId", updateCustomer.get("customerId"));
newCustomer.put("customerName", updateCustomer.get("customerName"));
session.setAttribute("loginCustomer", newCustomer);
response.sendRedirect("/shop/customer/customerOne.jsp");
%>
폼에서 입력받은 값들을 모두 요청값으로 받고,
위에서 말했듯 새비밀번호와 새비밀번호 확인 값을 비교한다.
일치한다면 CustomerDAO.updateCustomer() 메서드를 실행하여 update쿼리를 날린다.
/* 고객 정보 변경 */
public static int updateCustomer(String customerId, String customerName, String customerBirth,
String customerGender, String oldCustomerPw, String newCustomerPw) throws Exception {
int row = 0;
// DB 연결
Connection conn = DBHelper.getConnection();
String updateCustomerSql = "UPDATE customer SET name = ?, birth = ?, gender = ?, update_date = sysdate, pw = ? WHERE id = ? AND pw = ?";
PreparedStatement updateCustomerStmt = conn.prepareStatement(updateCustomerSql);
updateCustomerStmt.setString(1, customerName);
updateCustomerStmt.setString(2, customerBirth);
updateCustomerStmt.setString(3, customerGender);
if (newCustomerPw == null) {
updateCustomerStmt.setString(4, oldCustomerPw);
} else {
updateCustomerStmt.setString(4, newCustomerPw);
}
updateCustomerStmt.setString(5, customerId);
updateCustomerStmt.setString(6, oldCustomerPw);
row = updateCustomerStmt.executeUpdate();
conn.close();
return row;
}
회원정보 수정에 성공했다면 loginCustomer 세션변수도 마찬가지로 바꿔준다.
다음은 회원 탈퇴이다.
회원탈퇴를 누르면 정보 수정과 마찬가지로 id, pw를 확인하고,
일치한다면 탈퇴를 진행하는 것이다.
deleteCustomerForm.jsp
<%@page import="java.util.HashMap"%>
<%@page import="shop.dao.CustomerDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file ="/customer/inc/CustomerCommonSessionCheck.jsp" %>
<%
// loginCutomer 세션 변수 가져오기(입력한 id와 로그인 돼있는 )
HashMap<String, Object> loginCustomerMember = (HashMap<String, Object>)(session.getAttribute("loginCustomer"));
// 로그인 돼있는 고객의 id
String customerId = (String)loginCustomerMember.get("customerId");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 탈퇴</title>
<link href="/shop/css/w3.css" rel="stylesheet" type="text/css">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="row">
<!-- 메인 메뉴 -->
<jsp:include page="/customer/inc/customerMenu.jsp"></jsp:include>
<div class="col"></div>
<div class="col-4">
<div class="w3-border w3-round" style="margin-top: 20px;">
<div class="w3-container w3-dark-grey" style="padding: 10px;">
<h1>회원 탈퇴</h1>
</div>
<div class="w3-card-4" style="padding: 5%;">
<form class="w3-container" action="/shop/customer/deleteCustomerAction.jsp" method="post">
<div>
회원을 정말 탈퇴하시려면 ID와 PW를 입력해주세요:(
</div>
<div style="margin-top: 20px;">
<label>ID</label>
<input class="w3-input" type="text" name="customerId" value="<%=customerId %>" readonly="readonly">
</div>
<div>
<label>PW</label>
<input class="w3-input" type="password" name="customerPw" required="required">
</div>
<div>
<button class="w3-button w3-section w3-block w3-dark-grey w3-ripple" type="submit">회원 탈퇴</button>
</div>
</form>
</div>
</div>
</div>
<div class="col"></div>
</div>
</body>
</html>
deleteCustomerAction.jsp
<%@page import="shop.dao.CustomerDAO"%>
<%@page import="java.util.HashMap"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file ="/customer/inc/CustomerCommonSessionCheck.jsp" %>
<%
// 요청 값
String customerId = request.getParameter("customerId");
String customerPw = request.getParameter("customerPw");
// 디버깅
System.out.println("deleteCustomerAction - customerId = " + customerId);
System.out.println("deleteCustomerAction - customerPw = " + customerPw);
// 해당 jsp 바로 실행했을 경우
if(customerId == null && customerPw == null) {
response.sendRedirect("/shop/customer/goods/customerGoodsList.jsp");
}
%>
<%
// 회원정보 일치 검증
boolean canDeleteCustomer = CustomerDAO.checkCustomerIdPw(customerId, customerPw);
int deleteCustomerRow = 0;
// 회원 정보 일치할 경우
if(canDeleteCustomer) {
// 회원 삭제
deleteCustomerRow = CustomerDAO.deleteCustomer(customerId, customerPw);
} else {
// 회원 정보 일치하지 않을 경우
response.sendRedirect("/shop/customer/deleteCustomerForm.jsp");
}
System.out.println("deleteCustomerAction - deleteCustomerRow = " + deleteCustomerRow);
// 회원 탈퇴시 로그인돼있던 회원 세션 초기화
session.invalidate();
response.sendRedirect("/shop/customer/goods/customerGoodsList.jsp");
%>
update와 마찬가지로 id,pw를 검증 후 일치한다면 삭제를 진행하고 메인페이지로 이동한다.
그렇지 않다면 id, pw 입력창으로 다시 redirect하게 했다!
'웹 개발 > 쇼핑몰 프로젝트(개인)' 카테고리의 다른 글
쇼핑몰 만들기(12)-관리자 페이지(주문관리, 주문 상태 변경, 주문취소) (0) | 2024.04.30 |
---|---|
쇼핑몰 만들기(11)-고객 페이지(주문하기) (0) | 2024.04.22 |
쇼핑몰 만들기(9)-고객 페이지(쇼핑몰 메인페이지, 회원가입) (1) | 2024.04.18 |
쇼핑몰 만들기(8)-고객 페이지 (1) | 2024.04.18 |
쇼핑몰 만들기(7)-카테고리 관리 (0) | 2024.04.15 |