JSP_4강_2에 이어서 코드를 작성하자!
상세정보 클릭 시 회원의 상세정보가 출력되게 만들자

member_list.jsp에 get방식으로 선언한

=============================코드=============================
package com.member.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 com.member.model.MemberDAO;
import com.member.model.MemberDTO;
@WebServlet("/content.go")
public class ContentServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public ContentServlet() {
super();
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 상세 정보 버튼을 클릭 시 get 방식으로 넘어온 회원번호에 해당하는
// 회원의 상세정보를 DB에서 조회하여 조회된 정보를 view 페이지로 이동시키는 비지니스로직
int member_no = Integer.parseInt(request.getParameter("num").trim());
MemberDAO dao = MemberDAO.getInstance();
dao.contentList(member_no);
MemberDAO에
=============================코드=============================
public MemberDTO contentList(int num) {
MemberDTO dto = null;
// 1 ~ 2단계 : 오라클 드라이버 메모리로 로딩 및 DB 연결 작업 진행
openConn();
try {
// 3단계 : DB에 전송할 SQL문을 작성
sql = "select * from member where memno = ?";
// 4단계 : SQL문을 DB 전송객체에 인자로 전달
pstmt = con.prepareStatement(sql);
// 4-1단계 : 플레이스 홀더(?)에 데이터를 배정
pstmt.setInt(1, num);
// 5단계 : SQL문을 DB에 전송 및 실행
rs = pstmt.executeQuery();
if(rs.next()) {
dto = new MemberDTO();
dto.setNum(rs.getInt("memno"));
dto.setMemid(rs.getString("memid"));
dto.setMemname(rs.getString("memname"));
dto.setPwd(rs.getString("mempwd"));
dto.setAge(rs.getInt("age"));
dto.setMileage(rs.getInt("mileage"));
dto.setJob(rs.getString("job"));
dto.setAddr(rs.getString("addr"));
dto.setRegdate(rs.getString("regdate").substring(0,10));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 6단계 : DB에 연결되어 있던 자원을 종료하기
closeConn(rs, pstmt, con);
}
return dto;
}
다시 서블릿으로 가자
=============================코드=============================
package com.member.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 com.member.model.MemberDAO;
import com.member.model.MemberDTO;
@WebServlet("/content.go")
public class ContentServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public ContentServlet() {
super();
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 상세 정보 버튼을 클릭 시 get 방식으로 넘어온 회원번호에 해당하는
// 회원의 상세정보를 DB에서 조회하여 조회된 정보를 view 페이지로 이동시키는 비지니스로직
int member_no = Integer.parseInt(request.getParameter("num").trim());
MemberDAO dao = MemberDAO.getInstance();
// -------------------여기서부터 작성-------------------
MemberDTO conList = dao.contentList(member_no);
request.setAttribute("ContentList", conList);
RequestDispatcher rd = request.getRequestDispatcher("view/member_content.jsp");
rd.forward(request, response);
}
}
view -> member_content.jsp 파일을 생성하자
=============================코드=============================
<%@page import="com.member.model.MemberDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
MemberDTO dto = (MemberDTO)request.getAttribute("content");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align="center">
<hr width="30%" color="skyblue">
<h3><%=dto.getMemname() %> 회원님의 상세정보</h3>
<hr width="30%" color="skyblue">
<br><br>
<table border="1" cellspacing="0" width="650">
<%
if(dto == null){
%>
<tr>
<td colspan="2" align="center">
<h3>조회된 회원의 정보가 없습니다.</h3>
</td>
</tr>
<% } %>
<tr>
<th>회원 NO.</th>
<td><%=dto.getNum()%>
</td>
</tr>
<tr>
<th>회원 이름</th>
<td><%=dto.getMemname()%>
</td>
</tr>
<tr>
<th>회원 아이디</th>
<td><%=dto.getMemid()%>
</td>
</tr>
<tr>
<th>회원 비밀번호</th>
<td><%
if(dto.getPwd().length() != 0){
for(int i=1; i<dto.getPwd().length(); i++){
%>
*
<% }
} %>
</td>
</tr>
<tr>
<th>회원 나이</th>
<td><%=dto.getAge()%>
</td>
</tr>
<tr>
<th>보유 마일리지</th>
<td><%=dto.getMileage()%>
</td>
</tr>
<tr>
<th>회원 직업</th>
<td><%=dto.getJob()%>
</td>
</tr>
<tr>
<th>회원 주소</th>
<td><%=dto.getAddr()%>
</td>
</tr>
<tr>
<th>가입일자</th>
<td><%=dto.getRegdate()%>
</td>
</tr>
</table>
<br><br>
<input type="button" value="회원 목록"
onclick="history.back()">
<input type="button" value="회원 수정"
onclick="location.href='update.go?no=<%=dto.getNum() %>'">
<input type="button" value="회원 삭제"
onclick="location.href=">
</div>
</body>
</html>
main.jsp 에서 실행해보자!

상세정보 클릭!
