1. id 파라미터 저장하기
2. login 여부 검증하기
로그아웃상태인 경우
로그인하세요.메세지 출력 후 loginForm.jsp 페이지로 이동
관리자가 아니면서 id 파라미터 정보와 login 정보가 다른 경우
본인만 탈퇴 가능합니다. 메세지 출력 후 main.jsp 페이지로 이동
3. 현재 화면 출력하기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- src/main/webapp/model1/member/deleteForm.jsp
1. id 파라미터 저장하기
2. login 여부 검증하기
로그아웃상태인 경우
로그인하세요.메세지 출력 후 loginForm.jsp 페이지로 이동
관리자가 아니면서 id 파라미터 정보와 login 정보가 다른 경우
본인만 탈퇴 가능합니다. 메세지 출력 후 main.jsp 페이지로 이동
3. 현재 화면 출력하기
--%>
<%
//1. id 파라미터 저장하기
String id = request.getParameter("id"); //파라미터정보
String login = (String)session.getAttribute("login"); //로그인정보
// 2. login 여부 검증하기
if(login == null ) { //로그아웃상태 %>
<script type="text/javascript">
alert("로그인 하세요")
location.href="loginForm.jsp"
</script>
<% }
// 3. login 상태 검증 2
else if (!login.equals("admin") && !id.equals(login)) { %>
<script type="text/javascript">
alert("본인만 탈퇴 가능합니다.")
location.href="main.jsp"
</script>
<% } else { %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 탈퇴 비밀번호 입력</title>
<link rel="stylesheet" href="../../css/main.css" >
<script type="text/javascript">
function inputcheck(f) {
if(f.pass.value == "") {
alert("비밀번호를 입력하세요")
f.pass.focus();
return false;
}
return true;
}
</script></head><body>
<form action="delete.jsp" method="post"
onsubmit="return inputcheck(this)">
<input type="hidden" name="id" value="<%=id%>" >
<table>
<caption>회원비밀번호 입력</caption>
<tr><th>비밀번호</th>
<td><input type="password" name="pass" /></td></tr>
<tr><td colspan="2">
<input type="submit" value="탈퇴하기" /></td></tr>
</table></form></body></html>
<% } %>
1. 로그아웃 상태 : "로그인하세요" 출력. loginForm.jsp 페이지 이동
2. 일반사용자
- id 파라미터 정보와, login 정보가 다른경우
"본인만 탈퇴 가능합니다.". main.jsp 페이지 이동
3. id가 관리자인 경우 탈퇴 불가. list.jsp 페이지 이동.
4. 비밀번호 검증.
관리자가 강제 탈퇴인 경우 : 관리자 비밀번호로 검증.
일반사용자의 탈퇴인 경우 : 본인 비밀번호로 검증
비밀번호 불일치 : "비밀번호가 틀림" 출력. deleteForm.jsp 페이지 이동.
5. db에서 delete 실행 : 비밀번호 일치인 경우
int MemberDao.delete(id) 메서드 호출
탈퇴 성공 : member db에서 delete 처리 완료
일반사용자 : 로그아웃 실행. 삭제 성공 메세지 출력.
loginForm.jsp 페이지 이동.
관리자 : 삭제 성공 메세지 출력. list.jsp 페이지 이동.
탈퇴 실패 : member db에서 delete 처리시 오류발생
일반사용자 : 탈퇴 실패 메세지 출력. info.jsp 페이지 이동.
관리자 : 삭제 실패 메세지 출력. list.jsp 페이지 이동.
<%@page import="model.MemberDao"%>
<%@page import="model.Member"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- src/main/webapp/model1/member/delete.jsp
1. 로그아웃 상태 : "로그인하세요" 출력. loginForm.jsp 페이지 이동
2. 일반사용자
- id 파라미터 정보와, login 정보가 다른경우
"본인만 탈퇴 가능합니다.". main.jsp 페이지 이동
3. id가 관리자인 경우 탈퇴 불가. list.jsp 페이지 이동.
4. 비밀번호 검증.
관리자가 강제 탈퇴인 경우 : 관리자 비밀번호로 검증.
일반사용자의 탈퇴인 경우 : 본인 비밀번호로 검증
비밀번호 불일치 : "비밀번호가 틀림" 출력. deleteForm.jsp 페이지 이동.
5. db에서 delete 실행 : 비밀번호 일치인 경우
int MemberDao.delete(id) 메서드 호출
탈퇴 성공 : member db에서 delete 처리 완료
일반사용자 : 로그아웃 실행. 삭제 성공 메세지 출력.
loginForm.jsp 페이지 이동.
관리자 : 삭제 성공 메세지 출력. list.jsp 페이지 이동.
탈퇴 실패 : member db에서 delete 처리시 오류발생
일반사용자 : 탈퇴 실패 메세지 출력. info.jsp 페이지 이동.
관리자 : 삭제 실패 메세지 출력. list.jsp 페이지 이동.
--%>
<%
String login = (String)session.getAttribute("login");
String id = request.getParameter("id");
String pass = request.getParameter("pass");
String msg = null;
String url = null;
if(login == null ) {
msg= "로그인이 필요합니다.";
url = "loginForm.jsp";
} else if(!login.equals(id) && !login.equals("admin")) {
msg= "본인만 탈퇴가 가능합니다.";
url = "main.jsp";
} else if (id.equals("admin")) { //탈퇴 대상이 되는 회원은 관리자 안됨
msg= "관리자는 탈퇴할 수 없습니다.";
url = "list.jsp";
} else {
MemberDao dao = new MemberDao();
Member dbmem = dao.selectOne(login);
//비밀번호 검증
if(pass.equals(dbmem.getPass())) { //비밀번호 일치
url = "list.jsp";
if(dao.delete(id)) { //삭제성공
if(login.equals("admin")) {
msg =id + " 사용자를 강제 탈퇴 성공";
} else {
msg =id + "님의 회원 탈퇴가 완료되었습니다.";
session.invalidate(); //로그아웃
url = "loginForm.jsp";
}
} else { //삭제 실패
msg = id +"님의 탈퇴시 오류 발생.";
if(!login.equals("admin")) {
url = "info.jsp?id="+id;
}
}
} else { //비밀번호 오류
msg = id + "님의 비밀번호가 틀립니다.";
url = "deleteForm.jsp?id=" + id;
}
}
%>
<script>
alert("<%=msg%>");
location.href="<%=url%>";
</script>
'study > MVC' 카테고리의 다른 글
[MVC] 16. MVC Model1 방식 - 회원가입 (회원사진등록) (0) | 2022.04.11 |
---|---|
[MVC] 16. MVC Model1 방식 - 회원가입 (파일업로드) (0) | 2022.04.11 |
[MVC] 16. MVC Model1 방식 - 회원가입 (회원목록보기) (0) | 2022.04.11 |
[MVC] 16. MVC Model1 방식 - 회원가입 (회원정보보기) (0) | 2022.04.08 |
[MVC] 16. MVC Model1 방식 - 회원가입 (로그아웃) (0) | 2022.04.08 |