서블릿 생명주기(Servlet Lifecycle)

jooog·2021년 12월 18일
0

스프링

목록 보기
8/26

서블릿 생성주기

@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {

    @Override
    public void init() throws ServletException {
        System.out.println("init");
    }
    //서블릿이 초기화될 때 자동 호출되는 메서드

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("service");
    }
    //실제 작업 처리

    @Override
    public void destroy() {
        System.out.println("destroy");
    }
    //서블릿이 새로 갱신되거나 종료될때 호출된다
}

서블릿을 실행시켜보자

init, service 메서드가 실행된 것을 확인할 수 있다

새로고침을 여러번 누르면 어떤 메서드가 실행될까?

init 메서드는 한번만 실행되는 반면 service 메서드는 반복적으로 실행된 것을 확인할 수 있다

서블릿을 실행하면 init 메서드는 딱 한번만 실행된다

요청 -> 서블릿 인스턴스 -> 서블릿 클래스 로딩 & 인스턴스 생성 -> init()

요청 -> 서블릿 인스턴스 -> service()

서블릿은 싱글톤으로 한개의 인스턴스만 생성된다

0개의 댓글