Latest web development tutorials

서블릿 라이프 사이클

서블릿주기는 파괴 통해 생성에서 전체 프로세스로 정의 될 수있다. 다음은 서블릿를 수행하는 절차입니다 :

  • 서블릿은 init () 메서드를 호출하여 초기화됩니다.
  • 서블릿은 클라이언트의 요청을 처리 할 수있는서비스 () 메소드를 호출한다.
  • 파괴의 호출에 의해 서블릿 ()메소드는 (END) 종료됩니다.
  • 마지막으로, JVM의 가비지 콜렉터 가비지 수집에 의해 서블릿.

우리는 이제 상세히 라이프 사이클 접근법을 설명 해보자.

초기화 () 메소드

init 메소드는 한 번만 호출 할 수 있도록 설계되었습니다. 먼저 서블릿을 만들 때 그것은 더 이상 호출 이후의 각 사용자 요청에서 호출됩니다. 따라서, 애플릿 초기화 방법처럼 한번 초기화에 사용된다.

사용자는 서블릿 URL의 최초의 호출에 해당하는 서블릿을 작성,하지만 당신은 또한 서버가 처음 시작될 때 서블릿이로드 지정할 수 있습니다합니다.

사용자가 서블릿을 호출 할 때, 그것은 서블릿 인스턴스를 생성합니다, 새 스레드를 생성 각 사용자 요청의의 doGet 또는의 doPost 메소드에 적절한 시간 전송. 초기화 () 메소드는 만들거나 수명주기 서블릿 전반에 걸쳐 사용되는 일부 데이터를로드합니다.

다음과 같이 초기화 방법은 정의된다 :

공공 무효의 초기화는 () ServletException이 {던졌습니다
  // 초기화 코드 ...
}

service () 메소드

서비스 () 메소드는 주요 방법은 실제 작업을 수행합니다. 서블릿 컨테이너 (즉, 웹 서버) 클라이언트 (브라우저)와 클라이언트로 다시 쓸 응답 형식으로부터 요청을 처리 할 수있는 서비스 () 메소드를 호출한다.

서버가 서블릿 요청을 수신 할 때마다, 서버는 새로운 쓰레드를 생성하여 서비스를 호출한다. 서비스 () 메서드는 HTTP 요청 유형 (GET, POST가, PUT, DELETE 등)를 확인하고 적절한시기에의 doGet,의 doPost, doPut, doDelete 메소드를 호출합니다.

다음은 상기 방법을 특징으로한다 :

공공 무효 서비스 (ServletRequest를 요청, 
                    ServletResponse를 응답) 
      ServletException이, IOException이가 {던졌습니다
}

service () 메소드가 컨테이너에 의해 호출, 서비스 방법은 적절한시기에의 doGet,의 doPost, doPut, doDelete 메소드를 호출합니다. 그래서, 당신은 할 수의 doGet () 또는을의 doPost () 오버라이드 (override) 클라이언트로부터 요청을 입력 할 필요가 아무것도 할 () 메소드를 서비스 할 필요가 없습니다.

각 서비스 요청의 doGet ()과의 doPost () 메소드는 가장 일반적으로 사용되는 방법이다. 여기서이 두 방법의 특징이다.

의 doGet () 메소드

일반 요청의 요청에게 URL을 GET 또는 방법 지정되지 않은 HTML 양식에서, 그것은의 doGet () 메소드에 의해 처리된다.

공공 무효의 doGet (HttpServletRequest의 요청,
                  HttpServletResponse를 응답)
    ServletException이, IOException이가 {던졌습니다
    } // 서블릿 코드

의 doPost () 메소드

POST 요청이 특별히 지정 방법에서 유래 그것은의 doPost () 메소드에 의해 처리되고, POST HTML 양식입니다.

공공 무효의 doPost (HttpServletRequest의 요청,
                   HttpServletResponse를 응답)
    ServletException이, IOException이가 {던졌습니다
    } // 서블릿 코드

파괴 () 메소드

파괴 () 메소드 회만 호출 서블릿 라이프 사이클의 끝에서 호출된다. 방법은 당신이 서블릿 데이터베이스 연결을 해제 백그라운드 스레드 목록을 중지하거나 디스크에 기록 된 쿠키 카운터 클릭 및 기타 유사한 청소 활동을 수행 할 수 있습니다 () 파괴한다.

전화 () 메서드를 파괴 한 후, 서블릿 객체는 가비지 컬렉션에 대해 표시됩니다. 다음과 같이 파괴하는 방법을 정의한다 :

  공공 무효 (파괴) {
    // 코드의 종료 ...
  }

차트

다음 그림은 일반적인 서블릿 라이프 사이클 접근 방식을 보여줍니다.

  • HTTP 서버는 서블릿 컨테이너에 위임 요청에 도달 처음이다.
  • 서블릿을로드 할 수있는 서비스 () 메소드를 호출하기 전에 서블릿 컨테이너.
  • 그런 다음 서블릿 컨테이너는 여러 스레드에 의해 생성 된 여러 요청, 서블릿의 service () 메소드의 단일 인스턴스에서 실행의 각 스레드를 처리합니다.
서블릿 라이프 사이클