1. 소개: 서블릿 프로그래밍은 javax.Servlet 및 javax.servlet.http 두 패키지의 클래스와 인터페이스를 통해 구현됩니다. 모든 서블릿은 이 인터페이스를 구현하거나 클래스를 상속해야 합니다. 이 인터페이스를 구현하는 것입니다.
2. Servlet 인터페이스에는 5가지 메소드가 있습니다.
public void init(ServletConfig config)는 ServletException을 발생시킵니다.
public void service(ServletRequest 요청, ServletResponse 응답)는 ServletException, IOException을 발생시킵니다.
public void destroy( );
public ServletConfig getServletConfig();
public String getServletInfo();
3. 서블릿 수명 주기 방법: init, service, destroy
(1) init: Servlet 클래스가 초기화된 후, init 메소드는 서블릿 컨테이너에 의해 호출됩니다. init 메소드는 한 번만 호출되어 서블릿이 서비스에 로드되었음을 나타냅니다. 서블릿이 요청을 성공적으로 수신하려면 init 메소드가 성공적으로 완료되어야 합니다. 서블릿 프로그래머는 이 메서드를 재정의하여 선반, 데이터베이스 드라이버, 값 초기화 등과 같이 한 번만 실행하면 되는 초기화 코드를 작성할 수 있습니다. 다른 경우에는 메서드가 비어 있습니다.
(2) 서블릿 컨테이너는 서블릿 컨테이너에 서비스 메소드를 호출합니다. 이 메소드는 ServletRequest 매개변수와 ServletResponse 매개변수를 수신하여 클라이언트의 요청 매개변수를 서블릿에 전달하는 데 사용됩니다. 서블릿 응답을 캡슐화하는 역할을 담당합니다. 서블릿 라이프사이클 동안 service() 메소드는 여러 번 호출됩니다.
(3) 파괴, 서버에서 서블릿 인스턴스를 제거하는 데 사용됩니다. 일반적으로 서블릿 컨테이너가 종료되거나 서블릿 컨테이너에 여유 메모리가 필요할 때, 모든 서블릿 컨테이너의 서비스 메서드가 종료되거나 시간이 초과되었습니다. 이 메서드가 호출되었습니다. 서블릿 컨테이너가 destroy 메소드를 호출한 후에는 동일한 서블릿에서 서비스 메소드가 다시 호출되지 않습니다. destroy 메소드는 메모리, 파일 핸들 및 스레드와 같이 점유된 자원을 정리하고 지속성을 확보할 수 있는 기회를 제공합니다. 현지화 상태는 서블릿 메모리의 현재 상태와 동기화됩니다.
4. 각 서블릿의 HTTP 요청에 대한 서블릿 컨테이너의 작동 과정
(1) 서블릿을 처음 호출할 때 서블릿 클래스를 로드하고 서블릿의 init 메소드를 호출합니다(한 번만). (2) 각 요청에 대해 javax.servlet.ServletRequest 인스턴스와 javax.servletServletResponse 인스턴스를 생성합니다.
(3) 서블릿의 서비스 메소드를 호출하고 ServletRequest 및 ServletResponse 객체를 동시에 전달합니다.
(4) 서블릿 클래스가 닫히면 서블릿의 destroy 메소드를 호출하고 srvlet 클래스를 언로드합니다.
위 내용은 Tomcat——간단한 서블릿 컨테이너의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!