0707 Servlet

ServletContext 객체 - 0705 Servlet VELOG / ppt 4장

  • 모든 서블릿이나 JSP에서 공유할 데이터가 바로 ServletContext 객체이다!!
  • 브라우저를 종료하고 다시 접속해도 계속 유지되는, 즉 지속적으로 사용해야 되는 데이터를
    ServletContext 객체의 setAttribute(name, value) 메서드로 저장하고, getAttribute(name) 메서드로 참조한다.
  • ServletContext 객체의 setAttribute(name, value) 메서드를 사용하여 속성 값을 저장한다.
  • 앞서 말했듯이, 저장된 속성 값은 웹 어플리케이션이 제거되기 전까지 계속해서 사용할 수 있다.
String name = "홍길동";
int age = 20;
//반드시 this 키워드로 소속을 밝히고 접근할 것!
this.getServletContext().setAttribute("name", name);
this.getServletContext().setAttribute("age", age);
  • ServletContext 객체의 getAttribute(name) 메서드를 사용하여 속성 값을 얻는다.
  • 저장되었던 속성 값은 웹 어플리케이션이 제거되기 전까지 모든 JSP파일과 서블릿에서 참조가 가능하다.
//반드시 this 키워드로 소속을 밝히고 접근할 것!
String name = (String)this.getServletContext().getAttribute("name");
int age = (Integer)this.getServletContext().getAttribute("age");

ServletContextListener API

  • 서블릿이 LifeCycle을 가지고 있는 것처럼, 웹 어플리케이션도 LifeCycle을 갖는다.
  • Tomcat 컨테이너가 시작될 때, 웹 어플리케이션도 초기화되고, Tomcat컨테이너가 종료될 때 웹 어플리케이션도 제거된다.
  • 웹 어플리케이션이 초기화되고 제거되는 이벤트를 감지하는 ServletContextListener API를 사용하면, 언제 초기화되고 제거되었는지를 쉽게 알 수 있다.
  • ServletContextListener를 생성하고 web.xml에 태그로 등록해주거나, @WebListener 어노테이션을 이용한다.
    • @WebListener 어노테이션을 이용하면 번거롭게 web.xml에 listener를 등록해줄 필요가 없다.
  • ServletContextListener는 인터페이스로서 다음 2가지 메서드를 갖는다.
  • contextInitialized(ServletContextEvent event)
    • 웹 어플리케이션 서버 (Tomcat)가 시작될 때 이벤트를 감지하고, 콘솔창에 로그를 남긴다.
  • contextDestroyed(ServletContextEvent event)
    • 웹 어플리케이션 서버 (Tomcat)가 종료될 때 이벤트를 감지하고, 콘솔창에 로그를 남긴다.

0개의 댓글