[부스트코스]웹 프로그래밍 기초, 12) Servelet의 Lifecycle

sameul__choi·2020년 2월 17일
0

1. 웹 프로그래밍 기초

12) Servelet의 LifeCycle


오늘은 Servelet의 LifeCycle에 대해서 알아보는 시간을 갖겠습니다.


Lifecycle Servelet

LifecycleServelet 이라는 서블렛 파일을 하나 만들어서 HttpServelet의 3가지 메소드를 overiding 해봅니다 !

  • init()
  • destory()
  • service(request, respense)

! 실습코드 !

package examples;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/LifecycleServlet")
public class LifecycleServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
 
    public LifecycleServlet() {
        System.out.println("LifecycleServlet 생성!!");
    }

	public void init(ServletConfig config) throws ServletException {
		System.out.println("init test 호출!!");
	}

	
	public void destroy() {
		System.out.println("destroy 호출!!");
	}

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
       {
		System.out.println("service호출!!");		
	}
	
}

Servelet Lifecycle

  • WAS는 서블릿 요청을 받으면 해당 서블릿이 메모리에 있는지 확인합니다.
  • if (메모리에 없음) {
    해당 서블릿 클래스를 메모리에 올림
    init() 메소드를 실행
    }
    service()메소드를 실행
  • was가 종료되거나, 웹 어플리케이션이 새롭게 갱신될 경우 destroy() 메소드가 실행됩니다.

service(request, response) 메소드

HttpServlet의 service메소드는 템플릿 메소드 패턴으로 구현합니다.

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

이번 포스팅에서는 Servelet의 Lifecycle에 대해서 알아보았습니다.
감사합니다 !

0개의 댓글