① 아이디로 검색해서 해당 아이디에 맞는 정보를 불러오기
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 MyInfo
*/
@WebServlet("/MyInfo")
public class MyInfo extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MyInfo() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("euc-kr");
response.setCharacterEncoding("euc-kr");
response.setContentType("text/html; charset = EUC-KR");
String id = request.getParameter("id");
MemberService service = new MemberService();
memberVo m = service.getMember(id);
request.setAttribute("m", m);
RequestDispatcher dis = request.getRequestDispatcher("/member/myinfo.jsp");
dis.forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
● String id = request.getParameter("id");
form 파라미터를 불러들이는 메소드는 request.getParameter
● MemberService service = new MemberService();
MemberService에 id 검색해서 정보 보여주는 메서드가 있으니까 MemberService 객체 생성
● memberVo m = service.getMember(id);
service 객체에 getMember(id); 를 불러서 vo 객체에 담아준다
● 그 다음에는 검색 된 결과를 뷰 페이지에 뿌려야겠즤 근데 그 결과는 현재 m 에 있는데 서버가 클라이언트에게 response(응답)로 보여주려면 그 결과를 request 에 담아야 한다.
● request.setAttribute("m", m);
그 담는 방식이 바로 setAttribute(뷰페이지에서 부를 이름, 값); 형태이다. memberVo m의 값을 "m" 이라고 불러서 사용하겠다.
● RequestDispatcher dis = request.getRequestDispatcher("/member/myinfo.jsp");
dis.forward(request, response);
보여주는 페이지와 forward 방식으로 뷰페이지에 뿌리기.
② 저장 되어 있는 값을 뷰 페이지에 보여주기
<%@ 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> ${m.id }님의 정보</h3>
id : ${m.id }<br/>
pwd : ${m.pwd }<br/>
name : ${m.name }<br/>
email : ${m.email }<br/>
<a href = "/webApp2/Editmyinfo?id=${m.id }"> 내 정보 수정 </a><br/>
<br/>
<a href = "/webApp2/del?id=${m.id }">탈퇴하기</a>
</body>
</html>
● jsp에서 자바의 형식을 표현 하는 것으로 ${ } : EL(Expression Language) 을 사용 한다. 원래 자바에서는 memberVo에서 private 변수의 값을 가져 올 때는 getId로 그 값을 가져 왔는데 jsp 자체에서는 getId 가 아닌 EL(Expression Language)을 이용해서 가져오는 것을 허용하였다. 그래서 무조건 vo에서 getter/setter 를 꼭 만들어 주어야 나중에 jsp 에서 가져온 값이 헷갈리지 않는다.
● 아까 ① 에서 만들어 준 request.setAttribute("뷰 페이지에서 부를 이름 ", 가져 올 값); 로 인해 뷰 페이지에서 부를 이름 m을 입력 해 주었고 vo객체였던 m에서 입력 받을 값인 id를 .id 로 불러 왔다.
● <a href = "/webApp2/Editmyinfo?id=${m.id }"> 내 정보 수정 </a>
'내 정보 수정' 을 클릭하면 내 정보 수정하게 하는 링크(href)를 걸어 놓았다. 이 링크는 Editmyinfo servlet 에서 ? 찾을껀데 id 가 ${m.id } 이것인 사람 정보를 찾을 것이다.
내 정보 수정은 아래에 포스팅 했다.
● <a href = "/webApp2/del?id=${m.id }">탈퇴하기</a>
이것도 마찬가지고 '탈퇴하기' 를 클릭하면 경로를 따라 갈 껀데, 그 경로는 del servlet 이고 ? 찾을 껀데 id 가 ${m.id } 입력을 받은 값을 찾을 것이다.
회원 탈퇴 역시 아래에 포스팅 했다.
'MVC > jsp & servlet' 카테고리의 다른 글
[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 |
JSP 와 Servlet (0) | 2023.03.27 |