Tomcat의 Servlet 개발 시 HttpSession 클래스를 사용 한다. Session Timeout 설정을 위해서는, setMaxInactiveInterval(int interval) 함수를 사용해서 개별적으로 정해줄 수 있지만, 공통으로 사용할 수 있게 설정을 하는 편이 좋다. web.xml 에 아래 샘플을 추가 하자.
<session-config>
<session-timeout>30</session-timeout>
</session-config>
session-timeout 은 분 단위로 설정 된다. 30 이라고 선언했다면 getSession() 할때 마다 Session 유효 시간은 30분 이다.
session 이 created, destoryed 되는 것을 확인 하고 싶을 때가 있을 것이다. HttpSessionListener 를 구현하면 확인이 가능하다.
- HttpSessionCheckingListener.java
public class HttpSessionCheckingListener implements HttpSessionListener {
private Logger logger = LoggerFactory.getLogger(this.getClass());
public void sessionCreated(HttpSessionEvent event) {
if (logger.isDebugEnabled()) {
logger.debug("Session ID".concat(event.getSession().getId()).concat(" created at ").concat(new Date().toString()));
}
}
public void sessionDestroyed(HttpSessionEvent event) {
if (logger.isDebugEnabled()) {
logger.debug("Session ID".concat(event.getSession().getId()).concat(" destroyed at ").concat(new Date().toString()));
}
}
}
위 파일을 web.xml 에 등록 할 차례다.
<listener>
<listener-class>kr.co.whitelife.web.mvc.listener.HttpSessionCheckingListener</listener-class>
</listener>
Tomcat Start 한 후 로그를 살펴 보자. 생성되는 부분, 소멸되는 부분 확인이 가능하다.
created
2014-10-07 14:06:05,957 DEBUG HttpSessionCheckListener - Session IDD31C36AE223F8C14BB1087F6BFCEBD35 created at Tue Oct 07 14:06:05 KST 2014
destroyed
2014-10-07 14:08:06,068 DEBUG HttpSessionCheckListener - Session IDD31C36AE223F8C14BB1087F6BFCEBD35 destroyed at Tue Oct 07 14:08:06 KST 2014
참고 사이트