본문 바로가기
boostcource/boostcourse_web programming

Servlet 라이프싸이클 -1

by sgyeong 2024. 4. 8.

Servlet  생명주기

 

LifecycleServlet 작성

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

- HttpServlet의 3가지 메소드를 오버라이딩

  init ()
  service (request, response)
  destroy ()

 

 

 

examples 패키지 안에 LifecycleServlet 이라는 servlet을 만들어준다.

 

 

 

언제 생성되고 언제 소멸되는지 알기 위해서 init, destroy, service를 체크해주고, doGet과 toPost는 체크를 해제해준다.

Finish 클릭

 

 

 

* System.out 은 콘솔을 의미한다. response 객체로부터 얻어온 out과는 목적지가 다르다.
  System.out은 콘솔에 출력해주지만, 응답 결과를 보내주는 것은 아니다.

 

 

작성 후 저장 > 실행

 

 

LifecycleServlet매핑은 해당 클래스가 메모리에 존재하는지 여부를 체크한다. 

최초로 LifecycleServlet을 호출하여 해당 객체가 메모리에 존재하지 않기 때문에 서버는 메모리에 없다는 것을 판단하고 LifecycleServlet을 생성한다. 따라서 생성자에 넣어준 메세지가 출력된다.

init메서드와 service메서드가 호출된다.

 

 

브라우저에서 새로고침하면 새로운 요청이기 때문에 service가 다시 호출된다.

 

 

servlet은 서버에 servlet 객체를 여러개 만들지 않는다. 요청이 여러번 들어오면 매번 생성하지 않고, 실제 요청된 객체가 메모리에 있는지 확인하여 있다면 service라는 메서드만 호출한다.

 

 

servlet을 수정한 다음 저장한다. servlet이 수정되었기 때문에 메모리에 올라가있는 servlet객체는 더이상 사용될 수 없다. 따라서 콘솔에 destroy 메서드가 호출된다.

 

 

다시 브라우저를 새로고침하면 메모리에 존재하지 않기 때문에 다시 처음부터 객체를 생성하고 init과 service를 호출한다.

 

 

 

 

 

참고 : boostcourse  https://www.boostcourse.org/web316/lecture/254272?isDesc=false

 

웹 프로그래밍(풀스택)

부스트코스 무료 강의

www.boostcourse.org

 

'boostcource > boostcourse_web programming' 카테고리의 다른 글

HttpServletRequest / HttpServletResponse  (0) 2024.04.09
Servlet 라이프 싸이클-2  (0) 2024.04.08
Servlet 실습 -2  (0) 2024.04.08
Servlet 실습 -1  (0) 2024.04.08
Servlet 작성 방법  (0) 2024.04.08