본문 바로가기
✨ Back-end/Servlet

[Servlet] 리스너(Listener) 이벤트 핸들러 사용법

by 환풍 2023. 8. 13.
728x90

 

리스너(이벤트 핸들러)란?

어떠한 일 즉, 이벤트가 발생하기를 기다리다가 실제 그 이벤트가 발생했을 때 수행되는 메소드를 가지고 있는 자바 객체 (이벤트 핸들러)

 

종류

1. ServletContext
2. HttpSession
3. HttpServletRequest

 

  생성  삭제
ServletContext 서버 시작 시 서버 종료 시
HttpSession 클라이언트 접속 시 클라이언트 접속 종료 시
HttpServletRequest 클라이언트 서비스 요청 시 클라이언트 서비스 응답 시

 


그렇다면 리스너는 어떻게 등록할 수 있을까?

1. Filter (필터)
2. @WebListener (어노테이션)

Filter

리스너의 기능을 활용하려면 이벤트가 발생했을 때 실행되기 원하는 내용을 해당 이벤트 핸들러 객체를 상속받아 구현한 다음, 개발된 리스너를 컨테이너가 인식하도록 web.xml파일에 등록해야한다.

서버 시작 시 리스너 객체가 생성되어 준비 작업이 완료된다. 서버가 중지될 때 삭제된다.

 

RequestListener 서블릿

서블릿에서 위와 같이 ServletRequestListener를 구현하여 서버를 재실행해보자.

 

단지 서버만 실행 시켰더니 RequestListener가 실행이 되었고,

Dis 서블릿

서블릿을 실행시켜주니 콘솔에 RequestListener에서 구현한 이벤트 메소드들이 실행되었다.

 

@WebListener 어노테이션

어노테이션에는 value라는 속성이 있는데, 리스너에 대한 설명을 값으로 지정한다.

그러나 @WebbListener는 값 지정 없이 어노테이션으로 선언만 함으로써 등록하여 사용가능하다.

web.xml에 있는 필터 사용한 것을 주석처리 해줌으로써 이제 이렇게 사용하지 않을 것이다.

리스너를 사용할 서블릿에서 어노테이션을 추가함으로써 서버 실행시 위와 같이 표시되는 것을 확인해볼 수 있다.

 

서블릿에 있는 이벤트 리스너에는 ServletContext 외에도 HttpSession, HttpServletRequest 등이 있지만,

다음 공부할 때 알아보도록 하자.

반응형

댓글