① 서브렛 페이지를 이용하여 수정할 입력값을 받을 doGet 와 수정을 누르면 데이터가 수정 될 doPost를 구현 해라
package memeber.controller;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
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 member.MemberService;
import member.memberVo;
/**
* Servlet implementation class Editmyinfo
*/
@WebServlet("/Editmyinfo")
public class Editmyinfo extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Editmyinfo() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
//수정은 수정폼을 달라는 것 하나와 수정 후 수정 완료를 요구하는 것 하나 가 필요하다 .
// 두개의 request 가 필요한 것
//폼에 기존 데이터 출력 => 검색
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//id 로 검색 해서 검새결과를 request 에 담아서 forward()/member/edit.jsp로 이동 한다.
String id = request.getParameter("id");
//db에서 아이디로 검색해야 하니까. 멤버 서비스 객체 하나 생성하고
MemberService service = new MemberService();
//결과를 담을 vo 객체도 하나 생성 해준다.
memberVo m = service.getMember(id);
//위에 두줄은 db에서 id로 검색한 결과를 반환 하게 하는 구문
//검색한 정보를 request에 담아~~ request에 담는 구문은 setAttribute
//내가 memberVo m 이렇게 정의한걸 뷰페이지에서는 vo 라고 부르겠다~ 아무거나 해도 된다
request.setAttribute("vo", m);
RequestDispatcher dis = request.getRequestDispatcher("/member/edit.jsp");
dis.forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
String name = request.getParameter("name");
MemberService service = new MemberService();
service.Editmyinfo(new memberVo(id,pwd,name,null));
response.sendRedirect("/webApp2/MyInfo?id=" +id);
}
}
② 정보 수정 뷰 페이지를 구현
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3> ${vo.id }님의 정보수정 </h3>
<form action = "/webApp2/Editmyinfo" method = "post">
<!-- 수정 완료 되었으니 수정을 해달라는 request 를 보낼 곳은 바로바로 "/webApp2/Editmyinfo" -->
<table border = "1">
<!-- 여기서 value는 클라이언트가 입력하는 입력값이다
아까 Editmyinfo servlet에서 doGet을 통해 받아온 것을 value 에 넣어주면
클라이언트가 입력한 값이 바로 그 servlet 으로 전달 되어 질거다 -->
<tr><th>ID</th><td><input type = "text" name = "id" value = "${vo.id }" readonly></td></tr>
<tr><th>PWD</th><td><input type = "password" name = "pwd" value = "${vo.pwd }"></td></tr>
<tr><th>NAME</th><td><input type = "text" name = "name" value = "${vo.name }"></td></tr>
<tr><th>EMAIL</th><td><input type = "text" name = "email" value = "${vo.email }" readonly></td></tr>
<tr><th>수정</th>
<td><input type = "submit" value = "수정">
<input type = "button" value = "취소" onclick= "javascrip:location.href = '/webApp2/index.jsp'">
<!-- 취소버튼을 누르면 다시 index 페이지로 돌아오게 한다.-->
</td></tr>
</form>
</body>
</html>
'MVC > jsp & servlet' 카테고리의 다른 글
[jsp와 servlet] 익명 방명록 만들기 ① Model 생성 (0) | 2023.03.29 |
---|---|
[jsp와 servlet] jsp와 servlet을 이용한 회원 탈퇴 (0) | 2023.03.27 |
[jsp와 servlet] jsp와 servlet를 이용한 내 정보 검색 (0) | 2023.03.27 |
[jsp와 servlet] servlet doGet과 doPost를 이용하여 회원가입 (0) | 2023.03.27 |
[jsp와 servlet] 오라클과 연동 후 service 페이지 구현 (0) | 2023.03.27 |