-
[JSP] login2-2JSP 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