각진 세상에 둥근 춤을 추자

[JSP] session 객체 본문

JSP

[JSP] session 객체

circle.j 2022. 10. 9. 22:28

 

 

세션(session)이란 클라이언트가 서버에 접속해 있는 상태 혹은 단위를 말한다.

세션 테이블(session table)이란 클라이언트가 서버로 요청할 때 서버로 기록되는 클라이언트 정보 객체를 말한다. 

 

서버는 각 클라이언트에 대한 고유식별번호(session ID)를 발급한다.

 

주로 회원인증 후 로그인 상태를 유지하는 처리에 사용된다.

 

 

예제를 통해 session 내장 객체에 대해 이해해 본다.

먼저, 클라이언트의 화면에 띄울 로그인 폼을 생성한다. 

 

[6_session.jsp]

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>session 내장 객체</title>
	</head>
	<body>
		<h3>session 내장 객체</h3>
		
		<h4>세션 ID 확인</h4>
		<%= session.getId() %>
		
		<h4>로그인 처리</h4>
		<form action="./user/loginProc.jsp" method="post">
			<input type="text" name="id" placeholder="아이디 입력"/><br/>
			<input type="password" name="pw" placeholder="비밀번호 입력"/><br/>
			<input type="submit" value="로그인"/>
		</form>
				
	</body>
</html>

 

세션 ID는 각각 다른 브라우저로 접속했을 때 다른 것을 알 수 있다. (네이버 웨일, 사파리, 크롬)

위 로그인 폼에서 내용을 입력했을 때 로그인 처리를 위해 데이터를 loginProc.jsp파일로 전송한다.

 

[loginProc.jsp]

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>

<% 
	// 전송 데이터 수신
	request.setCharacterEncoding("UTF-8");

	String id = request.getParameter("id");
	String pw = request.getParameter("pw");
	
	// 회원 DB에 회원이 맞는지 확인해야 함 (일단 생략)
	
	if (pw.equals("1234")){
		// 회원 맞음
		
		//클라이언트 세션 정보 (id값을 세션에 기록)
		session.setAttribute("sessid", id);
		
		// 로그인 성공 페이지
		response.sendRedirect("./loginSuccess.jsp");
		
	}else {
		// 회원 아님
		
		// 로그인 실패 다시 원래 페이지
		response.sendRedirect("../6_session.jsp");
	}
%>

편의상 올바른 비밀번호를 '1234'로 설정한다.

로그인에 성공하면 로그인 성공 페이지인 loginSuccess.jsp 파일로 전송된다. 

혹은 로그인에 실패하면 원래 페이지로 돌아간다. 

 

[loginSuccess.jsp]

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%
	String id = (String) session.getAttribute("sessid");

	if(id == null){
		response.sendRedirect("../6_session.jsp");
		return; //처리종료
	}
%>


<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>loginSuccess</title>
	</head>
	<body>
		<h3>로그인 성공</h3>
		<p>
			<%=id %>님, 반갑습니다. <br/>
			<a href="./logout.jsp">로그아웃</a>
		</p>
	</body>
</html>

 

 

[logout.jsp]

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<% 

	// 세션 종료
	session.invalidate();
		
	response.sendRedirect("../6_session.jsp");
%>

 

 

 

 

'JSP' 카테고리의 다른 글

[JSP] 액션 태그 - <jsp: forward>  (0) 2022.10.11
[JSP] 액션 태그 - <jsp: include>  (0) 2022.10.11
[JSP] response 객체  (0) 2022.10.06
[JSP] 내장 객체(Implicit Object) - request  (0) 2022.10.05
[JSP] 지시어(Directive)  (0) 2022.10.05