>일반적인 문제 >서블릿의 생명주기를 이해하는 방법

서블릿의 생명주기를 이해하는 방법

coldplay.xixi
coldplay.xixi원래의
2020-11-02 11:52:2037259검색

서블릿 수명 주기: 1. 초기화 단계에서 서블릿 컨테이너는 서블릿 인스턴스를 생성하고 [init()] 메서드를 호출합니다. 2. 클라이언트 요청 처리 단계에서 클라이언트 요청이 수신될 때마다 서버는 3. 종료 단계에서 소멸 메소드를 호출하여 종료합니다.

서블릿의 생명주기를 이해하는 방법

서블릿 수명주기:

1. 서블릿 수명주기

에는 주로 세 가지 방법이 있습니다.

  • init() 초기화 단계

  • service() 처리 클라이언트 요청 단계

  • destroy() 종료 단계

초기화 단계:

서블릿 컨테이너는 로드가 완료된 후 서블릿 인스턴스를 생성하고 init() 메서드를 호출합니다. () 메소드는

서블릿 컨테이너가 다음 상황에서만 서블릿을 로드합니다.

일부 서블릿은 서블릿 컨테이너가 시작될 때 자동으로 로드됩니다. 이를 위해서는 요청

후에 1을 추가해야 합니다. 서블릿 클래스 파일이 업데이트되고 다시 로드됩니다.

클라이언트 요청 처리 단계:

클라이언트 요청이 수신될 때마다 서버는 처리할 새 스레드를 생성합니다.

사용자의 서블릿 요청에 대해 서블릿 컨테이너는 요청별 ServletRequest 및 ServletResponse를 생성합니다.

Tomcat의 경우 전달된 매개변수를 String–>String[]

의 키-값 맵인 HashTable에 저장합니다. 종료 단계:

웹 애플리케이션이 종료될 때 또는 서블릿 컨테이너가 종료될 때 서블릿이 종료되거나 서블릿이 새 서블릿 인스턴스를 다시 로드하면 서블릿 컨테이너는 서블릿의 destroy() 메소드를 호출합니다

2. 서블릿 작동 방식

고객이 요청을 보내고 서블릿은 service() 메소드를 호출하여 처리합니다. 이에 대한 응답으로 service() 메서드는 요청된 메서드와 일치하고 해당 논리 계층에 들어가서 요청된 응답을 완료합니다.

그러나 Servlet 인터페이스와 GenericServlet 인터페이스에는 doGet(), doPost() 및 기타 메소드가 없습니다. 이들은 HttpServlet에 정의되어 있지만 모든 Error 정보가 반환되므로 Servlet을 정의할 때마다 이러한 메소드를 다시 작성해야 합니다.

Sertvlet과 GenericServlet은 특정 프로토콜에 특정하지 않지만 HttpServlet은 Http 프로토콜에만 특정하므로 HttpServlet의 service() 메서드는 ServletRequest 및 ServletResponse를 HttpRequest 및 HttpResponse에 강제로 적용하고 마지막으로 자체 서비스 메서드를 호출하여 응답을 완료합니다.

관련 무료 추천:
프로그래밍 비디오 강좌

위 내용은 서블릿의 생명주기를 이해하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.