@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()
요청 -> 서블릿 인스턴스 -> service()
서블릿은 싱글톤으로 한개의 인스턴스만 생성된다