접속 회원 세션 관리
현재 접속한 회원에 할당해주는 고유 아이디(세션)를
부여해주는 것 으로 부터 세션관리가 시작된다.
로그인을 성공한 회원에게 세션을 부여해준다.
loginAction.jsp에 로그인 성공시(result == 1)
session.setAttribute("userID", user.getUserID());
세션값으로 getUserID, 해당회원의 아이디값을 준다.
logoutAction.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jsp 게시판 웹사이트</title>
</head>
<body>
<%
session.invalidate(); // 접속한 회원의 세션을 빼앗음
%>
<script> //메인으로 이동
location.href = 'main.jsp';
</script>
</body>
</body>
</html>
loginAction 코드 수정
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="user.UserDAO"%>
<!-- userdao의 클래스 가져옴 -->
<%@ page import="java.io.PrintWriter"%>
<!-- 자바 클래스 사용 -->
<% request.setCharacterEncoding("UTF-8"); %>
<!-- 한명의 회원정보를 담는 user클래스를 자바 빈즈로 사용 / scope:페이지 현재의 페이지에서만 사용-->
<jsp:useBean id="user" class="user.User" scope="page" />
<jsp:setProperty name="user" property="userID" />
<jsp:setProperty name="user" property="userPassword" />
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>나의 게시판 웬 사이트</title>
</head>
<body>
<%
String userID = null;
if(session.getAttribute("userID") != null) {
userID = (String) session.getAttribute("userID");
}
if(userID != null){
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('이미 로그인이 되었습니다.')");
script.println("location.href = 'main.jsp'");
script.println("</script>");
}
UserDAO userDAO = new UserDAO(); //인스턴스생성
int result = userDAO.login(user.getUserID(), user.getUserPassword());
//로그인 성공
if(result == 1){
session.setAttribute("userID", user.getUserID());
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("location.href = 'main.jsp'");
script.println("</script>");
}
//로그인 실패
else if(result == 0){
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('비밀번호가 틀립니다.')");
script.println("history.back()");
script.println("</script>");
}
//아이디 없음
else if(result == -1){
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('존재하지 않는 아이디 입니다.')");
script.println("history.back()");
script.println("</script>");
}
//DB오류
else if(result == -2){
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('DB오류가 발생했습니다.')");
script.println("history.back()");
script.println("</script>");
}
%>
</body>
</body>
</html>
joinActtion 코드 수정
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="user.UserDAO"%>
<!-- userdao의 클래스 가져옴 -->
<%@ page import="java.io.PrintWriter"%>
<!-- 자바 클래스 사용 -->
<%
request.setCharacterEncoding("UTF-8");
%>
<!-- 한명의 회원정보를 담는 user클래스를 자바 빈즈로 사용 / scope:페이지 현재의 페이지에서만 사용-->
<jsp:useBean id="user" class="user.User" scope="page" />
<jsp:setProperty name="user" property="userID" />
<jsp:setProperty name="user" property="userPassword" />
<jsp:setProperty name="user" property="userName" />
<jsp:setProperty name="user" property="userGender" />
<jsp:setProperty name="user" property="userEmail" />
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>게시판 웹사이트</title>
</head>
<body>
<%
String userID = null;
if (session.getAttribute("userID") != null) {
userID = (String) session.getAttribute("userID");
}
if (userID != null) {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('이미 로그인이 되었습니다.')");
script.println("location.href = 'main.jsp'");
script.println("</script>");
}
if (user.getUserID() == null || user.getUserPassword() == null || user.getUserName() == null
|| user.getUserGender() == null || user.getUserEmail() == null) {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('입력이 안 된 사항이 있습니다.')");
script.println("history.back()");
script.println("</script>");
} else {
UserDAO userDAO = new UserDAO(); //인스턴스생성
int result = userDAO.join(user);
if (result == -1) { // 아이디가 기본키기. 중복되면 오류.
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('이미 존재하는 아이디 입니다.')");
script.println("history.back()");
script.println("</script>");
}
//가입성공
else {
session.setAttribute("userID", user.getUserID());
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("location.href = 'main.jsp'");
script.println("</script>");
}
}
%>
</body>
</html>
--다음에 계속