HttpSessionListener는 서블릿 스펙에서 제공하는 리스너 인터페이스로,
HTTP 세션의 생성과 소멸 시점에 콜백 메서드를 통해 필요한 작업을 수행할 수 있도록 지원합니다.
sessionCreated(HttpSessionEvent se)
→ 새로운 세션이 생성되었을 때 호출됩니다.
예를 들어, 사용자 최초 방문 시 초기화 작업이나 세션 ID 로깅 등을 수행할 수 있습니다.
sessionDestroyed(HttpSessionEvent se)
→ 세션이 만료되거나, 명시적으로 폐기될 때 호출됩니다.
예를 들어, 세션 종료 시 관련 리소스 정리나 로그 기록 등을 할 수 있습니다.
package cms.config;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class MySessionListener implements HttpSessionListener {
// 세션 생성 시 호출됨
@Override
public void sessionCreated(HttpSessionEvent se) {
String sessionId = se.getSession().getId();
System.out.println("새로운 세션 생성: " + sessionId);
// 세션 생성 시 초기화 작업 예: 초기 속성 설정
se.getSession().setAttribute("initTime", System.currentTimeMillis());
}
// 세션 소멸 시 호출됨 (timeout or session.invalidate() 실행시)
@Override
public void sessionDestroyed(HttpSessionEvent se) {
// 해당 메소드가 실행될땐 이미 세션은 무효화가 된 상황임.
String sessionId = se.getSession().getId();
System.out.println("세션 소멸: " + sessionId);
// 세션 종료 시 정리 작업 예: 관련 리소스 정리
// 예를 들어, 로그인 상태 정보 정리 등
}
}
-- web.xml 등록 --
<listener>
<listener-class>cms.config.MySessionListener</listener-class>
</listener>