-
ServletContextListener 컨텍스트 리스너개발입문/Servlet&JSP 2017. 2. 15. 21:08
웹 애플리케이션 (Context) 이 실행될 때 DD에 지정된 파라미터를 통해 컨텍스트를 초기화한다.
ServletContextListener 클래스에서 contextInitialized(ServletContextEvent) 메소드를 통하여 초기화할 때 실행할 작업을 구현할 수 있다. (예를 들어 단순 String 값인 파라미터를 객체로 만들어 attribute으로 추가할 수 있다.)
그 외, 특정 서블릿에 대해 요청이 왔을 때, DD에 지정된 초기화 파라미터를 전달할 수 있다.
Parameter 의 범위
웹 어플리케이션 전체 vs. 서블릿1. 웹 애플리케이션 전체에서 공유되는 파라미터/속성값- ServletContext
- ServletContextEvent
- ServletContextListener
2. 서블릿 각자에서 공유되는 파라미터/속성값
- ServletConfig
- Servlet
Web Container Structure
웹 컨테이너 구조Web Container 웹 컨테이너의 입장에서 각각의 리소스를 호출, 초기화하는 작업을 시각화했다. :)
[Docs]
public interface ServletContextListenerextends java.util.EventListener
Implementations of this interface receive notifications about changes to the servlet context of the web application they are part of. To receive notification events, the implementation class must be configured in the deployment descriptor for the web application.
void contextInitialized(ServletContextEvent sce)
void contextDestroyed(ServletContextEvent sce)
[예시코드]
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;public class MyServletContextListener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent event) {
// TODO Auto-generated method stub
}@Override
public void contextInitialized(ServletContextEvent event) {
ServletContext sc = event.getServletContext();
String dogBreed = sc.getInitParameter("breed");
Dog d = new Dog(dogBreed);
sc.setAttribute("dog", d);
}
}Docs: http://tomcat.apache.org/tomcat-5.5-doc/servletapi/
'개발입문 > Servlet&JSP' 카테고리의 다른 글
Request 속성과 Request 디스패칭 (0) 2017.02.16 웹애플리케이션 개발: 웹 컴포넌트간 공유하는 속성 범위 (0) 2017.02.15 Servlet LifeCycle & Parameter (0) 2017.02.14 [헤드퍼스트 Servlet&JSP] 4. 요청과 응답 (0) 2017.02.05 [헤드퍼스트 Servlet&JSP] 3-2. MVC 진행 (0) 2017.02.05