servlet对象的生命周期

servlet对象的生命周期

  • 什么是servlet对象生命周期?

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

    • 由Tomcat(各种服务器总体称为web容器)全权负责,程序员不能干预
  • 我们自己new的servlet对象web容器管理不到

    • web容器创建的servlet对象,这些servlet对象会被放到一个Hashmap集合,这样才能被Tomcat管理(所以自己创建的对象没有放进这个集合)在这里插入图片描述
  • 服务器在启动的时候Servlet没有被创建

    • 测试方法:在一个Servlet对象里设置一个构造方法,启动服务器,发现方法并未被调用,所有得到结论
    • 服务器启动的时候读取配置文件里的信息,将对象放入这个Hashmap集合里
  • 怎么让服务器启动的时候就创建Servlet对象

    • 在配置文件添加启动时创建的一条语句即可:1语句中间的数越小,优先级越高
  • Servlet对象生命周期

    • 默认情况下,服务器启动的时候Servlet对象并没有被实例化

    • 用户发送第一次请求的时候,Servlet对象被实例化

    • Servlet对象被创建出来之后,Tomcat服务器马上调用了init方法(所有:init方法执行时,Servlet对象已经存在,已经被创建出来了)

    • 用户发送第一次请求的时候,init方法执行以后,Tomcat服务器马上调用Servlet对象的service方法

    • 用户继续发送第二次或多次请求时,只有service方法再次执行

      • 第一:Servlet对象是单例的(单实例的。但是要注意:Servlet对象是单实例的,但是Servlet类不符合单例模式,我们称它为假单例。之所以单例是因为Servlet对象的创建程序员管不着,这个对象的创建由Tomcat来说了算,Tomcat只创建了一个,所以导致了单例,但是是属于假单例。真单例模式,构造方法是私有化的)单例模式详细内容请看http://t.csdn.cn/c0V0M
      • 第二:无参构造方法,init方法只在第一次用户发送请求的时候执行。也就是说无参构造方法只执行一次。init方法也只被Tomcat服务器调用一次
      • 第三:只要用户发送一次请求,service方法必然被调用一次
    • 关闭服务器的时候destroy方法只被Tomcat服务器调用一次

      • destroy方法是什么时候被调用:
        • 在服务器关闭的时候
        • 因为服务器关闭的时候要销毁Servlet对象的内存
        • 服务器在销毁Servlet对象内存之前,Tomcat服务器会自动调用Servlet对象的destroy方法
      • destroy方法调用的时候,对象销毁了还是没有销毁
        • destroy方法不是static,只有该方法执行完后,该内存才会被释放
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值