들어가기 전에
어떤 객체의 생성부터 소멸까지의 과정을 라이프 사이클(Life Cycle)라고 합니다.
이번 학습에서는 서블릿의 라이프 사이클을 알아봅니다.
학습 목표
- 서블릿의 생명주기를 이해합니다.
핵심 개념
- init
- service
- destory
LifecycleServlet
HttpServlet의 3가지 메소드를 오버라이딩
- init()
- service(request, response)
- destroy()
실습코드
LifecycleServlet.java
Servlet 생명주기
- WAS는 서블릿 요청을 받으면 해당 서블릿이 메모리에 있는지 확인합니다.
- if (메모리에 없음) {
- 해당 서블릿 클래스를 메모리에 올림
- init() 메소드를 실행
}
- service()메소드를 실행 - was가 종료되거나, 웹 어플리케이션이 새롭게 갱신될 경우 destroy() 메소드가 실행됩니다.
실습코드
LifecycleServlet.java
service(request, response) 메소드
HttpServlet의 service메소드는 템플릿 메소드 패턴으로 구현합니다.
- 클라이언트의 요청이 GET일 경우에는 자신이 가지고 있는 doGet(request, response)메소드를 호출
- 클라이언트의 요청이 Post일 경우에는 자신이 가지고 있는 doPost(request, response)를 호출
LifecycleServlet 수정 실습
- Service(request, response)메소드 주석처리
- HttpServlet의 doGet(request, response)메소드 오버라이딩
- HttpServlet의 doPost(request, response)메소드 오버라이딩
* reference :
2) https://www.edwith.org/boostcourse-web/lecture/16688/