📌
<%@page import="model.Member"%>
<%@page import="model.MemberDao"%>
<%@ 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/updateForm.jsp
request 객체에 mem이름의 Member 객체가 전달
--%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 정보 수정</title>
<script type="text/javascript">
function win_passchg() {
let op = "width=500,height=250,left=50,top=150"
open("passwordForm.jsp","",op)
}
function win_upload() {
let op = "width=300,height=300,left=50,top=150"
open("memberimg.jsp","",op)
}
</script>
</head>
<body>
<form action="update" name="f" method="post" onsubmit="return inputCheck(this)">
<input type="hidden" name="picture" value="${mem.picture}">
<table><caption>회원 정보 수정</caption>
<tr><td rowspan="4" valign="bottom">
<img src="../picture/${mem.picture}" width="100" height="120" id="pic"><br>
<font size="1"><a href="javascript:win_upload()">사진수정</a></font>
</td><th>아이디</th>
<%-- readonly : 입력은 안되지만 파라미터로 이동은 가능함 --%>
<td><input type="text" name="id" readonly value="${mem.id}">
</td></tr>
<tr><th>비밀번호</th><td><input type="password" name="pass"></td></tr>
<tr><th>이름</th>
<td><input type="text" name="name" value="${mem.name}"></td></tr>
<tr><th>성별</th>
<td><input type="radio" name="gender" value="1" ${(mem.gender==1)?"checkd":""}>남
<input type="radio" name="gender" value="1" ${(mem.gender==2)?"checkd":""}>여</td></tr>
<tr><th>전화번호</th>
<td colspan="2"><input type="text" name="tel" value="${mem.tel}"></td></tr>
<tr><th>이메일</th>
<td colspan="2"><input type="text" name="email" value="${mem.email}"></td></tr>
<tr><td colspan="3"><input type="submit" value="회원수정">
<c:if test="${sessionScope.login == param.id}">
<input type="button" value="비밀번호 수정" onclick="win_passchg()">
</c:if>
</table>
</body>
</html>
📌 MemberController.java - 내용 추가
@RequestMapping("updateForm")
public String updateForm (HttpServletRequest request, HttpServletResponse response) {
String id = request.getParameter("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";
}
//정상적인 조회
Member mem = new MemberDao().selectOne(id);
request.setAttribute("mem",mem);
return "/view/member/updateForm.jsp";
}
📌 MemberController.java - 내용 추가
jsp2/update.jsp 대신 작성
1. 모든 파라미터 정보를 Member 객체에 저장
2. 입력된 비밀번호와 db에 저장된 비밀번호 비교 =>db에서 읽기
관리자인 경우 관리자 비밀번호와 비교하기.
본인인 경우 본인의 비밀번호로 비교하기.
- 비밀번호가 틀린 경우 : "비밀번호 오류" 메세지 출력
updateForm.jsp 페이지 출력
3. 비밀번호가 같은 경우
파라미터를 저장하고 있는 Member 객체를 이용하여 db 정보 수정
boolean MemberDao.update(Member)
결과가 true면 "수정 성공" 메세지 출력 후, info.jsp 페이지 이동
결과가 false면 "수정 실패" 메세지 출력 후, updateForm.jsp 페이지 이동
@RequestMapping("update")
public String update (HttpServletRequest request, HttpServletResponse response) {
try {
request.setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} // Unhandled exception type UnsupportedEncodingException 예외처리 해줘야 한다
//1. 모든 파라미터 정보를 Member 객체에 저장
Member mem = new Member();
mem.setId(request.getParameter("id"));
mem.setPass(request.getParameter("pass"));
mem.setName(request.getParameter("name"));
mem.setGender(Integer.parseInt(request.getParameter("gender")));
mem.setTel(request.getParameter("tel"));
mem.setEmail(request.getParameter("email"));
mem.setPicture(request.getParameter("picture"));
//2. 입력된 비밀번호와 db에 저장된 비밀번호 비교 =>db에서 읽기
String login = (String)request.getSession().getAttribute("login");
MemberDao dao = new MemberDao();
Member dbMem = dao.selectOne(login);
String msg = "비밀번호가 틀렸습니다.";
String url = "updateForm?id=" + mem.getId();
//3. 비밀번호가 같은 경우
if(mem.getPass().equals(dbMem.getPass())) {
if(dao.update(mem)) {
msg = "회원정보 수정이 완료되었습니다.";
url = "info?id=" + mem.getId();
} else {
msg = "회원 정보 수정 시 오류 발생.";
}
}
request.setAttribute("msg", msg);
request.setAttribute("url", url);
return "/view/alert.jsp";
}
'수업(국비지원) > JSP' 카테고리의 다른 글
| [JSP] MVC MODEL2 방식 - 회원 정보(list) (0) | 2023.04.19 |
|---|---|
| [JSP] MVC MODEL2 방식 - 회원정보 삭제(deletForm) (0) | 2023.04.19 |
| [JSP] MVC MODEL2 방식 - 회원 정보(info) (0) | 2023.04.19 |
| [JSP] MVC MODEL2 방식 - 회원관리(main) (0) | 2023.04.19 |
| [JSP] MVC MODEL2 방식 - 회원가입(join, loginForm) (0) | 2023.04.19 |