728x90
반응형
수정하기 전 기존 내용을 화면에 출력하기
1. id 파라미터 조회
2. login 정보 조회.
- 로그아웃 : "로그인 하세요" 출력. loginForm.jsp 페이지 이동.
3. 내정보가 아니 면서,admin도 아닌 경우
- 내정보만 수정 가능합니다. 출력. main.jsp 페이지 이동
4. id 정보를 db에서 읽어 Member 객체에 저장
5. Member 객체를 화면에 출력.
<%@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/updateForm.jsp
수정하기 전 기존 내용을 화면에 출력하기
1. id 파라미터 조회
2. login 정보 조회.
- 로그아웃 : "로그인 하세요" 출력. loginForm.jsp 페이지 이동.
3. 내정보가 아니 면서,admin도 아닌 경우
- 내정보만 수정 가능합니다. 출력. main.jsp 페이지 이동
4. id 정보를 db에서 읽어 Member 객체에 저장
5. Member 객체를 화면에 출력.
--%>
<%
String id = request.getParameter("id");
String login = (String)session.getAttribute("login");
if(login == null ) { %> <%-- 로그인이 안된 경우 --%>
<script>
alert("로그인 하세요")
location.href="loginForm.jsp"
</script>
<% } //로그인이 된 경우. 관리자가 아니고 다른사람정보 조회 불가
else if (!id.equals(login) && !login.equals("admin")) { %>
<script>
alert("내 정보 수정만 가능합니다.")
location.href="main.jsp"
</script>
<% } else { //정상적인 거래. 본인거래, 관리자인 경우 다른 사용자 정보
Member mem = new MemberDao().selectOne(id);
%>
<!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;
}
}
function win_passchg() {
var op = "width=500, height=250, left=50,top=150";
open("passwordForm.jsp","",op);
}
function win_upload(){
var op = "width=500,height=150,left=50, top=150";
open("memberimg.jsp","",op);
}
</script>
</head><body>
<form action="update.jsp" name="f" method="post"
onsubmit="return inputcheck(this)">
<input type="hidden" name="picture" value="<%=mem.getPicture() %>">
<table><caption>회원 정보 수정</caption>
<tr><td rowspan="4" valign="bottom">
<img src="picture/<%=mem.getPicture() %>" width="100" height="120" id="pic"><br>
<font size="1"><a href="javascript:win_upload()">사진수정</a></font>
</td><th>아이디</th>
<td><input type="text" name="id" readonly value="<%=mem.getId() %>"></td></tr>
<tr><th>비밀번호</th><td><input type="password" name="pass" ></td></tr>
<tr><th>이름</th>
<td><input type="text" name="name" value="<%=mem.getName() %>"></td></tr>
<tr><th>성별</th>
<td><input type="radio" name="gender" value="1"<%=mem.getGender() == 1?"checked":"" %>>남
<input type="radio" name="gender" value="2"<%=mem.getGender() == 2?"checked":"" %>>여</td></tr>
<tr><th>전화번호</th>
<td colspan="2"><input type="text" name="tel" value="<%=mem.getTel() %>"></td></tr>
<tr><th>이메일</th>
<td colspan="2"><input type="text" name="email" value="<%=mem.getEmail() %>"></td></tr>
<tr><td colspan="3"><input type="submit" value="회원수정">
<% if(!login.equals("admin") || id.equals("admin")) { %>
<input type="button" value="비밀번호수정" onclick="win_passchg()">
<% } %></td></tr>
</table></form></body></html>
<% } %>
1. 모든 파라미터 정보를 Member 객체에 저장
2. 입력된 비밀번호와, db에 저장된 비밀번호 비교 => db에서 읽기
관리자인경우 관리자비밀번호로 비교하기.
- 같지 않은 경우 : "비밀번호 오류" 메세지 출력 updateForm.jsp 페이지 이동
3. 비밀번호가 같은 경우
파라미터를 저장하고 있는 Member 객체를 이용하여 db 정보 수정.
boolean MemberDao.update(Member)
결과가 false면 수정실패 메세지 출력후 , updateForm.jsp 페이지 이동
결과가 true 면 수정성공 info.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/update.jsp
1. 모든 파라미터 정보를 Member 객체에 저장
2. 입력된 비밀번호와, db에 저장된 비밀번호 비교 => db에서 읽기
관리자인경우 관리자비밀번호로 비교하기.
- 같지 않은 경우 : "비밀번호 오류" 메세지 출력 updateForm.jsp 페이지 이동
3. 비밀번호가 같은 경우
파라미터를 저장하고 있는 Member 객체를 이용하여 db 정보 수정.
boolean MemberDao.update(Member)
결과가 false면 수정실패 메세지 출력후 , updateForm.jsp 페이지 이동
결과가 true 면 수정성공 info.jsp 페이지 이동
--%>
<%
// 1. 모든 파라미터 정보를 Member 객체에 저장
request.setCharacterEncoding("UTF-8");
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)session.getAttribute("login");
MemberDao dao = new MemberDao();
Member dbmem = dao.selectOne(login);
//입력된 비밀번호 : mem.getPass()
//db 비밀번호 : dbmem.getPass()
String msg = "비밀번호가 틀렸습니다.";
String url = "updateForm.jsp?id=" + mem.getId();
if (mem.getPass().equals(dbmem.getPass())) {
//3. 비밀번호가 같은 경우
if(dao.update(mem)) {
msg = "수정성공";
url = "info.jsp?id=" + mem.getId();
} else {
msg = "수정실패";
}
}
%>
<script>
alert('<%=msg %>')
location.href="<%=url %>"
</script>
728x90
반응형
'study > MVC' 카테고리의 다른 글
[MVC] 16. MVC Model1 방식 - 회원가입 (회원정보보기) (0) | 2022.04.08 |
---|---|
[MVC] 16. MVC Model1 방식 - 회원가입 (로그아웃) (0) | 2022.04.08 |
[MVC] 16. MVC Model1 방식 - 회원가입 (회원관리) (0) | 2022.04.08 |
[MVC] 16. MVC Model1 방식 - 회원가입 (로그인) (0) | 2022.04.07 |
[MVC] 16. MVC Model1 방식 - 회원가입 (회원가입, 회원등록) (0) | 2022.04.07 |