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
'웹 개발 기초 > 자바 웹을 다루는 기술' 카테고리의 다른 글
ServletContext의 매개변수 설정 기능 (0) | 2023.02.20 |
---|---|
ServletContext 바인딩 기능 (0) | 2023.02.20 |
두 서블릿 간 회원 정보 조회 바인딩 실습 (0) | 2023.02.20 |
HttpServletRequest를 이용한 dispatch 포워딩 시 바인딩 (0) | 2023.02.18 |
HttpServletRequest를 이용한 redirect 포워딩 시 바인딩 (0) | 2023.02.18 |