본문 바로가기
Progamming/BoostCourse

Servlet 라이프 싸이클

by 동그란 혜주 2019. 1. 16.
  • 들어가기 전에

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




  • 학습 목표

1. 서블릿의 생명주기(Life Cycle)를 이해하자.




  • 핵심 개념

- init

- service

- destroy




  • Servlet 생명주기

- 서블릿 생명주기를 확인할 수 있는 LifecycleServlet을 작성한다.

- HttpServlet의 세가지 메소드를 오버라이딩한다.

· init()

· service(request, response) : 요청이 들어왔을 때 응답해야되는 모든 내용은 service() 메서드에서 구현

· destroy() : 웹 어플리케이션이 갱신되거나 WAS가 종료될 때 호출

- servlet은 서버에 servlet 객체를 여러개 만들지 않는다. 요청이 여러 번 들어올 때마다 매번 생성하는 것이 아니라 실제 요청된 객체가 메모리에 있다면 service라는 메서드만 호출하기 때문에, 새로고침을 하면 생성자와 init()은 호출되지 않는 것을 알 수 있다.

- 서블릿을 수정한다면 기존에 메모리에 올라가있던 서블릿 객체는 더이상 사용될 수 없다. 이 때 destroy() 메소드가 호출된다.

- HelloServlet을 만들었을 때 doGet() 메서드만 호출했는데 어떻게 실행이 됐을까?




  • service(request, response) 메소드

- 실제 HttpServlet의 service 메소드는 이미 템플릿 메소드 패턴으로 구현

· 클라이언트의 요청이 GET일 경우에는 자신이 가지고 있는 doGet(request, response) 메소드 호출

· 클라이언트의 요청이 POST일 경우에는 자신이 가지고 있는 doPost(request, response) 메소드 호출

- 해당 서블릿에 URL 주소를 직접 입력하거나 링크를 클릭하는 것은 GET 방식으로 서버에게 요청을 보내게 되는 것으로, 이 경우 service() 메소드가 호출되면서 자신의 doGet() 메서드를 호출할 것이다.

- GET 방식이냐, POST 방식이냐에 따라, 같은 URL 매핑 주소지만 다른 메서드가 호출될 수 있다.









'Progamming > BoostCourse' 카테고리의 다른 글

자바스크립트 변수-연산자 타입  (0) 2019.01.19
Request, Response 객체 이해하기  (0) 2019.01.17
Servlet 작성 방법  (0) 2019.01.16
Servlet이란?  (0) 2019.01.16
개발환경 설정 - BE  (0) 2019.01.16

댓글