1️⃣ 리스너란?
개요
리스너란 컨테이너에서 발생하는 이벤트를 중 특정 이벤트가 발생하면
실행되는 특수한 서블릿이다. 이를 이벤트 리스너라고한다.
웹 어플리케이션 실행에 필요한 정보를 제공하거나 톰캣 시작종료와 같은 특정 상황에
자동으로 동작하는 프로그램을 구현할때 사용한다.
이때 리스너는 서블릿과 마찬가지로 애너테이션 기반 코드로 작성할수있다.
먼저 리스너가 동작하기 위한 이벤트 종류와 프로그램API를 알아야한다.
리스너는 일반적인 형태의 서블릿이 아니다.
특정 이벤트에 따라 동작하는 인터페이스를 구현한 클래스라고 보면 되겠다.
리스너는 생명 주기 변화와 Scope Object에서 관리하는 속성의 변화를 감지하고
해당 이벤트가 발생되면 실행되는구조다.
클라이언트의 요청에 따라 서블릿을 통해 Session, Request 객체가 생성되거나
속성의 변화가 발생하면 컨테이너에서 이벤트를 감지하고 이벤트를 처리하는 리스너 클래스의 메소드가 실행되게된다.
주로 웹 어플리케이션 전체의 설계나 운영관점에서 사용한다.
2️⃣ 리스너의 종류
유형 | 설명 | 리스너 인터페이스 |
ServletContext 생명주기 변화 | ServletContext 생성과 소멸시점에 동작. 톰캣 시작 종료 시점과 일치. |
javax.servlet.ServletContext.Listener |
ServletContext 속성 변화 | ServletContext의 속성이 추가되거나 변경되는 상황에 동작. | javax.servlet.ServletContext.AttributeListener |
Session 생명 주기 변화 | Session의 생성과 소멸등 변화에 따라 동작. | javax.servlet.http.HttpSessionListener |
Session 속성 변화 | Session의 속성이 추가되거나 변경되는 상황에 동작. | javax.servlet.http.HttpSessionAttributeListener |
3️⃣ 리스너 구현
리스너 인터페이스를 구현한 클래스를 만들어야한다.
그리고 어노테이션을 이용해 리스너임을 명시한후 오버라이딩된 메소드중에서 필요한 코드만 작성한다.
직접생성시엔 클래스 생성은 일반 자바 클래스로 생성하고 implemets와 어노테이션을 직접 추가하면된다.
이클립스에선 New > Listenr 메뉴를 통해 생성이 가능하다.
@WebListener 어노테이션으로 리스너 클래스임을 컨테이너에게 전달해야한다.
인터페이스 구현으로 생성된 오버라이딩 메소드 중에 필요한 메소드만 구현해서 사용하면된다.
[메인으로 돌아가기]
'Java Spring > 책공부 1 (JSP와 스프링)' 카테고리의 다른 글
23. 리스너 종합 (0) | 2022.07.15 |
---|---|
22. 필터 (0) | 2022.07.15 |
20. 뷰 구현 (0) | 2022.07.15 |
19. 컨트롤러 구현 (0) | 2022.07.14 |
18. 모델 구현 (0) | 2022.07.14 |