📌
<%@page import="model.MemberDao"%>
<%@page import="model.Member"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- /jsp3/src/main/webapp/view/member/deleteForm.jsp --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>탈퇴 전 비밀번호 입력</title>
<script type="text/javascript">
function inputcheck(f) {
if(f.pass.value == "") {
alert("비밀번호를 입력하세요.")
f.pass.focus()
return false
}
}
</script>
</head>
<body>
<%-- method="post" : post 방식이면 body 전문 안쪽에 들어가서 우리가 확인 불가. --%>
<form action="delete" method="post" onsubmit="return inputcheck(this)">
<input type="hidden" name="id" value="${param.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>
📌 MemberController.java - 내용 추가
1. id 파라미터 저장하기
2. login 여부 검증하기
로그아웃 상태인 경우 : 로그인 하세요. 메세지 출력 후 koginForm 페이지로 이동
관리자가 아니면서 id 파라미터 정보와 login 정보가 다른경우 : 본인만 탈퇴 가능합니다. 메세지 출력 후 main 페이지로 이동
3. deleteForm.jsp 출력하기
@RequestMapping("deleteForm")
public String deleteForm (HttpServletRequest request, HttpServletResponse response) {
String id = request.getSession().getAttribute("id");
String login = (String)request.getSession().getAttribute("login");
if(login == null) {
request.setAttribute("msg","로그인 하세요.");
request.setAttribute("url","loginForm");
return "/view/alert.jsp";
} else if(!login.equals("admin") && !id.equals(login)) {
request.setAttribute("msg","본인만 탈퇴 가능합니다.");
request.setAttribute("url","main");
return "/view/alert.jsp";
}
//3. deleteForm.jsp 출력하기
return "/view/member/deleteForm.jsp";
}
📌 MemberController.java - 내용 추가.
jsp2/delete.jsp 대신 작성
@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";
}
}
'수업(국비지원) > JSP' 카테고리의 다른 글
| [JSP] MVC MODEL2 방식 - 사진 등록(memberimg), 사진 수정(imgupload) (0) | 2023.04.19 |
|---|---|
| [JSP] MVC MODEL2 방식 - 회원 정보(list) (0) | 2023.04.19 |
| [JSP] MVC MODEL2 방식 - 회원정보 수정(updateForm) (0) | 2023.04.19 |
| [JSP] MVC MODEL2 방식 - 회원 정보(info) (0) | 2023.04.19 |
| [JSP] MVC MODEL2 방식 - 회원관리(main) (0) | 2023.04.19 |