개발/Spring

ServletContextListner 구현

728x90

서블릿은 다양한 시점에서 발생하는 이벤트와 이벤트를 처리하기 위한 인터페이스를 정의 하고 있다.

 

이들 이벤트와 인터페이스를 이용하면 웹앱에서 필요로 하는 데이터의 초기화나 요청 처리등을 추적할 수 있다.

 

서블릿 규약은 다양한 이벤트를 처리할 수 있는 인터페이스를 구현하고 있음

 

 

ServletContextListener를 이용한 이벤트 처리

 

웹앱이 시작되거나 종료되는 시점에 특정 클래스의 메서드를 실행할 수 있는 기능을 제공하고 있다.

 

초기화 작업, 자원 반환 등의 작업 수행 가능.

 

웹 앱이 시작되고 종료될 때 특정한 기능을 

 

 

java.servlet.ServletContextListenr(웹앱이 시작되거나 종료될 때 호출할 메서드를 정의한 인터페이스) 인터페이스를 구현한 클래스를 작성한다.

web.xml 파일에 위에서 작성한 클래스를 등록한다.

 

 

 

contextInitalized

contextDestroyed

 

웹앱이 시작되거나 종료될 때 인터페이스를 구현한 클래스를 실행라며녀 web.xml, <listener> <listenr-class> 사용하여 완전한클래스 이름을 명시해주면 된다.

 

 

ServletContext 객체를 이용하면 web.xml 파일에 설된 컨텍스트 초기화 파라미터를 구할 수 있다. 컨텍스트 초기화 파라미터는 <context-param> 태그를 사용해서 web.xml 파일에 설정한다.

 

getInitParamenter

지정한 이름을 갖는 컨텍스트 초기화 파라미터를 리턴한다.

getINitParameterNames

컨텍스트 초기화 파라미터의 이름 목록을 Enumberation 타입으로 리턴함

 

컨텍스트 초기와 파라미터는 주로 웹앱 초기화 작업을 수행하는데 필요한 값을 설정할 때 사용함

 

<context-param>

  컨텍스트 초기화 파라미터

</context-param>

 

Properties.load() 메서드를 통해서 프로퍼티를 로딩할 수 있다.

 

 

 

 

 

리스너의 실행 순서

 

한개 이상의 리스너를 web.xml를 등록할 수도 있다.

 

 

리스너에서의 익셉션 처리

 

DBCPInitLinstner 클래스 코드에서

contextInitialized() 메서드 정의에 throws가 없기 때문이다.

이 메서드는 발생시킬 수 있는 checked 익셉션을 지정하고 있지 않으므로 익셉션을 발생시키려면 RuntimeException이나 그 하위 를 발생 시켜야 한다.

 

 

 

어노테이션을 이용한 리스너 등록

 

서블릿 3.0버전부터 web.xml 파일에 등록하지 않고, @WebListener 어노테이션을 리스너 클래스에 적용하면 자동으로 리스너로 등록된다.

'개발 > Spring' 카테고리의 다른 글

Disk  (0) 2021.04.10
RAM, 랜덤엑세스  (1) 2021.04.10
JSP란  (0) 2021.04.07
자바 Object 클래스  (0) 2021.04.06
자바 상속  (0) 2021.04.06