Servlet Container
🧩 Servlet Container란
정의
Servlet Container는 서블릿의 생성, 초기화, 요청 처리, 종료까지 생명주기를 관리하는 실행 환경이다. 웹 서버와 서블릿 사이에서 요청/응답 흐름을 연결해 준다.
- 서블릿 인스턴스를 만들고 관리한다.
HttpServletRequest,HttpServletResponse객체를 생성해 전달한다.- URL 매핑을 통해 알맞은 서블릿을 찾아 호출한다.
⚙️ 기능
web server와 통신 지원
- 웹 서버와의 연결, 요청 수신, 응답 반환 같은 과정을 API 수준에서 처리한다.
Servlet lifecycle 관리
- 서블릿을 인스턴스화하고
init(),service(),destroy()호출 흐름을 관리한다.
multi thread 지원 및 관리
- 일반적으로 요청마다 컨테이너가 스레드 풀의 작업 스레드를 할당한다.
- 하나의 서블릿 인스턴스를 여러 요청 스레드가 공유할 수 있으므로 동기화에 주의해야 한다.
부가 기능 제공
- 세션 관리, 필터 처리, 보안 설정, JSP 연동 같은 웹 애플리케이션 기능을 함께 제공한다.
⚠️ 주의사항
- 요청마다 새로운 스레드를 직접 생성하는 구조라고 보면 안 된다.
- 서블릿 인스턴스가 공유되므로 멤버 변수 사용은 신중해야 한다.
- 컨테이너의 역할과 서블릿의 역할을 구분해서 이해하는 것이 중요하다.
📌 정리
- Servlet Container는 서블릿 실행을 책임지는 런타임 환경이다.
- 요청을 받아 적절한 서블릿에 전달하고, 응답이 나올 때까지 흐름을 관리한다.
- Servlet과 DispatcherServlet을 이해하려면 먼저 이 개념을 잡아야 한다.
댓글남기기