7강 접속한 회원 세션 관리하기 (JSP Advanced Development Tutorial #7)
※ 세션 관리
- 세션은 기본적으로 현재 접속한 회원에게 할당해주는 고유의 아이디
- 우리의 웹 서버는 한 명의 회원을 세션 아이디로 구분
- 따라서 로그인에 성공했을때 세션 아이디 부여부터 세션 관리가 시작된다고 할 수 있다.
- 먼저, 'loginAction.jsp' 페이지와 'joinAction.jsp' 페이지에게 각각 세션을 부여할 수 있게 하는 작업을 해본다.
- 또한, 로그인이 된 유저는 로그인과 회원가입 페이지에 들어갈 수 없도록 해야 함
- 그러므로 아래 '소스코드 1'의 코드를 각각의 페이지에 추가해보자.
[소스코드 1]
▶ 다음 코드를 'loginAction.jsp'와 'joinAction.jsp'의 body 태그 상단에 추가한다.
1
2
3
4
5
6
7
8
9
10
11
|
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>");
}
|
cs |


[소스코드 2]
▶ '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> | |
</html> |
[소스코드 3]
▶ 'index.jsp' 페이지의 경로를 'login.jsp'가 아니라 → 'main.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> | |
<script> | |
location.href = 'main.jsp'; // 이 부분을 수정한다 | |
</script> | |
</body> | |
</html> |
[소스코드 4]
▶ 가장 중요하다고 할 수 있는 메인 페이지, 'main.jsp'
<%@ page language="java" contentType="text/html; charset=UTF-8" | |
pageEncoding="UTF-8"%> | |
<%@ page import="java.io.PrintWriter" %> | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | |
<meta name="viewport" content="width=device-width", initial-scale="1"> | |
<link rel="stylesheet" href="css/bootstrap.css"> | |
<title>JSP 게시판 웹 사이트</title> | |
</head> | |
<body> | |
<% | |
String userID = null; | |
if (session.getAttribute("userID") != null) { | |
userID = (String) session.getAttribute("userID"); | |
} | |
%> | |
<nav class="navbar navbar-default"> | |
<div class="navbar-header"> | |
<button type="button" class="navbar-toggle collapsed" | |
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" | |
aria-expanded="false"> | |
<span class="icon-bar"></span> | |
<span class="icon-bar"></span> | |
<span class="icon-bar"></span> | |
</button> | |
<a class="navbar-brand" href="main.jsp">JSP 게시판 웹 사이트</a> | |
</div> | |
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> | |
<ul class="nav navbar-nav"> | |
<li class="active"><a href="main.jsp">메인</a></li> | |
<li><a href="bbs.jsp">게시판</a></li> | |
</ul> | |
<% | |
if(userID == null) { | |
%> | |
<ul class="nav navbar-nav navbar-right"> | |
<li class="dropdown"> | |
<a href="#" class="dropdown-toggle" | |
data-toggle="dropdown" role="button" aria-haspopup="true" | |
aria-expanded="false">접속하기<span class="caret"></span></a> | |
<ul class="dropdown-menu"> | |
<li><a href="login.jsp">로그인</a></li> | |
<li><a href="join.jsp">회원가입</a></li> | |
</ul> | |
</li> | |
</ul> | |
<% | |
} else { | |
%> | |
<ul class="nav navbar-nav navbar-right"> | |
<li class="dropdown"> | |
<a href="#" class="dropdown-toggle" | |
data-toggle="dropdown" role="button" aria-haspopup="true" | |
aria-expanded="false">회원관리<span class="caret"></span></a> | |
<ul class="dropdown-menu"> | |
<li><a href="logoutAction.jsp">로그아웃</a></li> | |
</ul> | |
</li> | |
</ul> | |
<% | |
} | |
%> | |
</div> | |
</nav> | |
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> | |
<script src="js/bootstrap.js"></script> | |
</body> | |
</html> |
[실행화면 1]
▶ 메인 페이지 접속 화면
- 현재 로그인이 되어있지 않기 때문에 '접속하기' 버튼이 나와있는 모습이다.

[실행화면 2 & 실행화면 3]
▶ 회원가입 페이지에서 정보를 입력한 상태의 화면과 '회원가입' 버튼을 누른 후 화면

- '회원가입' 버튼을 누르게 되면 바로 로그인 및 접속이 되고, '로그아웃' 버튼이 보이는 화면을 볼 수 있다.

- '로그아웃' 버튼을 누르게 되면 다시 메인 페이지로 이동하게 된다.
● 이런 식으로 현재 접속한 회원의 세션을 관리함으로써 특정한 페이지에서 어떠한 내용은 보이고 어떠한 내용은 안 보이도록 관리해주는 것
● 세션 관리를 통해 전반적인 회원의 정보를 관리하고 이러한 페이지 구성 같은 경우를 회원이 로그인했는지 안 했는지에 따라 구성해보는 시간이었다.
● 세션 관리는 로그인 및 회원가입을 포함해서 갖가지 보안에 있어서 가장 중요한 요소이기 때문에 숙지해야 한다.
출처 : https://www.youtube.com/watch?v=eJRB__ErXd4&list=PLRx0vPvlEmdAZv_okJzox5wj2gG_fNh_6&index=7
'WEB Project > JSP' 카테고리의 다른 글
JSP 게시판 만들기 - 9강 (0) | 2020.03.26 |
---|---|
JSP 게시판 만들기 - 8강 (0) | 2020.03.25 |
JSP 게시판 만들기 - 6강 (0) | 2020.03.23 |
JSP 게시판 만들기 - 5강 (0) | 2020.03.22 |
JSP 게시판 만들기 - 4강 (0) | 2020.03.21 |