Servlet & JSP

Servlet의 LifeCycle (init(), service(),destroy())

Jonny 2022. 1. 13. 13:13
  • 서블릿은 init(), service(), desrtoy() 메소드를 호출하는 Life Cycle을 가짐.
  • init() 메소드
    • 서블릿이 메모리에 Load되면 init() 메소드 수행
    • 서블릿이 서비스하기 위해 필요한 초기화 작업 수행
    • 한 번만 수행 (병행적으로 수행되지 않음)
    • 서블릿이 실행하기 위해서 필요한 각종 환경을 설정하기 위한 목적으로 사용.(파일 열기, 데이터베이스 연결)
    • 맨 처음 클라이언트의 요청에 의해서 메모리에 로드되며, 메모리에 로드 된 후에는 메모리에 계속 남아 클라이언트의 요청을 처리
  • service() 메소드
    • 클라이언트의 요청이 있을 때마다 Thread가 생성되어서 병행적으로 service() 메소드 수행.
    • 병행성 문제 고려
    • HTTP의 mthod 타입에 따라 GET 방식이면 doGet()메소드를, POST 방식이면 doPost() 메소드 호출
  • detroy() 메소드
    • 메모리가 Upload 되기 전에 destroy() 메소드 수행.
    • 한 번만 수행.
    • 종료 시에필요한 끝내기에 관련된 작업을 처리
  • 서블릿 작업 중단
    • 서블릿 작업 중단을 위해서는 doPost(), doGet(), service()등의 함수에서 return문을 사용,
    • System.exit()를 호출하면 서블릿 컨터이너가 종료