티스토리 뷰

language/Servlet&JSP

ServletContextListener

북항 2019. 2. 22. 09:06
donaricano-btn
반응형

웹 애플리케이션 전체에서 공유하는 정보라는 점에서 ServletContext 객체가 컨테이너가 시작했을 때 생성되어야 하는 객체임을 알 수 있습니다.  컨테이너가 시작할 때 생성되어 ServletContext 객체를 초기화 시킬 수 있는 역할을 하는 클래스가 있다면 배포서술자 없이 ServletContext를 사용할 수 있을 것입니다. 그 역할을 할 수 있는 것이 바로 ServletContextListener 입니다.  ServletContextListener는 컨테이너 시작 초기에 생성되어 ServletContext에 발생하는 이벤트(생성과 소멸)를 알아차리고 특정한 method를 호출하는 역할을 합니다. 다시말해 ServletContext객체에 발생하는 이벤트를 처리하는 클래스가 바로 ServletContextListener입니다.


ServletContextListener 에는 두 가지 method가 존재합니다. ServletContext가 생성될 때 호출되는 contextInitialized와 소멸할 때 호출되는 contextDestroyed method 입니다. 이 method들은 모두 ServletContextEvent 객체를 인자로 가지는데 ServletContext에 어떤 event가 발생 했을 때 생성되는 객체입니다. 이 객체를 통해 ServletContext에 접근 가능합니다.


ServletContext가 생성되었을 때 호출되는 contextInitialized() method에서 setInitParameter를 이용해 컨텍스트 초기화 파라미터를 초기화 할 수 있습니다. 이 method 안에서는 ServletContext 의 생성 이후 사용되는 정보나 객체의 선언, 참조 등이 이루어 질 수 있고 데이터 베이스 연결을 초기화 하고 컨텍스트 Atrribute에 저장하는 코딩을 할 수도 있습니다.


반대로 contextDestroyed method 에서는 열려있는 데이터베이스 연결을 종료하거나 하는 등의 context가 소멸할 때  작업을 할 수 있습니다.


이런 listener의 종류는 사실 ServletContextListener만 있는 것은 아닙니다. servlet 클래스에는 웹애플리케이션에서 발생하는 다양한 event에 대응하는 listener 들이 있습니다. 그런데 여기 보면 ‘속성’이라는 말이 나옵니다. 지금까지 초기화 파라미터에 대해서만 알아 봤는데 속성은 무엇인지 또 파라미터와 차이는 어떤 것인지 알아 보도록 하겠습니다.


반응형
donaricano-btn
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함