欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Servlet的生命周期

程序员文章站 2022-06-03 11:38:26
...

1.什么是Servlet生命周期:

  • Servlet容器如何创建Servlet对象、如何为Servlet对象分配、准备资源、如何调用对应的方法来处理请求以及如何销毁Servlet对象的整个过程即Servlet的生命周期。
    Servlet的生命周期
    2.生命周期的四个阶段: 实例化+初始化(给这个对象预置一些数据)+就绪+销毁
  • 1)实例化(创建对象=实例化):何时实例化:默认是首次访问Servlet是实例化:也可以在容启动之后立刻创建实例;如何实现(在配置servlet-class属性标签后面加1)注:容器只会创建一个实例。参数值要求是一个大于等于0的整数,越小,优先级越高(即先创建)。
  • 2)初始化(给这个对象预置一些数据) Servlet创建必须初始化它的初始化就是调用init()方法。
    如何实现:GenericServlet的init方法是如何实现的将容器传递过来的ServletConfig对象保存下来,并且提供了一个获得该对象的方法(getServletConfig), 如何实现自已的初始化处理逻辑只需要override
    GenericServlet提供的init()方法。
    A、怎么配置数据(如何配置Servlet的初始参数):在web中servlet-calss属性标签之后load-on-startup属性标签之前加:如果要配置多数据甲多个节点。
<init-param>
  		<param-name>city</param-name>
  		<param-value>北京</param-value>
</init-param>

Servlet的生命周期
B、如何获取该初始参数在Servlet文件中从写他爷爷的init()方法可以通过:getServletConfig方法来获得ServletConfig对象数据。

 ServletConfig cfg = getServletConfig();
 String city=cfg.getInitParameter("city");
 String ServletConfig.getInitParameter(String paramName);

Servlet的生命周期
Tomcat只会调用父类中事先定义好的方法。
Servlet的生命周期

  • 3)就绪:从写service()方法:容器收到请求之后调用Servlet对象的service方法来处理请求。HttpServlet的service方法是如何实现的依据请求类型(get/post)调用对应的doXXX方法(doGet/doPost)。
    注:我们可以写一个servlet,继承HttpServlet,然后override
    doGet和doPost方法,或者也可以直接override service方法(通常写法)。
  • 4)销毁:servlet容器在销毁Servlet对象时会调用destroy方法来释放资源。通常情况下Servlet容器停止或者重新启动都会引起销毁Servlet对象的动作,但除此之外,Servlet容器也有自身管理Servlet对象的准则,整个生命周期并不需要人为进行干预。(从写destroy方法)
    总结:创建、初始化、销毁、只执行一次。就绪(工作可以反复执行)
  • 5)Servlet的核心接口与类
    Servlet的生命周期
    相关的几个类与接口
    1)Servlet接口init()service()destroy()
    2)GenericServlet抽象类实现了Servlet接口中的部分方法(init,destroy)
    3)HttpServlet抽象类继承GenericServlet抽象类,实现了service方法。
    Servlet的生命周期