HTTP Servlet的生命周期

Posted wjq2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP Servlet的生命周期相关的知识,希望对你有一定的参考价值。

  Servlet运行在容器中,没有main方法,所以生命周期由容器控制。简单地说,Servlet的生命周期只有两个状态:未创建状态和初始化状态,通过3个方法来控制:init()、service()和destroy()。其中,init()方法是Servlet生命的起点,用于占有与Servlet相关的资源以及完成初始化工作;service()方法根据HTTP请求方法(get、post等)将请求分发给doGet()和doPost()等方法;destroy()方法释放在init()方法中占有的与Servlet实例相关的资源。

  Servlet的状态图如下:

  技术分享图片

  具体而言,Servlet的生命周期分为加载、创建、初始化、处理请求和卸载5个阶段。

  1. 加载

  容器通过类加载器使用Servlet类对应的文件来加载Servlet。

  2. 创建

  调用Servlet的构造方法来创建一个Servlet实例。

  3. 初始化

  调用Servlet实例的init()方法完成初始化工作,在处理请求前被调用且只会被调用一次。

  4. 处理请求

  每当有新的请求到达时,容器会创建一个新的线程来处理该请求,调用Servlet实例的service()方法响应请求。其中,service()方法根据请求的method属性值的不同调用doGet()方法或者doPost()方法。

  5. 卸载

  容器在卸载Servlet实例之前会调用destroy()方法,释放Servlet实例占有的资源,该方法只会被调用一次。

 

  参考资料

  《Java程序员面试笔试宝典》 P168-169

以上是关于HTTP Servlet的生命周期的主要内容,如果未能解决你的问题,请参考以下文章

Servlet的生命周期

Servlet 生命周期工作原理

Servlet的生命周期

JSP的生命周期

Servlet生命周期

Servlet生命周期与工作原理