수업(국비지원)/JSP
[JSP] MVC MODEL2 방식 - 비밀번호 변경(passwordForm)
byeolsub
2023. 4. 20. 23:39
📌 MemberController.java - 내용 추가
1. 로그아웃 상태인 경우, 로그인 하세요. 메세지 출력.
opener 페이지를 loginForm.jsp페이지 이동.
현재 페이지 닫기
2. pass,chgpass 파라미터 값 저장
3. pass 비밀번호가 db에 저장된 비밀번호와 틀리면 비밀번호 오류 메세지 출력.
현재 페지이를 passwordForm.jsp 페이지 이동
4. pass 비밀번호가 db에 저장된 비밀번호와 같으면 => 비밀번호 검증 완료
MemberDao.updatePass(login,chgpass) => 새로운 비밀번호로 수정
- 비밀번호 수정 성공 :
메세지 출력 후 opener 페이지를 info.jsp 페이지 이동. 현재페이지 닫기
- 비밀번호 수정 실패 :
메세지 출력 후 opener 페이지를 updateForm.jsp 페이지 이동. 현재 페이지 닫기
@RequestMapping("passwordForm")
public String passwordForm (HttpServletRequest request, HttpServletResponse response) {
return "/view/member/passwordForm.jsp";
}
@RequestMapping("password")
public String password (HttpServletRequest request, HttpServletResponse response) {
String login = (String)request.getSession().getAttribute("login");
boolean opener = true;
boolean closer = true;
String msg = null;
String url = null;
if(login == null) { //1. 로그아웃 상태인 경우
msg = "로그인 하세요.";
url = "loginForm";
} else { //로그인 상태
//2. pass,chgpass 파라미터 값 저장
String pass = request.getParameter("pass");
String chgpass = request.getParameter("chgpass");
MemberDao dao = new MemberDao();
Member mem = dao.selectOne(login);
if(pass.equals(mem.getPass())) { //4. pass 비밀번호가 db에 저장된 비밀번호와 같으면
if(dao.updatePass(login, chgpass)) { //비밀번호 수정 성공
msg = "비밀번호가 변경 되었습니다.";
url = "info?id=" + login;
} else { //비밀번호 수정 실패
msg = "비밀번호 변경 시 오류가 발생했습니다.";
url = "updateForm?id=" + login;
}
} else { //3. pass 비밀번호가 db에 저장된 비밀번호와 틀리면
msg = "비밀번호 오류";
closer = false;
opener = false;
url = "passwordForm";
}
}
request.setAttribute("msg",msg);
request.setAttribute("url",url);
request.setAttribute("opener",opener);
request.setAttribute("closer",closer);
return "/view/member/password.jsp";
}
📌
- passwordForm
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%--/jsp3/src/main/webapp/view/member/passwordForm.jsp
1. javascript inchk 함수 구현하기
- pass, chgpass 값을 필수 입력
- chgpass == chgpass2 값이 다르면 오류
--%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>비밀번호 변경</title>
<link rel="stylesheet" href="../css/main.css">
<script type="text/javascript">
function inchk(f) {
if(f.pass.value == '') {
alert("현재 비밀번호를 입력하세요.")
f.pass.focus()
return false
}
if(f.chgpass.value == '') {
alert("변경 비밀번호를 입력하세요.")
f.chgpass.focus()
return false
}
if(f.chgpass.value != f.chgpass.value) {
alert("비밀번호가 서로 일치하지 않습니다.")
f.chgpass.focus()
return false
}
}
</script>
</head>
<body>
<form action="password" method="post" name="f" onsubmit="return inchk(this)">
<table><caption>비밀번호 변경</caption>
<tr><th>현재 비밀번호</th>
<td><input type="password" name="pass"></td></tr>
<tr><th>변경 비밀번호</th>
<td><input type="password" name="chgpass"></td></tr>
<tr><th>변경 비밀번호 재입력</th>
<td><input type="password" name="chgpass2"></td></tr>
<tr><td colspan="2"><input type="submit" value="비밀번호 변경"></td></tr>
</table>
</form>
</body>
</html>
- password
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="<http://java.sun.com/jsp/jstl/core>" %>
<%-- /jsp3/src/main/webapp/view/member/password.jsp --%>
alert("${msg}")
<c:if test="${opner}"> //opener : 회원정보 수정 창
opener.location.href="${url}"
</c:if>
<c:if test="${!opener}">
location.href="${url}" <%--현재 페이지를 url 값으로 이동 --%>
</c:if>
<c:if test ="${closer}"> //closer : 비밀번호 변경-프로필1 창
self.close()
</c:if>