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 등이 있지만,
다음 공부할 때 알아보도록 하자.
728x90
반응형
'✨ Back-end > Servlet' 카테고리의 다른 글
[Servlet] 서블릿 전송방식 (Redirect와 Dispatcher) (0) | 2023.08.11 |
---|---|
[Servlet] HttpServlet, GenericServlet, Servlet 각각의 정의 (0) | 2023.08.08 |
[Servlet] 서블릿을 이용한 mvc1패턴과 mvc2패턴 (0) | 2023.08.08 |
[Servlet] 서블릿 컨테이너 정의 및 역할, HTTP 요청 처리 순서 (0) | 2023.08.08 |
서블릿(Servlet)과 CGI ( Common Gateway Interface ) 차이 (0) | 2023.08.08 |
댓글