본문 바로가기

콩's EDUCATION/콩's JSP&SERVLET

세션 session 에 대해서 알아보자

세션? 쿠키?

세션은 웹 컨테이너에 정보를 보관할 때 사용하지만, 쿠키는 웹 브라우저에 정보를 보관 할 때 사용한다.

 

<%@page import="java.util.Date"%>
<%@ page contentType="text/html; charset=utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<pre>
세션은 웹 컨테이너에 정보를 저장하기 위해 사용한다.
웹 컨테이너는 하나의 브라우저별로 하나의 세션을 생성한다.
세션을 사용하지 않으려면 page지시자의 session 속성을 false로 설정한다.
page 지시자의 session 속성의 기본값은 true입니다.
session 객체의 타입 javax.servlet.http.HttpSession 입니다.
getId() : 브라우저에서 최초 요청시 생성된 sessionID를 문자열로 리턴
getCreationTime() : 세션 생성된 시간을 mile second로 리턴
getLastAccessedTime() : 마지막 세션 시간 리턴
</pre>
<%
Date time = new Date(); // 현재 시간
%>
현재 시간 : <%=time %><br>
세션 ID : <%=session.getId() %><br>
세션 생성된 시간 <%=session.getCreationTime() %><br>
세션 마지막 Access 시간 : <%=session.getLastAccessedTime() %><br>
</body>
</html>

 

[결과]

 

 

foramt 사용

 

</pre>
<%
Date time = new Date(); // 현재 시간
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
%>
현재 시간 : <%=time %><br>
세션 ID : <%=session.getId() %><br>
세션 생성된 시간 <%=formatter.format(session.getCreationTime()) %><br>
세션 마지막 Access 시간 : <%=formatter.format(session.getLastAccessedTime()) %><br>
</body>
</html>

 

[결과]

 

 

세션 동기화 (id가 계속 바뀐다)

 

<%
Date time = new Date(); // 현재 시간
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
session.setAttribute("price", new Integer(20000));
%>
현재 시간 : <%=time %><br>
세션 ID : <%=session.getId() %><br>
세션 생성된 시간 <%=formatter.format(session.getCreationTime()) %><br>
세션 마지막 Access 시간 : <%=formatter.format(session.getLastAccessedTime()) %><br>
<pre>
세션에 정보를 저장할 때 session.setAttribute("key", object)를 사용함
세션에 저장된 정보를 꺼내올 때 session.getAttribute("key")를 사용한다.
</pre>
세션에 저장된 가격 data를 꺼내오기
<%= ((Integer)session.getAttribute("price")).intValue() %><br>
<pre>
세션 종료시킬 때는 invalidate()를 사용한다.
로그아웃 처리할때 반드시 세션을 종료시켜야 한다.
</pre>
<% session.invalidate(); %>

 

[결과]

 

 

<pre>
세션 만료시간을 웹 컨텍스트 전역으로 설정할 떄는 web.xml에 설정한다.
특정 페이지에서 자바코드로 세션 만료 시간을 설정할 수 있다.
</pre>
<%
session.setMaxInactiveInterval(60*30); // 30분 (초단위)
%>
</body>
</html>