티스토리 뷰
세션 리스너
세션 리스너는 세션이 생성되거나 사라질 때, 알림을 받는 녀석입니다.
이 녀석은 로그를 남기거나, 생성되어 있는 모든 세션을 관리할 때 사용하면 참 좋은 녀석입니다.
이 녀석은 또한 분산 웹 어플리케이션을 작성할 때, 클러스터의 다른 장비로 세션 복제가 기대된대로 잘 작동하는지 확인하는 데 참 좋은 녀석입니다.
만약, 세션의 변화를 알고싶다면, Session Attribute Listener 를 확인해봐라. 이 두 인터페이스들은 생성, 삭제, 변화 이벤트를 잡는 하나의 리스너를 만들기 위해, 하나의 클래스에 구현될 수 있습니다.
이 페이지는 오직 세션 리스너 인터페이스만을 다룹니다.
세션 리스너 생성
세션 리스너를 생성하기 위해 HttpSessionListener 인터페이스를 구현하는 클래스를 만듭니다.
이는 다음 두 메쏘드를 구현하는 것을 수반합니다.
public void sessionCreated(HttpSessionEvent sessionEvent); |
각 리스너 클래스들은 매개변수가 없는 생성자를 가져야 합니다.
sessionCreated()
이 메쏘드는 세션이 생성될 때마다 호출됩니다.
sessionDestroyed()
이 메쏘드는 세션이 사라질 때마다 호출됩니다. ( 예를 들면 세션 타임아웃으로 인한 )
HttpSession
세션은 HttpSessionEvent 객체를 통해 위 메쏘드들로 전달되어집니다.
다음과 같이 사용할 수 있습니다.
HttpSession session = sessionEvent.getSession();
전체 예제
import javax.servlet.*;
public final class MySessionListener
implements HttpSessionListener {
public MySessionListener() {
}
public void sessionCreated(HttpSessionEvent sessionEvent) {
// 생성된 세션을 받습니다.
HttpSession session = sessionEvent.getSession();
// 세션에 무언가 저장을 하고, 메시지를 남깁니다.
try {
System.out.println("[MySessionListener] Session created: "+session);
session.setAttribute("foo", "bar");
} catch (Exception e) {
System.out.println("[MySessionListener] Error setting session attribute: " + e.getMessage());
}
}
public void sessionDestroyed(HttpSessionEvent sessionEvent) {
// 사라질 세션을 받습니다.
HttpSession session = sessionEvent.getSession();
// 메시지를 남깁니다.
System.out.println("[MySessionListener] Session invalidated: "+session);
System.out.println("[MySessionListener] Value of foo is: " + session.getAttribute("foo"));
}
}
web.xml에 세션 리스너 추가
위에서 만든 클래스를 WEB-INF/classes 에 넣고, 세션 리스너를 작동시키기 위해 web.xml에 다음 내용을 추가합니다.
<listener>
<listener-class>MySessionListener</listener-class>
</listener>
- Total
- Today
- Yesterday
- MySQL
- K리그
- 자바
- 세부
- 에닝요
- 카메라
- SqlSessionfactory
- 스프링
- 전북
- 여행
- 부모님
- 톰캣
- 캠핑
- 사이판
- 아마존
- Java
- 캠핑장
- mybatis
- 펜탁스
- PIC
- Spring
- G3
- 스프링부트
- LG
- web.xml
- 강원도
- 리조트
- 텐트
- k-3
- spring tutorial
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |