Servlet

웹 페이지를 동적으로 생성하는 서버측 프로그램을 말하며, 흔히 서블릿이라 불린다.


서버측 프로그램

서버에서 실행되는 작은 프로그램.

Ex> JSP -> 컴파일 -> 서블릿 변환 -> 서버에서 구동


Container

서블릿의 Lifecycle을 관장하는 소프트웨어(모듈)을 "컨테이너"라 불린다.


Lifecycle

컨테이너는 클라이언트의 요청을 받으면 URL에 매핑하는 서블릿을 생성하고 생성된 서블릿은 정의된 비즈니스를 수행하고 소멸한다.


Role of Container

Communication 지원

서블릿과 웹서버의 통신을 담당. 컨테이너가 없다고 가정하면, 웹서버의 요청을 대기하는 리스너를 만들어 해당 요청(URL)과 서블릿을 매핑해야 하는 과정을 거쳐야 함. 컨테이너는 이런 복잡한 통신 기능을 API로 제공함.

- Lifecycle 관리

클라이언트의 요청(URL)이 들어오면 해당 URL과 매핑되는 서블릿의 인스턴스를 생성하고, 초기화 메소드를 호출. 서블릿의 수명이 다하면 적절하게 가비지 컬렉션을 수행한다. 즉 서블릿의 탄생과 죽음을 관리한다.


- Multi-Thread 지원

컨테이너는 클라이언트의 요청이 들어오면 서블릿을 처리하기 위한 새로운 쓰레드를 생성하고, 작업이 끝난 쓰레드는 반환하여 다중 요청에 대한 안정적인 동시성을 지원함


- 선언적 보안관리(??)


- JSP 지원





Posted by 짱가쟁이