본문 바로가기
Web Programming/Back-End

[Back-End] 4) Servlet 라이프 싸이클

by roomySky 2020. 1. 4.

LifecyCycleServlet.java
0.00MB

 

들어가기 전에

어떤 객체의 생성부터 소멸까지의 과정을 라이프 사이클(Life Cycle)라고 합니다.

이번 학습에서는 서블릿의 라이프 사이클을 알아봅니다.

 

 


학습 목표

  1. 서블릿의 생명주기를 이해합니다.

 

 


핵심 개념

  • 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 : 

1) http://jdm.kr/blog/116

 

템플릿 메소드 패턴(Template Method Pattern) :: JDM's Blog

이 포스팅은 템플릿 메소드(Template Method) 패턴에 대해서입니다. 간단하게 최종 코드를 먼저 보고 그 뒤 하나씩 구현해보겠습니다. 최종 코드 public class TemplateMain { public static void main(String[] args) { // 전사는 전투 준비를 위해서 // 체력을 단련하고, 검을 닦고, 갑옷을 입습니다. Warrior warrior = new Warrior(); warrior.readyToBattl

jdm.kr

 2) https://www.edwith.org/boostcourse-web/lecture/16688/

 

[LECTURE] 3) Servlet 라이프 싸이클 : edwith

들어가기 전에 어떤 객체의 생성부터 소멸까지의 과정을 라이프 사이클(Life Cycle)라고 합니다. 이번 학습에서는 서블릿의 라이프 사이클을 알아봅니다.     학습 목표 서블릿... - 부스트코스

www.edwith.org