[JSP] Session

Whatever·2022년 1월 18일
0

JSP

목록 보기
19/30

세션(session)이란?

  • 서버 세션을 사용하면 클라이언트(크롬)의 상태를 저장할 수 있음
  • 쿠키와의 차이점은 세션은 웹 브라우저가 아닌 서버에 값을 저장한다는 점
  • 웹 컨테이너에서 클라이언트의 정보를 보관 및 상태를 유지할 때 사용
  • 로그인한 사용자 정보를 유지하기 위한 목적
  • 클라이언트마다 세션이 생성
  • 웹 브라우저(크롬)에 정보 보관 : 쿠키
  • 웹 컨테이너(톰캣)에 정보 보관 : 세션

하나의 웹 브라우저에 하나의 세션

session01.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Session</title>
</head>
<body>
	<form method="post" action="session01_process.jsp">
		<p>아 이 디 : <input type="text" name="id"></p>
		<p>비밀번호 : <input type="password" name="passwd"></p>
		<p><input type="submit" value="전송"></p>
	</form>
</body>
</html>

결과화면

session01_process.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Session</title>
</head>
<body>
	<%
		String user_id = request.getParameter("id");
		String user_pw = request.getParameter("passwd");
		
		if(user_id.equals("admin")&&user_pw.equals("admin1234")){
			session.setAttribute("userID", user_id);
			session.setAttribute("userPW", user_pw);
			out.print("세선 설정 성공<br />");
			out.print(user_id + "님 환영합니다");
		}else{
			out.print("세션 설정 실패");
		}
	%>
</body>
</html>

로그인 성공 시 결과화면

로그인 실패 시 결과화면

sessionInfo.jsp

<%@page import="java.util.Date"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>세션 정보</title>
</head>
<body>
<%
	//long 타입의 시간 값을 저장하기 위해 사용
	Date time = new Date();

	SimpleDateFormat formatter = 
		new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
%>
세션ID : <%=session.getId()%> <br />
<%
	//세션의 생성 시간을 Date 객체인 time에 저장
	time.setTime(session.getCreationTime());
%>
세션생성시간 : <%=formatter.format(time)%> <br />
<%
	//세션의 마지막 접근 시간(long) -> Date 타입으로 세팅
	time.setTime(session.getLastAccessedTime());
%>
최근접근시간 : <%=formatter.format(time) %>
</body>
</html>

결과화면

setMemberInfo.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
	session.setAttribute("MEMBERID", "ddit");
	session.setAttribute("NAME", "개똥이");
%>
<!DOCTYPE html>
<html>
<head>
<title>세션에 정보 저장</title>
</head>
<body>
세션에 정보를 저장했습니다. <br />
<a href="getMemberInfo.jsp">저장된 세션의 정보 보기</a>
</body>
</html>

결과화면

getMemberInfo.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
	String memberId = (String)session.getAttribute("MEMBERID"); //ddit
	String name = (String)session.getAttribute("NAME"); //개똥이
%>
<!DOCTYPE html>
<html>
<head>
<title>저장된 세션의 정보 확인</title>
</head>
<body>
회원id : <%=memberId%><br />
회원이름 : <%=name%><br />
<a href="setMemberInfo.jsp">되돌아가기</a>
</body>
</html>

결과화면

close.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
	session.invalidate();
%>
<!DOCTYPE html>
<html>
<head>
<title>세션 종료</title>
</head>
<body>
세션을 종료하였습니다.
</body>
</html>

결과화면

0개의 댓글