Servlet生命周期

Servlet 生命周期

Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:

  • Servlet 通过调用 init () 方法进行初始化。
  • Servlet 调用 service() 方法来处理客户端的请求。
  • Servlet 通过调用 destroy() 方法终止(结束)。
  • 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

    1. init()方法

          在Servlet的生命周期中,仅执行一次init()方法,它是在服务器装入Servlet时执行的,可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init();

    2. service()方法

          它是Servlet的核心,每当一个客户请求一个HttpServlet对象,该对象的Service()方法就要调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存在Service()方法。默认的服务功能是调用与HTTP请求的方法相应的do功能。

    3. destroy()方法

          仅执行一次,在服务器端停止且卸载Servlet时执行该方法,有点类似于C++的delete方法。一个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。

  • 运行原理
Servlet生命周期


大致思路:

1:Web Client客户端向Servlet容器(tomcat)发出Http请求 
2:Servlet容器接收Web Client的请求 
3:Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中。 
4:Servlet容器创建一个HttpResponse对象 
5:Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数传递给HttpServlet对象。 
6:HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息 
7:HttpServlet调用HttpResponse对象的有关方法,生成响应数据 

8:Servlet容器把HttpServlet的响应结果传入Web Client。