JSP_4강_3_Member테이블_DAO_회원 상세정보

열라뽕따히·2024년 3월 19일

JSP

목록 보기
20/43

JSP_4강_2에 이어서 코드를 작성하자!

상세정보 클릭 시 회원의 상세정보가 출력되게 만들자



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

content.go 서블릿을 만들자!


=============================코드=============================

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에

contentList() 메서드를 만들자!


=============================코드=============================

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 에서 실행해보자!


=============================실행=============================

상세정보 클릭!

0개의 댓글