게으른 완벽주의자의 개발자 도전기
DB와 연결하여 데이터 이동하기6(회원정보 수정하기) 본문
수정버튼 누르면 나이, 이메일, 연락처만 수정 되도록 한 뒤 다시 상세페이지로 돌아오도록 한다.
<input type="button" value = "수정하기" onclick="location.href='update_memberForm.me?id=${member.id}';">
1. controller
else if(command.equals("/update_memberForm.me")) {
- input 태그 데이터를 받는다.
String id= request.getParameter("id");
(★수정페이지 이동하려면 상세페이지의 정보가 필요하다
앞서 상세정보 보기 메소드를 만들었으니 이를 활용하여
memberDAO.memberDetail(id); 회원 상세보기를 실행할게
자료형은 DTO고 변수명은 member로 해서 실행할거야)
MemberDTO member = memberDAO.memberDetail(id);
위에서 받은 member자료 수정페이지로 내보낸다.
request.setAttribute("member", member);
page="update_member.jsp";
}
2. 수정페이지.jsp
<form action="update_member.me" method="post">
우리는 데이터 구분을 id로 하기로 했기에 hidden으로 servlet으로 보낸다.
<input type="hidden" value="${member.id }" name="id">
수정할 수 있도록 지정한 부분은 input태그를 이용해서 수정하도록 만든다.
<div>
아이디 : ${member.id }
</div>
<div>
비밀번호 : ${member.pw }
</div>
<div>
이름 : ${member.name }
</div>
<div></div>
<div>
나이 : <input type="text" value="${member.age }" name="age">
</div>
<div>
이메일 : <input type="text" value="${member.email }" name="email">
</div>
<div>
전화번호 :
<input type="text" value="${member.tell }" name="tell">
</div>
<div>
성별 : ${member.gender }
</div>
<input type="submit" value="수정하기" >
</form>
3. DAO
메소드 작성 방법은 두가지 중 하나 선택하면 된다.
i) public void updateMember(int age, String email, String tell, String id) {
ii) 나는 아래 방법을 선택했다.
public void updateMember(MemberDTO member) {
sql="UPDATE MEMBER "
+ "SET "
+ "AGE = ?"
+ ", EMAIL= ?"
+ ", TELL= ? "
+ "WHERE ID = ?";
try {
-자바와 DB를 연결
conn = JDBCUtil.getConnection();
-쿼리를 준비
stmt = conn.prepareStatement(sql);
- ?값 설정
stmt.setInt(1, member.getAge());
stmt.setString(2, member.getEmail());
stmt.setString(3, member.getTell());
stmt.setString(4, member.getId());
stmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
JDBCUtil.close(rs, stmt, conn);
}
}
4. Controller
else if(command.equals("/update_member.me")) {
-input태그에서 넘긴 데이터를 받는다.
String id= request.getParameter("id");
int age = Integer.parseInt(request.getParameter("age"));
String email = request.getParameter("email");
String tell = request.getParameter("tell");
메소드 실행방법도 두가지다
i) memberDAO.updateMember(age, email, tell, id);
ii) 나는 아래 방법을 선택함
MemberDTO member = new MemberDTO();
member.setId(id);
member.setAge(age);
member.setEmail(email);
member.setTell(tell);
memberDAO.updateMember(member);
조건. 팝업창으로 수정됐다고 뜨고 상세페이지로 가야한다.
request.setAttribute("id", id);
★알림창에서 상세페이지 넘어갈 때 id로 데이터 불러올 수 있기에 id보낸다
page="update_alert.jsp";
}
5. 알림창
<script type="text/javascript">
alert('회원정보가 수정되었습니다.');
location.href='member_detail.me?id=${id}';
</script>
'servlet jsp' 카테고리의 다른 글
Session Cookie (0) | 2022.08.06 |
---|---|
톰캣 오류 Tomcat v8.5 server at localhost has encountered a problem 2가지 방법 (0) | 2022.08.06 |
DB와 연결하여 데이터 이동하기5(회원정보 삭제) (0) | 2022.07.31 |
DB와 연결하여 데이터 이동하기4(회원 상세페이지) (0) | 2022.07.31 |
DB와 연결하여 데이터 이동하기3(회원 가입 페이지) (0) | 2022.07.31 |