zoukankan      html  css  js  c++  java
  • 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视频教程。

  • 相关阅读:
    【python】 time模块和datetime模块详解 【转】
    【python 】装饰器 (多个参数的函数,带参数的装饰器)【转】
    从测试角度对测试驱动开发的思考【转】
    mysql性能优化-慢查询分析、优化索引和配置【转】
    【python 】Requests 库学习笔记
    二本院校计算机专业考研上岸985
    mysql创建触发器
    pat 1134 Vertex Cover (25分) 超时问题
    数据库三级封锁协议简述
    pat 1139 First Contact (30分) 题目详解
  • 原文地址:https://www.cnblogs.com/mengdd/p/3202570.html
Copyright © 2011-2022 走看看