码迷,mamicode.com
首页 > Web开发 > 详细

HTTP Servlet的生命周期

时间:2018-01-10 21:36:26      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:通过   servlet   状态   ice   http   log   分发   使用   简单   

  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   状态   ice   http   log   分发   使用   简单   

原文地址:https://www.cnblogs.com/WJQ2017/p/8260654.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!