5. 세션 유효 시간 ▷ 세션을 유지하기 위한 세션의 일정 시간 ▷웹 브라우저에 마지막 접근한 시간부터 일정 시간 이내에 다시 웹 브라우저에 접근하지 않으면 자동으로 세션이 종료 ▷세션 유효 시간을 설정하기 위해 session 내장 객체의 setMaxInactiveInterval( ) 메소드를 사용
interval은 세션의 유효 시간입니다. 기본 값은 1,800초이고 값은 초단위로 설정합니다.
0, 음수로 설정하면 세션 유효 시간이 없는 상태가 됩니다. 즉, 영구적으로 유지된다는 말이겠네요!
그치만 세션이 계속 유지되면 메모리에 남아 메모리 부족 현상이 발생할 수 있습니다.
◎ 세션 유효 시간을 가져와 출력하기 예제
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Session</title>
</head>
<body>
<h4>----- 세션 유효 시간 변경 전 -----</h4>
<%
int time = session.getMaxInactiveInterval() / 60;
out.println("세션 유효 시간 : " + time + "분<br>");
%>
<h4>----- 세션 유효 시간 변경 후 -----</h4>
<%
session.setMaxInactiveInterval(60 * 60);
time = session.getMaxInactiveInterval() / 60;
out.println("세션 유효 시간 : " + time + "분<br>");
%>
</body>
</html>
위의 예제는 세션의 유효 시간을 3600초로 설정하는 예시입니다.
기본 값은 1,800초이므로 30분이고 변경 후에는 3,600초이므로 60분으로 세션 유효시간이 변경됩니다.
◎ 세션 아이디와 웹 사이트에서 유지한 시간 출력하기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Session</title>
</head>
<body>
<%
String sessin_id = session.getId();
long last_time = session.getLastAccessedTime();
long start_time = session.getCreationTime();
long used_time = (last_time - start_time) / 60000;
out.println("세션 아이디 : " + sessin_id + "<br>");
out.println("요청 시작 시간 : " + start_time + "<br>");
out.println("요청 마지막 시간 : " + last_time + "<br>");
out.println("웹 사이트의 경과 시간 : " + used_time + "<br>");
%>
</body>
</html>
웹 사이트의 경과 시간을 초로 나타냅니다.
세션을 삭제하고 유효 시간을 지정하므로써 메모리의 공간을 확보하는 예제들을 수행했습니다.
세션을 필요할 때만 사용하고 자동 로그아웃이 되어서 메모리에 남아있지 않도록 하는 것이 중요하네요!!