

HTTP 메시지를 모두 풀어헤쳐봐야 함...
서버에서 TCP/IP 연결을 일단 대기하도록 해야함
HTTP 메시지는 모두 text이기 때문에 파싱해서 읽어봐야 함
저장 프로세스 실행
비즈니스 로직 실행
HTTP 응답 메시지 생성 시작
TCP/IP에 응답 전달
※ 해당 프로세스를 모두 똑같이 개발하는 것은 비효율적
- 서블릿은 위 프로세스 중 '의미있는 비즈니스 로직(애플리케이션 로직)'을 제외하고 모든 일을 다 지원해줌


urlPatterns(/hello)의 URL이 호출되면 서블릿 코드가 실행
HttpServlet만 상속받으면 됨service 메서드에 작성하면 됨service 파라미터 2개 : HttpServletRequest, HttpServletResponse
HttpServletRequestHttpServletResponse
- 웹 브라우저에서 localhost:8080/hello라는 url로 WAS에 요청을 함
- WAS에서 요청 메시지를 기반으로 Request 객체를 새로 만들고, Request 객체를 파라미터로 넘기면서 helloServlet이라는 서블릿 객체를 실행함
- helloServlet 실행이 종료되고 return을 하면, WAS에서 만든 response 객체 정보로 HTTP 응답을 생성함
- 웹 브라우저에 응답 메시지가 전달됨

톰캣처럼 서블릿을 지원하는 WAS를 서블릿 컨테이너라고 함
서블릿 컨테이너는 서블릿 객체를 생성, 초기화, 호출, 종료하는 생명주기 관리
서블릿 객체는 싱글톤으로 관리
객체를 하나만 만들어놓고 공유해서 사용하는 방식
요청과 응답은 유저마다 다르기 때문에 Request와 Response는 객체는 계속 생성되는 것이 맞음
최초 로딩 시점에 서블릿 객체를 미리 만들어두고 재활용
공유 변수 사용 주의
서블릿 컨테이너 종료시 함께 종료