[JSP] 세션 리스너
Session Listener란?
웹 어플리케이션에 리스너가 생성되는지, 리스너가 종료되는지, 세션의 attribute에 새로운 attribute가 추가, 삭제, 갱신되는지 이러한 일들을 세션에 일어나는 상황을 알고 싶다면 세션에 리스너를 등록
[세션 관련 리스너와 세션 외 리스너의 종류]
리스너 인터페이스 |
메서드 |
이벤트 타입 |
Javax.servlet ServletContextAttributeListener |
attributeAdded attributeRemoved attributeReplaced |
ServletContextAttributeEvent |
웹 애플리케이션 context에 Attribute를 추가, 제거, 수정했는지 알고 싶을 때 사용 | ||
Javax.servlet.http HttpSessionListener |
sessionCreated sessionDestroyed |
HttpSessionEvent |
현재 접속한 사용자가 있는지 알고 싶을 때 사용 현재 활성화된 세션 정보를 알고 싶을 때 사용 | ||
Javax.servlet ServletRequestListener |
requestInitialized requestDestroyed |
ServletRequestEvent |
Request가 들어올 때와 종료될 때를 알고 싶을 때 사용 | ||
Javax.servlet.http ServletRequestAttributeListner |
attributeAdded attributeRemoved attributeReplaced |
ServletRequestAttributeEvent |
Request에 Attribute가 추가, 제거, 수정됐을 때를 알고 싶을 때 사용. | ||
Mavax.servlet.http HttpSessionBindingListener |
valueBound valueUnbound |
HttpSessionBindingEvent |
Attribute 객체가 세션에 일부가 되었는지 제거되었는지 알고 싶을 때 사용. 구현한 객체 자신이 세션 속성에 추가, 제거되었을 때 이 객체의 메서드가 자동 호출된다. 이 리스너는 web.xml에 <listener> 요소를 등록할 필요가 없다 | ||
Javax.servlet.http HttpSessionAttributeListener |
attributeAdded attributeRemoved attributeReplaced |
HttpSessionBindingEvent |
Session에 attribute가 추가, 제거, 수정됐을 때를 알고 싶을 때 사용 | ||
Javax.servlet ServletContextListener |
contextInitailized contextDestroyed |
ServletContextEvent |
ServletContext가 생성, 소멸 됐을 때를 알고 싶을 때 사용. | ||
Javax.servlet.http HttpSessionActivationListener |
session.DidActivate sessionWillPassivate |
HttpSessionEvent |
Session이 다른 JVM으로 이동할 때의 과정에서 attribute의 instance를 저장하고 다시 읽어 내기 위해서 사용. readObject() 대신 sessionDidActivate()를 writeObject() 대신 sessionWillPassivate()를 사용 |
[Output]
3월 27, 2013 5:08:58 오후 org.apache.catalina.startup.Catalina start
INFO: Server startup in 327 ms
생성된 JSESSIONID: 91859B60569C115D55F19C3B8C202DEF 방문하고 있는 클라이언트 수: 1
세션생성시간: 17 9 0
세션생성시간: Wed Mar 27 17:09:00 KST 2013
소멸되는 JSESSIONID: 91859B60569C115D55F19C3B8C202DEF 현재 클라이언트 수: 0
세션 timout : 3분
세션 생존 시간 : 1364371761950
생성된 JSESSIONID: B6ABF1C4444648E07EC94057A23ECB8F 방문하고 있는 클라이언트 수: 1
세션생성시간: 17 14 16
세션생성시간: Wed Mar 27 17:14:16 KST 2013
생성된 JSESSIONID: F7A11ABE53A6AA61E4499DEF4944CC93 방문하고 있는 클라이언트 수: 2
세션생성시간: 17 14 39
세션생성시간: Wed Mar 27 17:14:39 KST 2013
생성된 JSESSIONID: 22BDEE4D8F40C4DF2DC06B2B34DECF99 방문하고 있는 클라이언트 수: 1
세션생성시간: 9 6 28
세션생성시간: Thu Mar 28 09:06:28 KST 2013
attributeAdded::value-1364429188493 name-sessionStart session-22BDEE4D8F40C4DF2DC06B2B34DECF99
sessionStart
이미 로그인한 상태
소멸되는 JSESSIONID: 22BDEE4D8F40C4DF2DC06B2B34DECF99 현재 클라이언트 수: 0
세션 timout : 3분
세션 생존 시간 : 1364429229238
attributeRemoved::value-1364429188493 name-sessionStart session-22BDEE4D8F40C4DF2DC06B2B34DECF99