# 서블릿 컨텍스트
- 서블릿과 컨테이너 간의 연동을 위해 사용하는 객체
- 톰캣 컨테이너 동작 시, 각 컨텍스트마다 한 개의 서블릿 컨텍스트 객체를 생성한다.
- 각 서블릿에는 servletConfig 객체가 생성된다.
- 서블릿 간 데이터(자원)를 공유하는데 사용된다.
- 컨테이너 실행 시, 생성되며 컨테이너 종료 시 소멸된다.
주요 메소드
메소드 | 기능 |
getAttribute(String name) | - name값 기준으로 바인딩된 값을 가져온다. - name이 없는 경우 NULL 반환 |
getAttributeNames() | - 바인딩된 속성의 name값 반환 |
getContext(String uripath) | - 지정한 url path에 해당하는 객체 반환 |
getRealPath(String path) | - 지정한 path에 해당하는 실제 경로를 반환 |
getServletContextName() | - 배치 관리자가 지정한 ServletContext에대한 애플리케이션의 명칭 반환 |
removeAttribute(String name) | - name값 기준으로 ServletContext에 바인딩된 객체 제거 |
setAttribute(String name, Object object) | - name값 기준으로 객체를 ServletContext에 바인딩 |
# ServletConfig
- 서블릿 확장 API
- 서블릿 컨텍스트 객체를 얻거나, 서블릿에대한 초기화 작업 기능을 가지고 있다.
- 서블릿과 함께 생성되고 같이 소멸된다.
- 서블릿 API는 servlet과 servletConfig 인터페이스를 구현하여 제공하며
- GenericServlet이라는 추상 클래스가 두 인터페이스의 추상 메소드를 구현한다.
- 해당 추상 클래스는 HttpServlet 에서 상속받아 사용한다.
# load-on-startup
- 톰캣 컨테이너가 동작하는 순간 미리 각 서블릿을 최초 실행할지에대해 지정하는 기능 (web.xml에서 지정)
- 서블릿은 브라우저에서 최초 요청 시, init메소드를 실행한 뒤 메모리에 로드하여 기능을 수행한다.
- 즉, 사용자가 처음에 웹 애플리케이션에서 특정 기능에대한 서블릿을 최초 사용 시에는 실행 시간이 엄청 늘어지게 된다.
- 이러한 단점을 보완하기위해서 톰캣 컨테이너가 동작하는 순간 미리 각 서블릿을 최초 실행하는 기능이다.
특징 |
톰캣 컨테이너가 실행되면서 미리 서블릿을 실행한다. |
지정한 숫자가 0보다 큰 경우, 톰캣 컨테이너가 실행되면서 서블릿이 전부 초기화된다. |
지정한 숫자는 우선순위를 의미하며 작은 숫자 먼저 초기화된다. |
<!-- Processes application requests -->
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring/mvc/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
'Web > Etc' 카테고리의 다른 글
[Etc] Mime-Type (0) | 2025.01.09 |
---|---|
[Etc] 세션 트래킹 (0) | 2025.01.09 |
[Etc] 디버깅 (0) | 2025.01.09 |
[Etc] Context (0) | 2025.01.09 |
[Etc] Protocol & Http (0) | 2025.01.09 |