웹 개발 기초/자바 웹을 다루는 기술

ServletContext 클래스

sungw00 2023. 2. 20. 18:32
728x90

톰캣 컨테이너 실행 시 각 컨텍스트(웹 애플리케이션)마다 한 개의 ServletContext 객체를 생성하고, 톰캣 컨테이너가 종료하면 ServletContext 객체 역시 소멸됨. ServletContext 객체는 웹 애플리케이션이 실행되면서 애플리케이션 전체의 공통 자원이나 정보를 미리 바인딩해서 서블릿들이 공유하며 사용함.

 

ServletContext 클래스의 특징

  • javax.servlet.ServletContext로 정의되어 있음
  • 서블릿과 컨테이너 간 연동을 위해 사용
  • 컨텍스트(웹 애플리케이션)마다 하나의 ServletContext가 생성됨
  • 서블릿끼리 자원(데이터)을 공유하는 데 사용
  • 컨테이너 실행 시 생성되고 컨테이너 종료 시 소멸됨

 

ServletContext가 제공하는 기능

  • 서블릿에서 파일 접근 기능
  • 자원 바인딩 기능
  • 로그 파일 기능
  • 컨텍스트에서 제공하는 설정 정보 제공 기능

 

톰캣 컨테이너를 실행할 때 각 애플리케이션에서 생성되는 ServletContext와 ServletConfig 객체는 다음과 같다.

ServletContext는 컨텍스트당 생성되는 반면, ServletConfig는 각 서블릿에 대해 생성된다.

 

ServletContext에서 제공하는 여러 가지 메서드의 기능

메서드 기능
getAttribute(String name) - 주어진 name을 이용해 바인딩된 value를 가져옴
- name이 존재하지 않으면 null을 반환
getAttributeNames( ) 바인딩된 속성들의 name을 반환
getContext(String uripath) 지정한 uripath에 해당되는 객체를 반환
getInitParameter(String name) - name에 해당되는 매개변수의 초기화 값을 반환
- name에 해당되는 매개변수가 존재하지 않으면 null을 반환
getInitParameterNames( ) - 컨텍스트의 초기화 관련 매개변수들의 이름들을 String 객체가 저장된 Enumeration 타입으로 반환
- 매개변수가 존재하지 않으면 null을 반환
getMajorVersion( ) 서블릿 컨테이너가 지원하는 주요 서블릿 API 버전을 반환
getRealPath(String path) 지정한 path에 해당되는 실제 경로를 반환
getResource(String path) 지정한 path에 해당되는 Resource를 반환
getServerInfo( ) 현재 서블릿이 실행되고 있는 서블릿 컨테이너의 이름과 버전을 반환
getServletContextName( ) 해당 애플리케이션의 배치 관리자가 지정한 ServletContext에 대한 해당 웹 애플리케이션의 이름을 반환
log(String msg) 로그 파일에 로그를 기록
removeAttribute(String name) 해당 name으로 ServletContext에 바인딩 된 객체를 제거
setAttribute(String name, Object object) 해당 name으로 객체를 ServletContext에 바인딩
setInitParameter(String name, String value) 주어진 name으로 value를 컨텍스트 초기화 매개변수로 설정

 

728x90