개발기록/Java

서블릿 리스너 ( Servlet Listner)

100'S 2022. 1. 13. 23:44

서블릿 리스너란?

서블릿 리스너란, 웹 컨테이너가 관리하는 라이프 사이클 사이에 발생하는 이
벤트를 감지하여 해당 이벤트가 발생 시 해당 이벤트에 대한 일련의 로직을 처
리하는 인터페이스를 말한다.

 

 

서블릿 이벤트 사용 용도

  1. 웹 컨텍스트가 초기화되는 경우
  2. 세션이 생기거나 소멸되는 경우
  3. 요청 정보의 속성이 바뀌는 경우

 

서블릿 리스너 동작 구조

 

 

서블릿 이벤트 리스너 종류

 

1. ServletContextListener 
웹 애플리케이션의 시작과 종료 시 자동으로 발생하는 이벤트

 

- 메소드 종류

contextInitialized(ServletContextEvent e) : void

웹 컨테이너가 처음 구동될 때 실행되는 메소드

 

contextDestoryed(ServletContextEvent e) : void

웹 컨테이너가 종료될 때 실행되는 메소드

 


2. ServletContextAttributeListener 
- 웹 컨테이너에 저장된 속성의 값이 변경될 경우 발생하는 이벤트

(ServletContext 객체에 속성이 추가, 삭제, 수정될 때 발생)

 

- 메소드 종류

attributeAdded(ServletContextAttributeEvent e) : void
새로운 속성 값이 추가될 때 실행되는 메소드


attributeRemoved(ServletContextAttributeEvent e) : void
속성 값이 제거될 때 실행되는 메소드

attributeReplaced(ServletContextAttributeEvent e) : void
속성 값이 변경될 때 실행되는 메소드

 

 

3. HttpSessionListener 
- HTTP 세션이 생성되거나 종료(소멸)되는 시점에 발생하는 이벤트

 

- 메소드

sessionCreated(HttpSession e) : void
세션이 생성되었을 경우 실행되는 메소드


sessionDestoryed(HttpSession e) : void
세션이 무효화 되었을 경우 실행되는 메소드

 

 

4. HttpSessionAttributeListener
- HTTP 세션에 대한 속성의 값이 변경될 경우 발생하는 이벤트

 

- 메소드

attributeAdded(HttpSessionBindingEvent e) : void
세션에 새로운 속성 값이 추가될 때 실행되는 메소드


attributeRemoved(HttpSessionBindingEvent e) : void
세션에 속성 값이 제거될 때 실행되는 메소드


attributeReplaced(HttpSessionBindingEvent e) : void
세션에 속성 값이 변경될 때 실행되는 메소드

 


5. HttpSessionActivationListener
- HTTP 세션이 활성화 또는 비활성화가 발생하려 할 때 감지

 

- 메소드

sessionDidActivate(HttpSessionEvent e) : void
세션이 활성화 될 때 실행


sessionWillPassivate(HttpSessionEvent e) : void
세션이 비활성화 되려고 할 때 실행

 


6. HttpSessionBindingListener
- 현재 세션에 객체가 추가되거나 해제될 때 발생하는 이벤트

(사용자의 현재 세션에 바인딩 되거나 해제될 객체가 발생할 경우 감지)

 

- 메소드

valueBound(HttpSessionBindingEvent e) : void
객체가 세션에 연결될 때 발생하는 이벤트를 실행

 

valueUnBound(HttpSessionBindingEvent e) : void
객체가 세션으로부터 연결이 해제될 때 발생하는 이벤트를 실행

 

 

'개발기록 > Java' 카테고리의 다른 글

서블릿 예제1  (0) 2022.01.19
Ajax 예제  (0) 2022.01.19
Filter와 Wrapper  (0) 2022.01.13
HttpServletRequest, HttpServletResponse 개념 이해  (0) 2022.01.13
HTTP란?  (0) 2022.01.13