ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JSP] login 2-3
    JSP 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
Designed by Tistory.