은근한

세션 유효 시간 설정 본문

카테고리 없음

세션 유효 시간 설정

EsJoo 2014. 3. 10. 14:37

세션의 기본 객체가 사용될 때마다 세션의 최근 접근 시간은 갱신된다.


최근 접근 시간을 나타내는 메서드는 getLastAccessedTime() 메서드이다.


세션은 마지막 접근 시간 이후에 일정 시간 이내에 다시 접근하지 않으면 자동으로 세션을 종료한다.




세션 유효 시간의 필요성


쉽게 생각하면 세션의 유효시간이 없을 경우


PC방에서 게임을하다가 집에 갔는데 다른 누군가가 같은 PC에 앉아서 같은 게임을 할경우 


로그인이 계속 되어있을 것이다. 그럼 해킹을 당한다.. 모든 아이템은 Bye.. 하는 것이다.


그래서 세션의 유효 시간을 설정하여 자동으로 세션이 종료되어 계정을 보호 하는 것이다.


세션의 유효시간 설정 방법은 2가지 이다.


첫 번째 WEB-INF\web.xml 파일에 <session-config> 태그를 사용하여 유효 시간을 설정 하는 방법


1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
 
<web-app xmlns = "http://java.sun.com/xml/ns/javaee" version = "3.0">
 
      <session-config>
             <session-timeout>50</session-timeout>
      </session-config>
</web-app>



session-timeout 이 값의 단위는 분 이다.


두 번째 방법은 session 기본 객체가 제공하는 setMaxInactiveInterval() 메서드를 사용

<%

session.setMaxInactiveInterval(60*60);

%>


setMaxInactiveInterval() 메서드는 앞과 달리 값의 단위는 초 단위 이다.


세션의 유효 시간을 갖지 않을 경우, 세션 객체가 제거 되지 않아서 메모리 부족 현상이 발생한다.