Servlet对象生命周期

Servlet对象生命周期,第1张

什么是Servlet对象生命周期?

Servlet对象什么时候被创建?
Servlet对象什么时候被销毁?
Servlet对象对象创建了几个?
Servlet对象的生命周期表示:一个Servlet对象从出生到最后的死亡,整个过程是怎样的。

Servlet对象是由谁来维护的?

Servlet对象的创建,、对象方法的调用、对象最终的销毁程序员无权干预。
Servlet对象的生命周期是由Tomcat服务器全权负责。
Tomcat服务器通常又称为WEB容器。
WEB容器管理Servlet对象。

思考:自己new出来的Servlet对象是否受WEB容器的管理?

WEB容器创建的Servlet对象都会被放到一个集合当中,只有被放到这个集合当中的Servlet才能被WEB容器管理,故自己new的不会被WEB容器管理。

  • 研究:服务器在启动的时候,Servlet对象有没有被创建(默认情况下)?
    默认情况下,服务器在启动Servlet对象并不会被实例化。
    这个设计是合理的,用户没有发送请求之前,如果提前创建出来所有的Servlet对象,必然是耗费内存的,并且创建出来的Servlet如果一直没有对象访问,显然这个Servlet对象没必要先创建。
  • 怎么让服务器启动的时候创建Servlet对象呢?
    在servlet标签中添加子标签,并在该子标签中填写整数,越小的整数优先级越高。
<load-on-startup>1load-on-startup>
Servlet对象生命周期
  • 默认情况下服务器启动的时候Servlet对象并没有被实例化。
  • 用户在发送第一次请求的时候Servlet对象被实例化。
  • Servlet对象被创建出来之后,Tomcat服务器马上调用了Servlet对象的init方法。
  • 用户发送第一次请求的时候,init方法执行之后,Tomcat服务器会马上调用Servlet对象的service方法。并且,当用户继续发送请求的时候,Servlet对象并没有新建,还是使用之前创建的对象,直接调用该Servlet对象的service方法。这说明:
    1.Servlet对象是单例的。
    2.无参数构造方法、init方法只在第一次用户发送请求的时候执行。
    3.用户发送多少次请求,service方法就被Tomcat服务器调用多少次。
  • 关闭服务器的时候:
    1.Servlet的destroy方法只被Tomcat服务器调用一次。
    2.destroy方法在服务器关闭的时候被调用,因为要销毁Servlet对象的内存。
tips
  • 思考:Servlet的午餐构造方法实在对象第一次创建的时候执行,并且只执行一次。init方法也是在对象第一次创建的时候执行,并且只执行一次,那么这个无参构造方法是否可以代替init方法?
    1.不能。
    2.Servlet规范种有要求,在编写Servlet类的时候,不建议手动编写构造方法,因为这样做很容易让无参构造方法消失,这个 *** 作可能会导致Servlet对象无法实例化。所以init方法是有存在的必要的。
  • init、service、destroy方法小谈
    1.使用最多的就是service方法,这个方式是必须要实现的,因为它是负责处理用户请求的核心方法。
    2.init方法很少用。通常在init方法中做初始化 *** 作,并且这个初始化 *** 作只执行一次。
    3.destroy方法也很少用。通常在destroy方法中进行资源的关闭。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/729377.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存