728x90
서블릿 구동절차
1. 클라이언트 요청이 들어오면 서블릿 컨테이너는 서블릿을 찾는다.
2. 서블릿이 없다면, 서블릿 클래스를 로딩하고 인스턴스를 준비한 후 생성자 호출, 서블릿 초기화 메서드 init() 호출
3. 클라이언트 요청을 처리하는 service() 메서드 호출
4. sevice() 메서드에서 처리한 결과를 HTTP프로토콜에 맞추어 클라이언트에게 응답
5. 서블릿 컨테이너 종료 or 웹 어플리케이션 종료
6. 서블릿이 마무리 작업을 수행할 수 있도록 생성된 모든 서블릿에 대해 destroy() 메서드 호출
서블릿 구동절차 확인
서블릿을 실행하면 최초 init() 메서드가 호출되고 이후에 service() 메서드가 호출된다.
현재는 별다른 코드가 없기 때문에 브라우저에서 F5를 눌러 새로고침 요청을 하게 되면 service() 메서드만 호출하는 것을 확인해 볼 수 있다.
tomcat 서버를 중지시키면 destroy() 메서드가 호출된다.
*참고사항
서블릿 인스턴스는 하나만 생성되어 웹 어플리케이션이 종료될 때까지 사용된다.
인스턴스 변수에 특정사용자를 위한 데이터를 보관해서는 안된다.
클라이언트가 보낸 데이터를 일시적으로 보관하기 위해 서블릿의 인스턴스 변수를 사용해서는 안된다.
출처: 자바 웹개발 워크북 125p~128p