HttpSessionListener

최준병·2025년 2월 5일

HttpSessionListener란?

HttpSessionListener는 서블릿 스펙에서 제공하는 리스너 인터페이스로,
HTTP 세션의 생성과 소멸 시점에 콜백 메서드를 통해 필요한 작업을 수행할 수 있도록 지원합니다.

주요 메서드

  • sessionCreated(HttpSessionEvent se)
    → 새로운 세션이 생성되었을 때 호출됩니다.
    예를 들어, 사용자 최초 방문 시 초기화 작업이나 세션 ID 로깅 등을 수행할 수 있습니다.

  • sessionDestroyed(HttpSessionEvent se)
    → 세션이 만료되거나, 명시적으로 폐기될 때 호출됩니다.
    예를 들어, 세션 종료 시 관련 리소스 정리나 로그 기록 등을 할 수 있습니다.


HttpSessionListener 사용 예제

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);
        
        // 세션 종료 시 정리 작업 예: 관련 리소스 정리
        // 예를 들어, 로그인 상태 정보 정리 등
    }
}

HttpSessionListener 등록

-- web.xml 등록 --
<listener>  
	    <listener-class>cms.config.MySessionListener</listener-class>
</listener>
profile
나의 기록

0개의 댓글