Web/Etc

[Etc] Servlet Context

hikr90 2025. 1. 9. 22:18

# 서블릿 컨텍스트

- 서블릿과 컨테이너 간의 연동을 위해 사용하는 객체

- 톰캣 컨테이너 동작 시, 각 컨텍스트마다 한 개의 서블릿 컨텍스트 객체를 생성한다.

- 각 서블릿에는 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