JSP 게시판 만들기 CHAPTER 7 (자바스크립트) - 접속한 회원 세션 관리

- 접속한 회원 세션 관리하기 -

로그인 및 회원가입 을 할때 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 게시판 만들기 CHAPTER 8 (자바스크립트) - 게시판 메인 페이지 디자인

- 게시판 메인 페이지 디자인 - 게시판을 만들어 주기 위해 bbs.jsp 파일을 만들어 주도록 합니다. 이렇게 bbs파일을 추가해 주시고, 아래와 같은 코드를 추가 해주도록 합니다. <%@ page language="java" conten..

alisyabob.tistory.com

 

댓글

Designed by JB FACTORY

1 2 3 4 5 6 7 8 1 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10