반응형
# MVC01_12 회원 상세보기
- 회원 리스트에서 회원의 아이디를 클릭하면 상세보기 할 수 있도록 할 예정.
## MemberListController.java Servlet 수정
- 회원 리스트 가져오는 항목에서 아이디에 태그 추가
out.println("<tr>");
out.println("<td>" + vo.getNum()+ "</td>");
// 상세보기
out.println("<td><a href='/MVC01/memberContent.do?num="+ vo.getNum()+"'>" + vo.getId()+ "</a></td>");
out.println("<td>" + vo.getPass()+ "</td>");
out.println("<td>" + vo.getName()+ "</td>");
out.println("<td>" + vo.getAge()+ "</td>");
out.println("<td>" + vo.getEmail()+ "</td>");
out.println("<td>" + vo.getPhone()+ "</td>");
out.println("<th><a href='/MVC01/memberDelete.do?num="+ vo.getNum()+"'>삭제</a></th>");
out.println("</tr>");
## MemberContentController.java Servlet 생성
- kr.bit.controller 우 클릭 > New > Servlet 클릭 후 MemberContentController 이름 설정 후 Next > URL Mapping의 경우 memberContent.do 입력 후 Next > Service 만 클릭 하여 Finish.
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("<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>" + vo.getAge() + "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>이메일</td>");
out.println("<td>" + vo.getEmail() + "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>전화번호</td>");
out.println("<td>" + vo.getPhone() + "</td>");
out.println("</tr>");
} else {
out.println("<tr>");
out.println("<td>일치하는 회원이 없습니다.</td>");
out.println("</tr>");
}
out.println("</table>");
out.println("</body>");
out.println("</html>");
}
}
## MemberDAO.java 에 회원 정보 가져오는 기능 추가
// 회원 상세보기 기능
public MemberVO memberContent(int num) {
String SQL = "select * from member where num = ?";
getConnect();
MemberVO vo = null;
try {
ps = conn.prepareStatement(SQL);
ps.setInt(1, num);
rs = ps.executeQuery();
if (rs.next()) {
// 데이터 존재 시 회원 한명의 데이터 묶기(VO)
num = rs.getInt("num");
String id = rs.getString("id");
String pass = rs.getString("pass");
String name = rs.getString("name");
int age = rs.getInt("age");
String email = rs.getString("email");
String phone = rs.getString("phone");
vo = new MemberVO(num, id, pass, name, age, email, phone);
}
} catch(Exception e) {
e.printStackTrace();
} finally {
dbClose();
}
return vo;
}
## 회원정보를 수정할 수 있는 형태로 변경
- 기존 코드에 input 태그 추가하여 진행
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("<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("</table>");
out.println("</body>");
out.println("</html>");
}
}
반응형
'인프런 강의 학습 > MVC 프레임워크_나프1탄' 카테고리의 다른 글
인프런 MVC 프레임워크는 내손에 26일차 : MVC01_14 MVC01 정리 및 redirect 기법 (0) | 2021.06.06 |
---|---|
인프런 MVC 프레임워크는 내손에 25일차 : MVC01_13 회원정보 수정하기 (0) | 2021.06.06 |
인프런 MVC 프레임워크는 내손에 23일차 : MVC01_11 회원 삭제하기 (0) | 2021.06.06 |
인프런 MVC 프레임워크는 내손에 22일차 : MVC01_9~10 회원리스트 가져오기, 회원리스트 보기 (0) | 2021.06.06 |
인프런 MVC 프레임워크는 내손에 21일차 : MVC01_8 회원가입 구현 (0) | 2021.06.06 |