2.7.3 JSP Servlet的生命周期

2.7.3 JSP Servlet的生命周期

JSP的本质就是Servlet,开发者编写的JSP页面将由web容器编译成对应的Servlet,当Servlet在容器中运行时,其实例的创建及销毁等都不是由程序员决定的,而是由Web容器进行控制的。
创建Servlet实例有两个时机。

  1. 客户端第一次请求某个Servlet时,系统创建该Servlet的实例:大部分的Servlet都是这种Servlet
  2. Web应用启动时立即创建Servlet实例,即load-on-startup这个Servlet

每个Servlet的运行都遵循如下生命周期

  1. 创建Servlet实例。
  2. Web容器调用Servletinit方法,对Servlet进行初始化
  3. Servlet初始化后,将一直存在于容器中,用于响应客户端请求。
    1. 如果客户端发送GET请求,容器调用ServletdoGet()方法处理并响应请求;
    2. 如果客户端发送POST请求,容器调用ServletdoPost()方法处理并响应请求。
    3. 或者统一使用service()方法处理来响应用户请求。
  4. web容器决定销毁Servlet时,先调用Servletdestroy方法,通常在关闭web应用之时销毁Servlet

Servlet的生命周期如图2.33所示。