콜백 메소드?
callback method 란 어떤 객체에서 어떤 상황이 발생하면 컨테이너가 자동으로 호출하여 실행되는 메소드를 의미한다. 이러한 콜백 메소드들이 서블릿을 실행하게 된다. HttpServlet 클래스를 상속받은 다음 오버라이딩한 init(), service() 가 콜백 메소드에 해당한다. 이 메소드들은 서블릿 객체에 어떤 이벤트가 발생하면 호출된다.
GenericServlet 클래스에 선언되어 있는 destroy() 메소드도 콜백 메소드이다. destroy()는 메모리에서 서블릿 객체가 삭제될 때 호출되는 메소드이다. 객체가 삭제될 때 호출되는 메소드이므로 자원을 해체하는 작업을 수행한다.
서블릿 객체의 생성
서블릿 객체가 메모리에 생성되는 시점은 서버 입장에서 클라이언트로부터 최초로 서블릿 실행 요청을 받았을 때 이다. 클라이언트 입장이 아니고 서버 입장이다.
서버 입장에서 최초로 서블릿 요청이 있을 때, 서블릿 컨테이너는 해당 서블릿 객체를 메모리에 생성한 다음, init() -> service() 순으로 실행한다.
이후에 같은 서블릿 실행 요청이 있으면 최초 요청 시 생성한 서블릿 객체의 service() 메소드를 실행한다.
사실 클라이언트로부터 서블릿 요청이 있을 때마다 요청이 최초인지를 판단하는 기준은 객체 생성 여부이다.
서블릿은 한 번 생성한 객체를 재사용해 처리속도, 메모리 부분에서 효율적인 장점이 있다.
서블릿 객체의 삭제
최초 요청 시 생성된 서블릿 객체가 삭제되는 시점은 서버를 중지시켜 웹 애플리케이션 서비스를 중지할 때이다.
웹서버에서는 전체 서비스를 중지할 수도 있고 일부 서비스만 중지할 수도 있다.
이때 destroy() 메소드가 호출되어 실행된다.
destroy() 메소드에는 자원 해제하는 내용을 구현하면 된다.
'Programming > Web' 카테고리의 다른 글
Servlet 객체의 상속구조와 서블릿 프로그램 실행순서 (0) | 2022.04.21 |
---|---|
[JSP]Servlet(서블릿)이란? (0) | 2022.04.21 |
[서블릿] 리스너란? 이벤트 리스너의 개념 (0) | 2022.04.21 |