기타/Servlet

웹어플리케이션 감시 ServletContextListener

공부하는리아 2020. 12. 8. 16:02

정의

웹 어플리케이션 LifeCycle 발생 시 실행되는 메서드를 가진 객체

웹 어플리케이션의 시작, 종료, 특정 객체의 생성, 소멸과 같은 이벤트가 발생될 때 실행시킨다.

 

사용하는 이유

웹 어플리케이션의 동작이 제대로 작동하고 종료하는지 알아볼 수 있다.

즉 LifeCycle의 이벤트 관리가 가능하다!

 

사용방법

web.xml 사용

<!-- 웹어플리케이션 감시자 -->
<listener>
	<listener-class>com.vison.servletex.MyContextListener</listener-class>
</listener>

 

<listener> 태그안에는 반드시 한 개의 클래스만 작성해야한다.

여러개의 리스너를 만들고 싶으면 그때마다 <listener> 태그를 새롭게 만들어 넣어준다.

 

어노테이션 사용

@WebListener
public class MyContextListener implements ServletContextListener{

WebListener 어노테이션을 사용하기 위해서는 jar파일이 별도로 필요하다 (Servlet 3.0)

작동 순서는 위에서 아래로 흐르고 종료는 역으로 흐른다.

 

package com.vison.servletex;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class MyContextListener implements ServletContextListener{

	@Override
	public void contextDestroyed(ServletContextEvent sce) {
		System.out.println("컨텍스트 Destroyed 중지");
	}
	
	@Override
	public void contextInitialized(ServletContextEvent sce) {
		System.out.println("컨텍스트 Initialized 시작");
	}
}

기본적으로 ServletContextListener는 인터페이스라 직접 구현해서 써야한다.