JSP 게시판 만들기 CHAPTER 7 (자바스크립트) - 접속한 회원 세션 관리
- 코딩/Jsp
- 2019. 12. 13.
- 접속한 회원 세션 관리하기 -
로그인 및 회원가입 을 할때 userID로 세션 관리를 해줍니다.
↑login.jsp파일에 빨간 부분을 추가해주도록 합니다.
↑join.jsp부분에도 똑같이 위와같은 세션관리 하는 부분을 추가해 주도록 합니다.
이제 이러한 세션처리를 이용하여 로그아웃 페이지를 만들어 주도록 하겠습니다.
이렇게 파일을 추가 해주시구요
<%@ 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"); %>
<!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>
이렇게 위와 같이 해주도록 합니다.
로그인 한 회원들은 모두 세션 id를 부여 받기 때문에 로그인 여부를 확인 할 수 있게됩니다.
따라서 이제 로그인한 회원들은 로그인과 회원가입에 접속이 안되도록 해주어야 합니다.
loginaction.jsp 부분에 빨간색으로 된 부분을 추가해주도록 합니다.
이렇게 해주어야 user아이디가 이미 존재 할 경우에 로그인 처리가 되어있기 때문에 다시
main페이지로 돌아가게 됩니다.
회원가입을 처리해주는 joinaction.jsp에도 똑같이 해주도록 합니다.
위 상항을 모두 추가한 loginaction.jsp 페이지
<%@ 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>jsp 게시판 웹사이트</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>
위 상항을 모두 추가한 joinaction.jsp 페이지
<%@ 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클래스를 javabeans 사용-->
<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>jsp 게시판 웹사이트</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("alert('회원가입이 정상적으로 처리되었습니다.')");
script.println("location.href = 'main.jsp'");
script.println("</script>");
}
}
%>
</body>
</body>
</html>
이제 loginaction.jsp와 join.jsp 파일을 모두 완성 하였기 때문에
main.jsp부분을 만들어 줄껀데요
먼저 index.jsp파일을 아래와 같이 login.jsp가 아니라 main.jsp로 바꾸어 주도록 하겠습니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>HELLO WORLD</title>
</head>
<body>
<script>
location.href = 'main.jsp';
</script>
</body>
</html>
이제 메인 화면에 접속 시 로그인 화면이 아닌 main화면으로 가게 됩니다.
이렇게 main 페이지가 보여지게 됩니다.
https://alisyabob.tistory.com/222
'코딩 > Jsp' 카테고리의 다른 글
JSP 게시판 만들기 CHAPTER 9 (자바스크립트) - 게시판 DB구축하기 (0) | 2019.12.13 |
---|---|
JSP 게시판 만들기 CHAPTER 8 (자바스크립트) - 게시판 메인 페이지 디자인 (0) | 2019.12.13 |
JSP 게시판 만들기 CHAPTER 6 (자바스크립트) - 회원가입 기능 구현 (4) | 2019.12.12 |
JSP 게시판 만들기 CHAPTER 5 (자바스크립트) - 회원가입 페이지 디자인 (0) | 2019.12.11 |
JSP 게시판 만들기 CHAPTER 4 (자바스크립트) - 로그인 기능 구현 (6) | 2019.12.10 |