-
Servlet - JSP MVC01 (6) 회원정보수정하기Web/Servlet-JSP 2023. 5. 26. 11:51
회원정보 수정하기를 추가하고 mvc01을 마무리
1. 회원상세페이지(MemberContentController)에 수정, 취소, 돌아가기 추가 및 필요데이터 넘기기
pw.println("<input type= 'submit' value='수정'/>"); pw.println("<input type= 'reset' value='취소'/>"); pw.println("<a href ='/MVC01/memberList.do'>돌아가기</a>");
> 수정하기 버튼을 누르면, 수정 요청을 받는 컨트롤러에 새로운 나이, 이메일, 휴대폰번호 정보가 함께 넘어가야한다.
> 따라서 수정버튼은 submit으로 해두고, 회원상세보기 테이블 전체를 감싸도록 form태그를 추가하자
pw.println("<form action='/MVC01/memberUpdate.do' method='post'>");
> submit버튼을 누르면 memberUpdate.do에 post 방식으로 정보가 넘어간다.
> 이름,이메일,전화번호는 중복값을 허용하기 때문에 회원레코드를 식별하기 위해서 기본키인 num을 넘겨야한다.
> 하지만 num칸에 input text태그를 추가하면, num도 수정될 수도 있다. 따라서 정보는 넘기되, 수정은 못하도록 해야한다.
pw.println("<input type='hidden' name='num' value='"+mem_inf.getNum()+"' />");
이렇게 hidden타입을 사용하면, 수정은 못하지만, 정보는 넘길 수 있다.
- 취소버튼은 form태그를 통해 자동으로 reset이 실행되므로, 수정과 돌아가기만 만들면된다.
- 먼저 수정하기를 수행할 서블릿과 DAO 메서드를 만들자.
2. update 수행할 서블릿 만들기
//파라미터 수집 4개 int num = Integer.parseInt(request.getParameter("num")); int age = Integer.parseInt(request.getParameter("age")); String email = request.getParameter("email"); String phone = request.getParameter("phone");
- form태그를 통해 post방식으로 요청이 넘어가면, 서블릿이 파라미터를 수집 -> VO객체에 담아서 넘기기 -> VO를 통해 DAO 쿼리 실행
- 업데이트 성공 후 다시 멤버 리스트로 돌아가도록 Redirect
response.sendRedirect("/MVC01/memberList.do");
3. DAO 업데이트
public int MemberUpdate(MemberVO modify) { String sql ="update member set age=?,email=?,phone=? where num=?"; getConnect(); int cnt=-1; try { ps = conn.prepareStatement(sql); ps.setInt(1, modify.getAge()); ps.setString(2, modify.getEmail()); ps.setString(3, modify.getPhone()); ps.setInt(4, modify.getNum()); cnt = ps.executeUpdate(); }catch(Exception e) { e.printStackTrace(); }finally { dbClose(); } return cnt; }
- sql파라미터에 컨트롤러를 통해 VO에 담겨서 넘어온 값을 ps를 통해 집어넣고, 업데이트를 실행한다.
- 업데이트에 성공하면 1아니면 0을 반환하고 이를 컨트롤러에 넘기자.
*업데이트 성공여부에 따라 redirect결정
if(cnt>0) { //업데이트 성공 response.sendRedirect("/MVC01/memberList.do"); //리스트로 돌아가기 //DB 서버 실행되있어야함 }else {//업데이트 실패 throw new ServletException("not update"); }
4. 돌아가기버튼
<a>태그를 통해 다시 List로 돌아가도록 설정해두자
pw.println("<a href ='/MVC01/memberList.do'>돌아가기</a>");
수정이 적용되는 것을 볼 수 있다.
정리: 업데이트를 했다.
상세정보에서 업데이트 요청시 필요정보 포함하기: input태그, hidden, form태그를 이용한 post
얻어온
'Web > Servlet-JSP' 카테고리의 다른 글
Servlet-JSP MVC02(2) - JSP와 Servlet의 관계 (0) 2023.06.12 Servlet-JSP MVC02(1) - 간단 JSP (0) 2023.06.12 Servlet - JSP MVC01 (5) - 회원상세보기 (0) 2023.05.26 Servlet-JSP MVC01 (4) - 회원삭제 (0) 2023.05.26 Servelt-JSP MVC01 (3) - 회원리스트 가져오기 (0) 2023.05.26