수업 문제(국비 지원)/JSP
[JSP] 2022.10.11 (회원탈퇴)
by byeolsub
2023. 4. 29.
/*
1. 파라미터 값을 변수에 저장
2. method=POST 여부 확인.
3. id가 관리자인 경우 탈퇴 불가. list.jsp 페이지로 이동
== 추가++ : 로그인 여부(3-1), 본인 탈퇴 여부 검증(3-2).
4. 비밀번호 검증
- 관리자가 강제 탈퇴인 경우 : 관리자 비밀번호
- 본인 탈퇴인 경우 : 본인 비밀번호
- 비밀번호 불일지 : 비밀번호 오류 메세지 출력 후 deleteForm.jsp 페이지 이동
5. 비밀번호가 일치하는 경우
boolean MemberDao().delete(id) 메서드 호출
- 회원 정보 삭제 성공 :
일반 사용자 : 로그아웃 실행.
탈퇴 성공 메세지 출력. loginForm.jsp페이지로 이동
관리자 : 탈퇴 성공 메세지 출력. list.jsp 페이지로 이동
- 회원 정보 삭제 실패 :
일반 사용자 : 탈퇴 실패 메세지 출력. deleteForm.jsp 페이지로 이동
관리자 : 탈퇴 실패 메세지 출력. list.jsp 페이지로이동
*/
- MemberController.java - 내용 추가
@RequestMapping("delete")
public String delete (HttpServletRequest request, HttpServletResponse response) {
try {
request.setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} // Unhandled exception type UnsupportedEncodingException 예외처리 해줘야 한다
//1. 파라미터 값을 변수에 저장
String id = request.getParameter("id");
String pass = request.getParameter("pass");
String login = (String)request.getSession().getAttribute("login");
String msg = null;
String url = null;
//2. method=POST 여부 확인.
if(!request.getMethod().equals("POST")) {
msg = "입력방식 오류입니다.";
url = "deleteForm?id=" + id;
} else if(id.equals("admin")) {
msg = "관리자는 탈퇴 불가능합니다.";
url = "list";
} else if(login == null) {
msg = "로그인 하세요.";
url = "loginForm";
} else if(!login.equals("admin") && !id.equals(login)) {
msg = "본인만 탈퇴 가능합니다.";
url = "main";
} else { //정상적으로 탈퇴 가능할 때
MemberDao dao = new MemberDao();
Member mem = dao.selectOne(login);
if(!pass.equals(mem.getPass())) { //비밀번호 오류
msg = "비밀번호 오류입니다.";
url = "deleteForm?id=" + id;
} else { //비밀번호 일치
if(dao.delete(id)) {
msg = id + "회원이 탈퇴 되었습니다.";
if(login.equals("admin")) {
url = "list";
} else { //일반 사용자
request.getSession().invalidate(); //로그아웃
url = "loginForm";
}
} else { //회원 정보 삭제시 db 오류 발생한 경우
msg = id + "회원 탈퇴 실패";
if(login.equals("admin")) { //관리자
url = "list";
} else {
request.getSession().invalidate(); //로그아웃
url = "deleteForm?id=" + id;
}
}
} //비밀번호 일치 if 끝
}
request.setAttribute("msg", msg);
request.setAttribute("url", url);
return "/view/alert.jsp";
}
}