-
[JSP] login 2-3JSP 2021. 8. 3. 13:05
heaer.jsp 수정
memberlist 를 추가할건데 일단 header를 수정하자.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style> a{ text-decoration : none; } td { border : 1px solid #444444; width : 200px; text-align : center; } .login:hover{ background-color : #AFC7F9; } </style> </head> <body> <table align="center"> <tr> <!-- non-member page --> <c:if test="${empty loginUser}"> <td></td> <td></td> <td><a href="login.do">log-in</a></td> <td style="width:300px;"> member registration <br> <span style="color:red">(can use only manager)</span> </td> <td> member's page <br> <span style="color:red">(can use only member)</span> </td> <td> member's list <br> <span style="color:red">(can use only manager)</span> </td> </c:if> <!-- member / manager page --> <c:if test="${!empty loginUser}"> <td>${loginUser.name}, hello!</td> <td>level : ${loginUser.lev}</td> <td class="login"><a href="logout.do">log-out</a></td> <c:choose> <c:when test="${result==2}"> <td class="login" style="width:300px;"><a href="custom.do">member registration </a></td> </c:when> <c:when test="${result==3}"> <td style="width:300px;"> member registration <br> <span style = "color:red">(can use only manager)</span> </td> </c:when> </c:choose> <td class="login"> <a href="mypage.do">member's page</a> </td> <c:choose> <c:when test="${result==2}"> <td class ="login"><a href = "memberlist.do">member's list</a></td> </c:when> <c:when test="${result==3}"> <td>member's list<br> <span style = "color:red">(can use only manager)</span></td> </c:when> </c:choose> </c:if> </tr> </table> </body> </html>
MemberList.java (/memberList.do)
get방식으로 넘어올 것이다.
로그인을 하면 session 정보에 들어가있으니, session 정보를 이용하여 manager인지 chk 한다.
@WebServlet("/memberlist.do") public class MemberList extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); //VO객체에 담겨있는 session을 loginUser 에 저장했었던 것을 가져오기 EmployeesVO emp = (EmployeesVO)session.getAttribute("loginUser"); //loginUser 저장할때 level 도 저장했었음 int result = (Integer)session.getAttribute("result"); if(emp!=null && result==2) { //manager인 상태 //DB불러오기 EmployeesDAO memberDAO = EmployeesDAO.getInstance(); //DAO에서 메소드만들기 }else { //manager가 아니면 response.sendRedirect("login.do"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }
EmployeesDAO 에서 selectMember 메소드 만들기
조회된 결과가 여러개인데, 그것을 담아서 servlet 으로 보내서 그 정보를 서블릿에서 회원정보를 출력할 수 있는 상태로 만들어야한다.
select에서 조회된 정보를 VO에서 저장해서 table에 있는 만큼 조회해서 반환해야한다.
while문을 한번 실행할 때마다 정보를 저장해두고 또 while 문을 실행하면 그정보를 또 저장하고 해야한다.
employeesVO 배열을 만들어서 거기에 저장하면된다. (회원이 정확히 몇명인지 모르니까 Arraylist 사용)
void하면 여기서만 쓸수있으니까 void 말고 반환타입을 ArrayList<EmployeesVO> 이다.
package com.magic.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; import com.magic.dto.EmployeesVO; .... public ArrayList<EmployeesVO> selectMember() { EmployeesVO member=null; ArrayList<EmployeesVO> memberlist = new ArrayList<>(); Connection conn = null; String sql = "select * from employees"; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); while(rs.next()) { //rs 에서 받아온 것을 vo 객체에 넣어주기 member = new EmployeesVO(); member.setId(rs.getString("id")); member.setName(rs.getString("name")); member.setLev(rs.getString("lev")); member.setPass(rs.getString("pass")); member.setEnter(rs.getDate("enter")); member.setGender(rs.getInt("gender")); member.setPass(rs.getString("phone")); //방금 입력한 값들을 저장하기 memberlist.add(member); } }catch(Exception e) { e.printStackTrace(); }finally { try { if(rs!=null) rs.close(); if(pstmt!=null) rs.close(); if(conn!=null) rs.close(); }catch(Exception e) { e.printStackTrace(); } } return memberlist; } .... }
MemberList.java (/memberlist.do)
여기서는 generic 을 타입을 이용하여 ArrayList<EmployeesVO> 랑 List<EmployeesVO> 는 같은 타입이다.
memberlist 를 다음 페이지에서 사용해야하니까 request 영역에 저장해두자.
package com.magic.controller; import java.io.IOException; import java.util.List; 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 javax.servlet.http.HttpSession; import com.magic.dao.EmployeesDAO; import com.magic.dto.EmployeesVO; @WebServlet("/memberlist.do") public class MemberList extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); EmployeesVO emp = (EmployeesVO)session.getAttribute("loginUser"); int result = (Integer)session.getAttribute("result"); if(emp!=null && result==2) { EmployeesDAO memberDAO = EmployeesDAO.getInstance(); List<EmployeesVO> memberlist = memberDAO.selectMember(); request.setAttribute("memberlist",memberlist); request.setAttribute("message", "사원정보 조회"); RequestDispatcher rd = request.getRequestDispatcher("memberlist.jsp"); rd.forward(request, response); }else { response.sendRedirect("login.do"); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }
memberlist.jsp
servlet 에 있는 회원정보 memberlist 를 가져온다.
몇명인지 모르니까 반복문 사용
package com.magic.controller; import java.io.IOException; import java.util.List; 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 javax.servlet.http.HttpSession; import com.magic.dao.EmployeesDAO; import com.magic.dto.EmployeesVO; @WebServlet("/memberlist.do") public class MemberList extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); EmployeesVO emp = (EmployeesVO)session.getAttribute("loginUser"); int result = (Integer)session.getAttribute("result"); if(emp!=null && result==2) { EmployeesDAO memberDAO = EmployeesDAO.getInstance(); List<EmployeesVO> memberlist = memberDAO.selectMember(); request.setAttribute("memberlist",memberlist); request.setAttribute("message", "사원정보 조회"); RequestDispatcher rd = request.getRequestDispatcher("memberlist.jsp"); rd.forward(request, response); }else { response.sendRedirect("login.do"); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ include file="header.jsp" %> <% %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <table align="center"> <tr> <td colspan="6" align="center"> <h3>member's list</h3> <div style="color:red">%{message}</div> </td> </tr> <tr> <td align="center">ID</td> <td align="center">PASSWORD</td> <td align="center">NAME</td> <td align="center">LEVEL</td> <td align="center">GENDER</td> <td align="center">PHONE NUMBER</td> </tr> <c:forEach var="emp" items="${memberlist}"> <tr> <td>${emp.id}</td> <td>${emp.pass}</td> <td>${emp.name}</td> <td> <c:choose> <c:when test='${emp.lev=="A"}'>manager</c:when> <c:otherwise>user</c:otherwise> </c:choose> </td> <td> <c:choose> <c:when test='${emp.gender=="1"}'>man</c:when> <c:otherwise>woman</c:otherwise> </c:choose> </td> <td>${emp.phone}</td> </tr> </c:forEach> <tr> <td colspan="6" align="center"> <input type="button" value="go to the main page" onclick="location.href='main.jsp'"> </td> </tr> </table> </body> </html>
728x90'JSP' 카테고리의 다른 글
[JSP] p543 (0) 2021.08.04 [JSP] 파일 업로드 (0) 2021.08.03 [JSP] login2-2 (0) 2021.08.02 [JSP] login2-1 (0) 2021.07.29 [JSP] login1 (0) 2021.07.27