반응형
# MVC01_13 회원정보 수정하기
- 회원정보 수정 기능의 경우 form으로 묶어서 정보가 전송될수 있도록 할 예정
## 버튼 추가.
- 수정하기, 취소, 리스트로 돌아가기 버튼 추가.
out.println("<tr>");
out.println("<td colspan='2' align='center'>");
out.println("<input type='submit' value='수정하기' class='btn btn-primary'/>");
out.println("<input type='reset' value='취소' class='btn btn-warning'/>");
out.println("<input type='button' value='리스트' class='btn'/>");
out.println("</td>");
out.println("</tr>");
## form 추가
- form 추가 및 수정할 데이터 외에 기준이 될 데이터 input hidden 추가.
package kr.bit.controller;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import kr.bit.model.MemberDAO;
import kr.bit.model.MemberVO;
@WebServlet("/memberContent.do")
public class MemberContentController extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int num = Integer.parseInt(request.getParameter("num"));
MemberDAO dao = new MemberDAO();
MemberVO vo = dao.memberContent(num);
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<meta name='viewport' content='width=device-width, initial-scale=1'>");
out.println("<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css'>");
out.println("<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js'></script>");
out.println("<script src='https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js'></script>");
out.println("</head>");
out.println("<body>");
out.println("<form action='/MVC01/memberUpdate.do' method='post'>");
out.println("<td><input type='hidden' name='num' value='" + vo.getNum() + "'></input></td>");
out.println("<table border='1' class='table table-bordered'>");
if (vo != null) {
// vo에 값 존재 시 상세보기 페이지 생성
out.println("<tr>");
out.println("<td colspan='2'>" + vo.getName() + "의 상세보기</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>번호</td>");
out.println("<td>" + vo.getNum() + "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>아이디</td>");
out.println("<td>" + vo.getId() + "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>비밀번호</td>");
out.println("<td>" + vo.getPass() + "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>나이</td>");
out.println("<td><input type='text' name='age' value='" + vo.getAge() + "'></input></td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>이메일</td>");
out.println("<td><input type='text' name='email' value='" + vo.getEmail() + "'></input></td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>전화번호</td>");
out.println("<td><input type='text' name='phone' value='" + vo.getPhone() + "'></input></td>");
out.println("</tr>");
} else {
out.println("<tr>");
out.println("<td>일치하는 회원이 없습니다.</td>");
out.println("</tr>");
}
out.println("<tr>");
out.println("<td colspan='2' align='center'>");
out.println("<input type='submit' value='수정하기' class='btn btn-primary'/>");
out.println("<input type='reset' value='취소' class='btn btn-warning'/>");
out.println("<a href='/MVC01/memberList.do'>리스트</a>");
out.println("</td>");
out.println("</tr>");
out.println("</table>");
out.println("</form>");
out.println("</body>");
out.println("</html>");
}
}
## MemberUpdateController.java Servlet 생성
package kr.bit.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import kr.bit.model.MemberDAO;
import kr.bit.model.MemberVO;
@WebServlet("/memberUpdate.do")
public class MemberUpdateController extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
// 1. 파라미터 수집(VO)
int num = Integer.parseInt(request.getParameter("num"));
int age = Integer.parseInt(request.getParameter("age"));
String email = request.getParameter("email");
String phone = request.getParameter("phone");
MemberVO vo = new MemberVO();
vo.setNum(num);
vo.setAge(age);
vo.setEmail(email);
vo.setPhone(phone);
MemberDAO dao = new MemberDAO();
int cnt = dao.memberUpdate(vo);
if (cnt > 0) {
response.sendRedirect("/MVC01/memberList.do");
} else {
throw new ServletException("not update");
}
}
}
## MemberDAO 에 회원정보 수정기능 추가
// 회원정보 수정기능
public int memberUpdate(MemberVO vo) {
String SQL = "update member set age = ?, email = ?, phone = ? where num = ?";
getConnect();
int cnt = -1;
try {
ps = conn.prepareStatement(SQL);
ps.setInt(1, vo.getAge());
ps.setString(2, vo.getEmail());
ps.setString(3, vo.getPhone());
ps.setInt(4, vo.getNum());
cnt = ps.executeUpdate();
} catch(Exception e) {
e.printStackTrace();
}finally {
dbClose();
}
return cnt;
}
## 작동 확인
- 아래와같이 정상 수정 확인.


반응형
'인프런 강의 학습 > MVC 프레임워크_나프1탄' 카테고리의 다른 글
인프런 MVC 프레임워크는 내손에 27일차 : MVC02_01 JSP 구성요소 알아보기 (0) | 2021.06.07 |
---|---|
인프런 MVC 프레임워크는 내손에 26일차 : MVC01_14 MVC01 정리 및 redirect 기법 (0) | 2021.06.06 |
인프런 MVC 프레임워크는 내손에 24일차 : MVC01_12 회원 상세보기 (0) | 2021.06.06 |
인프런 MVC 프레임워크는 내손에 23일차 : MVC01_11 회원 삭제하기 (0) | 2021.06.06 |
인프런 MVC 프레임워크는 내손에 22일차 : MVC01_9~10 회원리스트 가져오기, 회원리스트 보기 (0) | 2021.06.06 |