zoukankan      html  css  js  c++  java
  • Servlet的生命周期

    初始化阶段:
    (1)Servlet容器加载Servlet类,把他的.class文件数据读入到内存中。
    (2)Servlet容器创建了ServletConfig对象。ServletConfig对象包含了特定的Servlet的初始化配置信息,如Servlet初始参数。
    此外,Servlet容器还会使得ServletConfig对象与当前Web应用的ServletContext对象关联。
    (3)Servlet容器创建了Servlet对象。
    (4)Servlet容器调用Servlet对象的init(ServletConfig config)方法。 在Servlet接口的GenericServlet实现类的init(ServletConfig config)方法中,会建立Servlet对象与ServletConfig对象的关联关系。

    什么时候会进入初始化阶段?
    (1)当前Web应用处于运行时阶段,特定的Servlet被客户端首次请求访问。
    (2)如果web.xml文件中为一个Servlet设置了元素,那么当Servlet容器启动Servlet所属的Web应用时,就会初始化这个Servlet。
    (3)当Web应用被重新启动时,Web应用中的所有Servlet都会在特定的时刻被重新初始化。

    运行时阶段:
    这个是Servlet的生命周期中最重要的阶段。在这个阶段。Servlet可以随时响应客户端的请求。当Servlet容器接收到要求访问特定Servlet的客户端请求时,Servlet容器会创建针对这个请求的ServletRequest和ServletResponse对象,然后调用相应的service()方法。service方法从ServletRequest对象中获得客户端请求信息并处理该请求,再通过ServletResoponse对象生成响应结果。注意:当Servlet容器把Servlet生成的响应结果发送给了客户,Servlet容器就会销毁ServletRequest对象和ServletResponse对象。

    销毁阶段:
    当Web应用被终止时。Servlet容器会先调用Web应用中所有Servlet对象的destroy()方法,然后再销毁这些Servlet对象。此外,容器还会销毁与Servlet对象关联的ServletConfig对象。

  • 相关阅读:
    redis requires Ruby version >= 2.2.2.
    redis-持久化、主从复制、集群
    lucene索引文件大小优化小结
    spring+websocket的整合实例--可使用
    使用nexus3.10搭建maven私有仓库
    oracle 查看所有表的数据量并排序
    Spring框架-经典的案例和demo,一些可以直接用于生产,使用atomikos来处理多数据源的一致性事务等
    ORACLE WITH AS 用法
    判断对象部分属性是否为空
    代码行数统计
  • 原文地址:https://www.cnblogs.com/-mjs/p/11254212.html
Copyright © 2011-2022 走看看