[java] 서블릿 컨테이너란?
서블릿 컨테이너는 자바 서블릿의 실행 및 관리를 담당하는 런타임 환경입니다.
서블릿 컨테이너는 웹 서버와 웹 애플리케이션 간의 인터페이스 역할을 수행하여, 웹 클라이언트의 요청을 처리하고 응답을 제공합니다. 즉, 클라이언트로부터 HTTP 요청을 받으면 이를 서블릿으로 전달하고, 서블릿의 실행 결과를 다시 클라이언트에게 전송합니다.
서블릿 컨테이너는 다음과 같은 기능을 수행합니다:
- 서블릿의 라이프사이클 관리: 서블릿의 초기화, 서비스, 소멸 등의 라이프사이클을 관리합니다.
- HTTP 요청 처리: 클라이언트의 요청을 받고, 이를 서블릿에 전달하여 처리합니다.
- 스레드 관리: 클라이언트 요청 시마다 새로운 스레드를 생성하여 서블릿을 실행합니다.
- 세션 관리: 클라이언트의 세션을 생성하고, 세션에 데이터를 저장하고 관리합니다.
- 보안 관리: 클라이언트의 인증 및 권한 부여를 관리합니다.
- JSP 처리: JSP 파일을 서블릿으로 변환하고 실행합니다.
- 에러 처리: 서블릿 실행 중 발생하는 예외를 처리하고 에러 페이지를 제공합니다.
자바 서블릿은 웹 애플리케이션 개발에 필수적인 기술이며, 서블릿 컨테이너는 이를 실행하기 위한 필수적인 환경입니다. Apache Tomcat, Jetty, Undertow 등이 대표적인 서블릿 컨테이너입니다.
더 자세한 내용은 Oracle Java Servlet Specification 문서를 참조하시기 바랍니다.