Servlet基础(二) Servlet的生命周期

 

Servlet基础(二) Servlet的生命周期

 

  Servlet的生命周期可以分为三个阶段:

  1.初始化阶段

  2.响应客户请求阶段

  3.终止阶段

 

Servlet的初始化阶段

  在下列时刻Servlet容器装载Servlet:

  1.Servlet容器启动时自动装载某些Servlet。

  2.在Servlet容器启动后,客户首次向Servlet发出请求。

  3.Servlet的类文件被更新后,重新装载Servlet。

 

  Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。

  在Servlet的整个生命周期中,init方法只会被调用一次

 

Servlet对象何时被创建?

  默认情况下,当Web客户第一次请求访问某个Servlet时,Web容器创建这个Servlet的实例。

  但web.xml中如果设置了<servlet>元素的<load-on-startup>子元素,Servlet容器在启动Web应用时,将按照指定的顺序(元素值从小到大)创建并初始化这个Servlet。

  如下:

 

    <servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>com.shengqishiwind.servlet.MyServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>

 

 

  注:<servlet-mapping>提供了URL向servlet元素的映射,如下:

 

    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/MyServlet</url-pattern>
    </servlet-mapping>

 

  但有些时候某些Servlet在web.xml中没有 <servlet-mapping>,只有  <servlet>标签,即不能通过URL直接访问。

  它们是用来做什么的呢?

  答案是:

  它们会被用来做一些全局性的初始化工作。

  这种Servlet在元素中加入<load-on-startup>子元素,在启动Web应用时,这些Servlet会被自动加载,其中的init方法会被调用,完成一些初始化工作。

 

 

Web应用何时被启动?

  当Servlet容器启动时,会启动所有的Web应用。

  通过控制台启动Web应用。

 

 

Servlet的响应客户请求阶段

  对于到达Servlet容器的客户请求,Servlet容器创建特定于这个请求的ServletRequest对象和ServletResponse对象,然后调用Servlet的service方法。

  service方法从ServletRequest对象获得客户请求信息、处理该请求,并通过ServletResponse对象向客户返回响应结果。

 

Servlet的终止阶段

  当1)Web应用被终止,或2)Servlet容器终止运行,或3)Servlet容器重新装载Servlet的新实例时,Servlet容器会先调用Servlet的destroy方法。

  在destroy方法中,可以释放Servlet所占用的资源。

 

参考资料

  圣思园张龙老师Java Web视频教程。

posted @   圣骑士wind  阅读(2150)  评论(1编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示