ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JSP] login2-2
    JSP 2021. 8. 2. 14:32

     

     

     

    mypageServlet.java (mypage.do)

    로그인이 완료된다면, mypage.do 페이지로 이동할 수 있도록 header.jsp 에서 설정해놨다.

    로그인이 완료되어있는 상태인지 확인하기 위해서 session 정보를 이용하여 doGet 메소드에서 확인하자.

    package com.magic.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 javax.servlet.http.HttpSession;
    
    import com.magic.dao.EmployeesDAO;
    import com.magic.dto.EmployeesVO;
    
    @WebServlet("/mypage.do")
    public class MypageServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		//session 정보가 있는지 확인하기
    		HttpSession session = request.getSession();
    		EmployeesVO emp = (EmployeesVO)session.getAttribute("loginUser");
    		if(emp!=null) {
    			RequestDispatcher dispatcher = request.getRequestDispatcher("mypage.jsp");
    			dispatcher.forward(request, response);
    		}
    	}
    
    	
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		request.setCharacterEncoding("UTF-8");
    		response.setContentType("text/html;charset=UTF-8");
    		
    		EmployeesVO member = new EmployeesVO();
    		
    		member.setPhone(request.getParameter("phone"));
    		member.setGender(Integer.parseInt(request.getParameter("gender")));
    		member.setLev(request.getParameter("lev"));
    		member.setPass(request.getParameter("pwd"));
    		member.setName(request.getParameter("name"));
    		member.setId(request.getParameter("id"));
    		
    		EmployeesDAO eDao = EmployeesDAO.getInstance();
    		eDao.updateMember(member);
    
    		//수정완료
    		
    		HttpSession session = request.getSession();
    		
    		 //방금 updqte한 member를 session에 담아두기.
    		request.setAttribute("member", member);
    		request.setAttribute("message", "회원정보가 수정됐다");
    		
    		EmployeesVO emp = eDao.getMember(member.getId());
    		session.setAttribute("loginUser",emp);//session에 저장하기 
    		
    		int result = eDao.userCheck(member.getId(), member.getPass(), member.getLev());
    		session.setAttribute("result", result);
    		RequestDispatcher rd = request.getRequestDispatcher("joinsuccess.jsp");
    		rd.forward(request, response);
    	}
    
    }

     

     

     

    joinsuccess.jsp

    mypageservlet.java 에 session에서 emp와 result

    request 에서 message -> ${message}

    request 에서 member -> ${member.id}

    lev는 lev속성${member.lev}으로해도 되고 result<c:choose> </c:choose> 로 해도된다.

     

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ include file="header.jsp" %>
    <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<table align="center">
    		<tr>
    			<td colspan="2">
    				<span>success join! your information</span>
    				<div style="color:red;">${message}</div>
    			</td>
    		</tr>
    		<tr>
    			<td>ID</td>
    			<td>${member.id}</td>
    		</tr>
    		<tr>
    			<td>PASSWORD</td>
    			<td>${member.pass}</td>
    		</tr>
    		<tr>
    			<td>PHONE NUMBER</td>
    			<td>${member.phone}</td>
    		</tr>
    		<tr>
    			<td>GENDER</td>
    			<td>
    				<c:choose>
    					<c:when test='${member.lev=="1"}'>man</c:when>
    					<c:otherwise>woman</c:otherwise>
    				</c:choose>
    			</td>
    		</tr>
    		<tr>
    			<td>LEVEL</td>
    			<td>
    				<c:choose>
    					<c:when test='${member.lev=="A"}'>manager</c:when>
    					<c:otherwise>user</c:otherwise>
    				</c:choose>
    			</td>
    		</tr>
    		<tr>
    			<td>NAME</td>
    			<td>${member.name}</td>
    		</tr>
    		<tr>
    			<td colspan="2">
    				<input type="button" value="go to the main page" onclick="location.href='main.jsp'">
    			</td>
    		</tr>
    	</table>
    </body>
    </html>

     

     

     

     

    main.jsp

     

    login 완료 시 볼 수 있는 페이지이다.

    위쪽에 header.jsp 를 include 하고, member에게만 보이는 화면과 manager 에게만 보이는 화면이 다르다.

     

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ include file = "header.jsp" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body align="center">
    	<h2>WELCOME! <br> page for member</h2>
    	<img src = "images/2.jpg" width ="30%" height="30%">
    </body>
    </html>

     

     

     

     

    customjoinservlet.java (@custom.do)

    사원등록

    session을 이용해서 manager 만 접근가능하게 하기.

    변경값을 저장하는 loginUser session 이  mypageServlet에 있음. 사용하기/ (employeesVO 타입임)

     

    package com.magic.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 javax.servlet.http.HttpSession;
    import com.magic.dao.EmployeesDAO;
    import com.magic.dto.EmployeesVO;
    
    @WebServlet("/custom.do")
    public class CustomJoinServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		HttpSession session = request.getSession();
    		
            //loginUser 속성 가져와서 변수에 담기
    		EmployeesVO emp = (EmployeesVO)session.getAttribute("loginUser"); 
    		int result = (Integer)session.getAttribute("result");
    		if(emp!=null && result ==2) {
    			RequestDispatcher rd = request.getRequestDispatcher("customjoin.jsp");
    			rd.forward(request, response);
    		}else { 
    			response.sendRedirect("login.do");
    		}		
    	}
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		request.setCharacterEncoding("UTF-8");
    		response.setContentType("text/html;charset=UTF-8");
    		
    		EmployeesVO member = new EmployeesVO();
    		member.setId(request.getParameter("id"));
    		member.setPass(request.getParameter("pass"));
    		member.setLev(request.getParameter("lev"));
    		member.setPhone(request.getParameter("phone"));
    		member.setGender(Integer.parseInt(request.getParameter("gender")));
    		member.setName(request.getParameter("name"));
    		
    		EmployeesDAO memberDAO = EmployeesDAO.getInstance();
    		
    		//insertMember 메소드 이용하여 vo객체 넘겨주기
    		memberDAO.insertMember(member);
    		
    		//회원 등록
    		request.setAttribute("member", member);
    		request.setAttribute("message", "사원등록 완료");
    		
    		RequestDispatcher rd = request.getRequestDispatcher("joinsuccess.jsp");
    		rd.forward(request, response);
    	}
    
    }

     

     

     

    customjoin.jsp

    manager만 선택할 수 있는 회원등록하기 만들기

    회원등록 폼 만들기 (header.jsp 에 선택영역 있음)

    header넣기

     

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ include file="header.jsp" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <form action ="custom.do" method="post">
    	<table align="center" border="1">	
    		<tr>
    			<td colspan="2">
    				<span>register your member. enter information</span>
    			</td>
    		</tr>
    		<tr>
    			<td>ID</td>
    			<td><input type="text" name="id"></td>
    		</tr>
    		<tr>
    			<td>PASSWORD</td>
    			<td><input type="text" name="pass"></td>
    		</tr>
    		<tr>
    			<td>NAME</td>
    			<td><input type="text" name="name"></td>
    		</tr>
    		<tr>
    			<td>GENDER</td>
    			<td>
    				<select name="gender">
    					<option value="1">man
    					<option value="2">woman
    				</select>
    			</td>
    		</tr>
    		<tr>
    			<td>LEVEL</td>
    			<td>
    				<select name="lev">
    					<option value="A">manager
    					<option value="B">user
    				</select>
    			</td>
    		</tr>
    		<tr>
    			<td>PHONE NUMBER</td>
    			<td><input type="text" name="phone"></td>
    		</tr>
    		<tr>
    			<td colspan="2">
    				<input type="submit" value="confirm">
    				<input type="reset" value="reset">
    				<input type="button" value="go to the main page" onclick="location.href='main.jsp'">
    			</td>
    		</tr>
    	</table>
    </form>
    </body>
    </html>

     

     

    customjoinservlet.java

    customjoin.jsp 에서 이동됨. post로 처리. db 사용하여 회원정보 저장하기

    일단 vo객체 생성, 후 vo 객체에 넣기

     

     

    employeesdao.java

    저장하는 메소드를 dao에서 처리해놓기

     insertMember()

    입력한 데이터 받고 값을 넣어주기

    sysdate 이용하여 오늘 날짜 넣기

     

     

    customjoinservelt

    회원정보 등록 성공 창 보여지기 

    회우너정보가 잘 등록되었다면 post 에 있는 member 이용하여 joinsuccess.jsp로 넘겨서 메시지 보여주기

     

     

    logoutservlet.java

    get방식으로

    session정보 받아서 삭제후 login.jsp 로 이동하게한다

    send로 넘겨도된다.

    728x90

    'JSP' 카테고리의 다른 글

    [JSP] 파일 업로드  (0) 2021.08.03
    [JSP] login 2-3  (0) 2021.08.03
    [JSP] login2-1  (0) 2021.07.29
    [JSP] login1  (0) 2021.07.27
    [JSP] JSTL 라이브러리 다운 / 기능  (0) 2021.07.22
Designed by Tistory.