>Java >java지도 시간 >Java의 서블릿 라이프사이클에 대한 정보를 공유하세요.

Java의 서블릿 라이프사이클에 대한 정보를 공유하세요.

黄舟
黄舟원래의
2017-07-21 16:29:141450검색

이 글은 주로 서블릿 라이프사이클 관련 정보를 자세하게 소개하고 있으며, 관심 있는 친구들은 참고할 수 있습니다.

이 글은 여러분이 참고할 수 있도록 서블릿 라이프사이클 관련 정보를 공유합니다.

1. 서블릿 수명 주기: 서블릿 로딩--->인스턴스화--->서비스--->파괴.
2.init(): 서블릿의 라이프사이클에서 init() 메소드는 한 번만 실행됩니다. 서버가 서블릿을 로드할 때 실행되며 서블릿 객체 초기화를 담당합니다. 서버가 시작될 때 또는 클라이언트가 처음으로 서블릿에 액세스할 때 서블릿을 로드하도록 서버를 구성할 수 있습니다. 서블릿에 액세스하는 클라이언트 수에 관계없이 init()는 반복적으로 실행되지 않습니다.
3.service(): Servlet의 핵심이며 고객의 요청에 응답하는 역할을 담당합니다. 클라이언트가 HttpServlet 객체를 요청할 때마다 해당 객체의 Service() 메소드가 호출되고 "요청"(ServletRequest) 객체와 "응답"(ServletResponse) 객체가 이 메소드에 매개변수로 전달됩니다. Service() 메소드는 HttpServlet에 이미 존재합니다. 기본 서비스 기능은 HTTP 요청 메소드에 해당하는 do 기능을 호출하는 것입니다.
4.destroy(): 한 번만 실행되며, 서버가 중지되고 서블릿이 제거될 때 이 메서드가 실행됩니다. 서블릿 객체가 라이프사이클을 종료하면 점유된 리소스를 해제하는 역할을 담당합니다. 서블릿은 service() 메소드를 실행할 때 다른 스레드를 생성할 수 있으므로 destroy() 메소드가 호출될 때 이러한 스레드가 종료되거나 완료되었는지 확인해야 합니다.

Tomcat과 Servlet 작동 방식:

단계:

1.Web Client가 Servlet 컨테이너(Tomcat)에 Http 요청을 보냅니다.
2.Servlet 컨테이너가 Web Client로부터 요청을 받습니다.
3.Servlet 컨테이너 Request 객체를 생성하고 웹 클라이언트가 요청한 정보를 이 객체에 캡슐화합니다.
4. 서블릿 컨테이너는 Response 객체를 생성합니다.
5. 서블릿 컨테이너는 HttpServlet 객체의 서비스 메서드를 호출하고 Request 객체와 Response 객체를 매개변수로 Servlet 객체에 전달합니다.
6.Servlet은 Http 요청 정보를 얻기 위해 Request 객체의 관련 메소드를 호출합니다.
7.HttpServlet은 Response 객체의 관련 메소드를 호출하여 응답 데이터를 생성합니다.
8. 서블릿 컨테이너는 HttpServlet의 응답 결과를 웹 클라이언트에 전달합니다.

서블릿 작동 원리:

1. 먼저 서블릿이 고객 요청을 수신하고 응답하는 과정을 간략하게 설명합니다. 먼저 고객이 요청을 보내고, 서블릿은 이에 응답하기 위해 service() 메소드를 호출합니다. 요청은 소스 코드를 통해 볼 수 있으며, service() 메서드는 요청 메서드와 일치하고 doGet, doPost 및 기타 메서드를 호출하도록 선택한 다음 해당 메서드를 입력하여 논리 계층 메서드를 호출하여 고객에게 응답을 구현합니다. . Servlet 인터페이스와 GenericServlet에는 doGet(), doPost() 등의 메소드가 없습니다. 이러한 메소드는 HttpServlet에 정의되어 있지만 모두 오류 정보를 반환하므로 Servlet을 정의할 때마다 doGet을 구현해야 합니다. doPost 및 기타 방법.
2. 모든 사용자 정의된 서블릿은 서블릿 인터페이스에 정의된 다섯 가지 메소드가 있습니다. 더 중요한 세 가지 메소드는 위에서 언급한 init(), service(),destroy( ) 방법. GenericServlet은 어떤 프로토콜에도 특정되지 않고 Servlet 인터페이스를 구현하는 일반적인 Servlet입니다. HttpServlet은 GenericServlet을 상속하므로 HttpServlet은 Servlet 인터페이스도 구현합니다. 따라서 Servlet을 정의할 때 HttpServlet만 상속하면 됩니다.
3. Servlet 인터페이스와 GenericServlet은 어떤 프로토콜에도 특정되지 않지만 HttpServlet은 HTTP 프로토콜에 특정된 클래스이므로 service() 메서드는 HttpServlet에 구현되고 ServletRequest 및 ServletResponse 요청은 HttpRequest 및 HttpResponse로 강제됩니다.

서블릿 객체 생성 시간:

1. 서블릿 컨테이너가 시작되면 web.xml 구성 파일의 정보를 읽고 지정된 Servlet 객체를 구성하고 ServletConfig 객체를 생성하고 ServletConfig를 호출합니다. 매개변수로서의 객체 Servlet 객체의 init 메소드입니다.
2. 서블릿 컨테이너가 시작된 후: 고객이 처음으로 서블릿에 요청합니다. 서블릿 컨테이너는 지정된 서블릿 객체가 메모리에 있는지 여부를 확인한 다음 HttpRequest를 생성합니다. 고객의 요청에 따라 HttpResponse 개체를 사용하여 Servlet 개체 서비스 메서드를 호출합니다.
3.Servlet 서블릿 컨테이너는 시작 시 자동으로 서블릿을 생성합니다. 이는 web.xml 파일의 서블릿에 설정된 속성에 의해 결정됩니다. 이를 통해 동일한 유형의 서블릿 객체가 서블릿 컨테이너에 싱글톤으로 존재한다는 것을 알 수 있습니다.


rreee

위 내용은 Java의 서블릿 라이프사이클에 대한 정보를 공유하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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