-
Servlet - JSP MVC01 (5) - 회원상세보기Web/Servlet-JSP 2023. 5. 26. 09:35
회원 아이디를 누르면, 회원정보를 상세하게 볼 수 있는 페이지를 만들어보자.
1. memberListController에 아이디별 <a>태그 추가 및 컨트롤러 만들기
out.println("<td><a href='/MVC01/memberContent.do?num="+m.getNum()+"'>"+m.getId() +"</a></td>");
> 회원별 상세정보를 DB에서 꺼내와야한다 이때 회원을 구별하기 위한 정보가 필요하므로 num을 같이 넘기자.
> memberContent.do를 받을 컨트롤러 memberContentController 서블릿을 추가하자
2. num수집해서 DAO(모델)과 소통
int num = Integer.parseInt(request.getParameter("num")); MemberDAO dao = new MemberDAO(); MemberVO mem_inf = dao.memberContents(num);
memberListController에서 넘어온 num을 수집해서 DAO에 넘긴다.
DAO를 통해 num에 맞는 회원 레코드를 VO객체로 받아서 이를 출력
if(mem_inf != null) { pw.println("<tr>"); pw.println("<td colspan='2'>"+mem_inf.getName()+"회원의 상세보기</td>"); pw.println("</tr>"); pw.println("<tr>"); pw.println("<td>번호</td>"); pw.println("<td>"+mem_inf.getNum()+"</td>"); pw.println("</tr>"); pw.println("<tr>"); pw.println("<td>아이디</td>"); pw.println("<td>"+mem_inf.getId()+"</td>"); pw.println("</tr>"); pw.println("<tr>"); pw.println("<td>비밀번호</td>"); pw.println("<td>"+mem_inf.getPass()+"</td>"); pw.println("</tr>"); pw.println("<tr>"); pw.println("<td>이름</td>"); pw.println("<td>"+mem_inf.getName()+"</td>"); pw.println("</tr>"); ////
3. DB에서 회원 레코드 꺼내서 전달하기
public MemberVO memberContents(int num) { MemberVO content=null; String sql = "select * from member where num=?"; getConnect(); try { ps = conn.prepareStatement(sql); ps.setInt(1, num); rs =ps.executeQuery(); if(rs.next()) { 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"); content = new MemberVO(num,id,pass,name,age,email,phone); }else { throw new Exception(); } }catch(Exception e) { e.printStackTrace(); }finally { dbClose(); } return content; }
> num을 조건으로 회원 레코드를 읽어와서 rs를 통해 VO객체 담고 이를 return
이제 회원리스트에서 id를 누르면 아래와 같이 나온다.
4. 상세정보 창에 나온 나이, 이메일, 전화번호는 추후에 수정할 수 있도록 텍스트 박스로 수정하기
pw.println("<tr>"); pw.println("<td>나이</td>"); pw.println("<td><input type='text' name='age' value='"+mem_inf.getAge()+"'></td>"); pw.println("</tr>"); pw.println("<tr>"); pw.println("<td>이메일</td>"); pw.println("<td><input type='text' name='email' value='"+mem_inf.getEmail()+"'></td>"); pw.println("</tr>"); pw.println("<tr>"); pw.println("<td>전화번호</td>"); pw.println("<td><input type='text' name='phone' value='"+mem_inf.getPhone()+"'></td>"); pw.println("</tr>");
- input태그에 text타입을 추가하면 된다. 파라미터명은 VO와 일치시켜두자
정리: 상세페이지라는 새로운 페이지를 만든 것 빼고는 앞에서 했던 흐름이 계속 반복된다.
요청 -> 컨트롤러 -> VO <- DAO -> 응답
'Web > Servlet-JSP' 카테고리의 다른 글
Servlet-JSP MVC02(1) - 간단 JSP (0) 2023.06.12 Servlet - JSP MVC01 (6) 회원정보수정하기 (0) 2023.05.26 Servlet-JSP MVC01 (4) - 회원삭제 (0) 2023.05.26 Servelt-JSP MVC01 (3) - 회원리스트 가져오기 (0) 2023.05.26 Servlet-JSP MVC01 (2) - Servlet과 Model 연결 (회원관리테이블) (0) 2023.05.24