[JSP] login2-2
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로 넘겨도된다.