본문 바로가기
Programming | Study/JSP | Servlet

[servlet] ServletContextListener 구현

by jinju 2021. 4. 23.

서블릿 리스너 : 웹 컨테이너가 관리하는 라이프 사이클 사이에 발생하는 이벤트를 감지하여 해당 이벤트가 발생 시 해당 이벤트에 대한 일련의 로직을 처리하는 인터페이스

 

서블릿 리스너 동작구조

ServletContextListener

:ServletContext가 생성, 소멸되었을때 발생 (어플리케이션 생성, 소멸시)

 

 

-리스너 구현/패키지생성 후  클래스작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.listener;
 
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
 
public class ContextListenerTest implements ServletContextListener {
 
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        //서버가 종료되면 실행되는 리스너 메소드
        System.out.println("서버가 종료됨");
    }
 
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        // 서버가 시작되면 실행되는 리스너 메소드
        System.out.println("서버가 시작됨");
    }
 
}
 
cs

ServletContextListener 메소드 종류

contextInitialized(ServletContextEvent e) : void 웹 컨테이너가 처음 구동되어 ServletContext가 생성되었을때 작동하는 매소드

contextDestoryed(ServletContextEvent e) : void 웹 컨테이너가 종료될 때 실행되는 메소드 ServletContext가 소멸 되었을 때

+Date() 등 여러가지 메소드를 넣어 활용할 수 있음

 

web.xml 클래스에 들어가서 listener 등록하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>03_listener_filter</display-name>
  <listener>
      <listener-class>com.listener.ContextListenerTest</listener-class>
  </listener>
  
  
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>
cs

 

 

실행하면

서버를 종료하면

 

이렇게 확인할 수 있다

댓글