JavaWeb 应用生命周期 和 Servlet生命周期 详解

介绍Servlet声明周期之前,先简单介绍下JavaWEB 应用的生命周期

  • JavaWeb 应用生命周期是由 Servlet 容器来控制的。
    归纳起来,JavaWeb 应用的生命周期包括3个阶段。
  1. 启动阶段:加载Web应用的有关数据,创建 ServletContext 对象,对Filter(过滤器)和一些Servlet进行初始化。
  2. 运行时阶段: 为客户提供服务。
  3. 终止阶段:释放 Web 应用所占用的各种资源。

  • 启动阶段
    1.把 web.xml 文件中的数据加载到内存中。
    2.为 JavaWeb 应用创建一个ServletContext 对象.
    3.对所有的 Filter 进行初始化。
    4.对那些需要在 Web 应用启动时就被初始化的 Servlet 进行初始化。
  • 运行时阶段
    • 这是 JavaWeb 应用最主要的生命阶段。在这个阶段,
      它的所有Servlet 都处于待命状态 ,随时可以响应客户端的特定请求,提供相应的服务。
      假如客户端请求的Servlet还不存在, Servlet容器会先初始化 Servlet,然后在调用它的 service() 服务方法。
  • 终止阶段
  • Servlet容器在终止 JavaWeb 应用时,会完成以下操作:
    1.销毁 JavaWeb 应用中所有处于运行时状态的 Servlet。
    2.销毁 JavaWeb 应用中所有处于运行时状态的 Filter
    3.销毁所有与 JavaWeb 应用相关的对象,如 ServletContext 对象等,
    并且释放 Web 应用所占用的相关资源。

Servlet生命周期

生命周期: 从出生——>死亡,中间过程;
大致可分为三个阶段: 1. 初始化阶段2. 运行时阶段3. 销毁阶段。
在 javax.servlet.Servlet 接口中定义了3个方法:init()、service()、destroy(),它们分别在Servlet的不同阶段被Servlet 容器调用。

  1. 初始化阶段 ( 调用: init(ServletConfig config) )

    • Servlet 容器加载Servlet类,把它的.class文件中的数据读入到内存中。
    • Servlet 容器创建 ServletConfig 对象。ServletConfig 对象包含了特定 Servlet的初始化配置信息,此外,Servlet容器还会使得 ServletConfig 对象与当前 Web 应用的 ServletContext对象关联
    • Servlet 容器创建 Servlet 对象
    • Servlet 容器调用 Servlet 对象的 init(ServletConfig config)方法.

    初始化步骤创建了 Servlet对象和ServletConfig对象,并且Servlet对象与ServletConfig关联,而ServletConfig 对象又与当前 Web 应用的ServletContext对象关联.
    关于初始化时机: 特定Servlet被客户端首次访问 / web.xml文件中为一个Servlet 设置了 元素(值要为正数),如果web.xml文件中为Servlet配置了该属性,在启动tomcat服务器时就会初始化该类。

  2. 运行时阶段
    Servlet的生命周期中最重要的阶段.在这个阶段,Servlet可以随时响应客户端的请求。当Servlet容器接收到要求访问的特定 Servlet 的客户请求,Servlet 容器会创建针对于这个请求的 ServletRequest 对象 和 ServletResponse 对象,然后调用相应Servlet对象的 service() 方法

  3. 销毁阶段
    当Web应用被终止时,Servlet 容器会先调用 Web 应用中所有对象的 destroy()方法,然后再销毁这些Servlet对象


JavaWeb 应用生命周期 和 Servlet生命周期 详解_第1张图片

Servlet 初始化参数 (ServletConf )

ServletConfig对象包含了特定 Servlet的初始化配置信息,此外,Servlet容器还会使得 ServletConfig 对象与当前 Web 应用的 ServletContext对象关联


JavaWeb 应用生命周期 和 Servlet生命周期 详解_第2张图片

ServletContext 与 Web 应用范围

Servlet 容器在启动一个 Web 应用时,会为它创建唯一的 ServletContext 对象.
当Servlet 容器终止一个 Web 应用时,就会销毁它的 ServletContext 对象。

Servlet 继承分析

JavaWeb 应用生命周期 和 Servlet生命周期 详解_第3张图片

HttpServletRequest 常用方法

JavaWeb 应用生命周期 和 Servlet生命周期 详解_第4张图片

HttpServletResponse 常用方法

JavaWeb 应用生命周期 和 Servlet生命周期 详解_第5张图片


请求中文乱码的问题处理

关于请求乱码问题原由,可参考另外一篇文章:Get请求乱码

JavaWeb 应用生命周期 和 Servlet生命周期 详解_第6张图片

你可能感兴趣的:(JavaWeb)