서블릿 프로그램을 공부하면서 배운 내용들을 정리하려고 한다.
서블릿(Servlet)
이다.서블릿은 다음과 같이 말할 수 있다.
좀 더 풀어서 말하면 다음과 같이 말할 수 있다.
사실 위의 일련의 과정중 생량된 것이 바로 서블릿의 컨테이너이다. WAS를 위에서 언급하였는데 브라우저에서 요청이오면 웹서버는 WAS의 내부에 서블릿 컨테이너에게 요청을 위임하는 것이다. 서블릿 컨테이너는 서블릿들의 생성, 실행, 파괴를 담당한다.
위의 서블릿 컨테이너에 의한 서블릿의 생명주기 상세보기이다.
1. HTTP 요청을 서블릿 컨테이너가 받음
2. 서블릿 컨테이너는 HttpServletRequest
, HttpServletResponse
두 객체를 생성
3. 배포 서술자(Web.xml)을 참고하여 요청한 URL이 어느 서블릿에 대한 요청인지 찾음
4. 해당 서블릿 클래스가 컨테이너에서 실행된 적이 없거나 현재 메모리에 생성된 인스턴스가 없다면 새로 인스턴스를 생성하고 init()
메소드를 실행하여 최기화하고 스레드를 하나 생성
5. 이미 인스턴스가 존재한다면 새로 생성하지 않고 기존의 인스턴스에 스레드만 하나 생성
6. 컨테이너는 service()
메소드를 호출하여 POST, GET 여부에 따라 doGet()
또는 doPost()
메서드가 호출됨
7. doGet()
, doPost()
등의 메서드는 동적인 페이지를 생성 후 HttpServletResponse
을 호출
8. 응답을 주고 HttpServletRequest
, HttpServletResponse
객체 소멸
# 해당 글은 개인적인 공부 내용을 정리하는 것을 목적으로 하고있습니다.
# 설명이 다소 부족하거나 중간 내용이 생략될 수 있습니다.