서블릿(Servlet)은 자바 웹 애플리케이션에서 클라이언트의 요청을 처리하고, 응답을 반환하는 서버측 프로그램입니다.
- 자바 기반 : 자바 언어로 개발되어 JVM 환경에서 실행됨.
- 서버 측 컴포넌트 : 클라이언트(브라우저, 모바일 앱 등)의 요청을 받아 서버에서 처리하고 응답함.
- 라이프사이클 관리 : 서블릿은 웹 컨테이너에 의해 생성, 초기화, 서비스, 소멸의 라이프사이클을 가짐.
- 멀티쓰레드 지원 : 하나의 서블릿 인스턴스가 여러 클라이언트의 요청을 동시에 처리할 수 있음.
- 플랫폼 독립적 : 자바 기반이므로 다양한 OS 환경에서 실행 가능.
서블릿 컨테이너는 서블릿의 실행 환경을 제공하는 서버 구성 요소입니다. 즉, 서블릿을 관리하고, 요청이 들어오면 서블릿을 실행해 응답을 생성하는 역할을 수행합니다.
- 서블릿의 생성 및 관리 : 클라이언트 요청이 있을 때 서블릿 객체를 생성하고, 필요 시 재사용.
- HTTP 요청과 응답 처리 : 클라이언트의 요청을 받아 서블릿으로 전달, 서브릿의 응답을 클라이언트에게 반환.
- 쓰레드 관리 및 동시성 처리 : 멀티쓰레드 환경에서 여러 요청을 동시에 처리.
- 보안 및 세션 관리 : 세션 및 쿠키를 관리하여 사용자 상태 유지.
- 로깅 및 에러 처리 : 웹 요청 및 서블릿 실행 과정에서 발생하는 로깅 및 예외 처리.

- 클라이언트(웹 브라우저)가 HTTP 요청을 보냄.
- 웹 서버(톰캣)가 해당 요청을 서블릿 컨테이너로 전달.
- 서블릿 컨테이너는 해당 요청을 처리할 서블릿을 찾고 실행.
- 서블릿이 비즈니스 로직을 수행하고 응답을 생성.
- 서블릿 컨테이너가 응답을 웹 서버로 전달.
- 웹 서버가 클라이언트에게 최종 응답 전송.
정리하자면, 서블릿은 웹 요청을 처리하는 자바 객체이며, 서블릿 컨테이너는 서블릿을 실행하고 관리하는 환경이라고 생각하면 됩니다! 다음 포스트에서는 서블릿을 활용하여 Http 요청, 응답을 받는 예제에 대한 포스트를 하겠습니다! 다음 포스트에서 뵈어요~!