Java loadOnStartup时的servlet生命周期

Java loadOnStartup时的servlet生命周期,java,servlets,Java,Servlets,当我们在web.xml中将任何servlet称为loadOnStartup时,肯定会调用它的init方法。只是想确认服务和销毁方法是否也被调用?如果不是在他们接到电话时 另一个问题是,每次都会提到init方法只调用一次。这是否意味着当servlet第一次收到请求时,将调用init方法,然后调用service 但我们不会称之为毁灭。当第二个请求发出时,它将再次简单地调用服务方法,而不是init方法。这种理解正确吗?但是当容器决定调用销毁方法时? loadOnStartup意味着将在容器启动期间加载

当我们在web.xml中将任何servlet称为
loadOnStartup
时,肯定会调用它的
init
方法。只是想确认
服务
销毁
方法是否也被调用?如果不是在他们接到电话时

另一个问题是,每次都会提到
init
方法只调用一次。这是否意味着当servlet第一次收到请求时,将调用
init
方法,然后调用
service

但我们不会称之为毁灭。当第二个请求发出时,它将再次简单地调用服务方法,而不是init方法。这种理解正确吗?但是当容器决定调用销毁方法时?

  • loadOnStartup
    意味着将在容器启动期间加载servlet(及其
    init(..)
    方法)。否则,正如您所怀疑的,将在第一个请求到来时加载它
  • 容器只有每个servlet的一个实例。创建它时,它们调用
    init(..)
    。当上下文取消部署(例如,容器停止)时,调用
    destroy()

loadOnStartup
优先考虑哪些线程先于其他线程加载。Servlet容器将加载Servlet并调用
init
方法。如果
web.xml
中未提及
loadOnStartup
,则当存在需要Servlet的请求调用时,将实例化serlvet

servlet的初始化只发生一次。一旦初始化,servlet容器将保留它

对于请求处理,servlet容器调用serlvet的
service()
方法,当servlet容器关闭时,它将调用所有servlet的
destroy()
方法并从容器中删除servlet


有关更多信息,请查看一些解释,或从。

当我们在
web.xml
中启用启动时加载启用时,我们的servlet程序将在服务器启动期间实例化。这意味着每个请求将花费相同的时间进行响应