- 자바 플랫폼에서 컴포넌트 기반의 서버 측 웹 어플리케이션 개발 기술
- 서블릿 컨테이너에 의해 생성, 호출, 소멸
- 쓰레드 기반으로 웹 어플리케이션 운영에 효율적임
-자바 기반으로 자바 API 모두 사용 가능- 운영체제나 하드웨어에 독립적
- 웹 어플리케이션에서 효율적인 자료 공유 방법 제공
- 컨텐츠와 비지니스 로직 분리 가능
- 컨트롤러와 뷰 역할 분담
- 유지보수 수월
- 기능의 확장 용이 등등..
- HTTP 요청에 의한 서블릿 실행 및 생명주기 관리하는 프로그램
- 서블릿, 자바 서버 페이지 파일, 서버 사이드 코드가 포함된 다른 타입의 파일들에 대한 요청 처리
- 자바 가상 머신을 포함한 서블릿 운영 환경 제공
- 서블릿 객체 생성
- 서블릿 로드 및 언로드
- 요청과 응답 객체 생성 및 관리
- 다른 서블릿 관리 작업 수행
- 자체 웹 서버 기능도 있으나 웹 서버와 분리하기도 함
- Apache Tomcat, Resin, Wildfly(Jboss), JEUS, WebLogic 등
링크 클릭시 Request는 Cotainer로 들어오게 된다.
컨테이너로 들어온 요청이 서블릿 이라는 것을 간파하곤 2개의 객체 생성
1. HttpServletResponse
2. HttpServletRequest
URL을 분석하여 어떤 서블릿에 대한 요청인지 알아내고 해당 서블릿 쓰레드
를 생성하여 Request/Response Object를 인자로 넘긴다!
컨테이너는 서블릿 서비스 메서드를 호출하고 요청에 지정한 방식에 따라 Get인지 Post인지 결정함
doGet()이라고 가정했을때, 동적인 페이지를 생성한 후, 이를 Response Object에 실어서 보낸다
컨테이너는 Response Object에 대한 참조를 여전히 가지고 있다.
위 스레드 작업이 끝나면 컨테이너는 Response 객체를 Http Response로 전환하여 클라이언트로 보냄
-> 이제 마지막으로 Request, Response객체 소멸!
이와 같은 방식으로 서블릿 컨테이너가 작동한다.