servlet的生命周期

时间:2022-12-23 08:00:27

servlet的生命周期,就是从创建到销毁的过程

生命周期的相关方法

  • init()
  1. 在创建该servlet实例时,调用该方法;
  2. 一个servlet只会初始化一次,init方法也只会执行一次;
  3. 默认是首次访问servlet时创建servlet实例,调用init方法
  • service()
  1. 只要客户端发送请求,就需要执行该方法处理;
  2. 该方法可以被执行多次,一个请求对应一个service方法的处理执行
  • destroy()
  1. servlet销毁的时候调用该方法,servlet容器控制servlet实例的销毁
  2. 项目从tomcat中移除
  3. tomcat正常结束,shutdown.bat
  • 注:doGet 和 doPost不算生命周期方法,所谓的生命周期方法是指,从对象的创建到销毁一定会执行的方法, 但是这两个方法,不一定会执行。

 

默认情况下,只有在初次访问servlet的时候,才会执行init方法。 有的时候,我们可能需要在这个方法里面执行一些初始化工作,甚至是做一些比较耗时的逻辑。

那么这个时候,初次访问,可能会在init方法中逗留太久的时间。 那么有没有方法可以让这个初始化的时机提前一点。

在配置的时候, 使用load-on-startup元素来指定, 给定的数字越小,启动的时机就越早。 一般不写负数, 从2开始即可。

<servlet>
	  <servlet-name>HelloServlet</servlet-name>
	  <servlet-class>com.qf.servlet.HelloServlet</servlet-class>
	  <load-on-startup>2</load-on-startup>
</servlet>