调用 servlet 的销毁方法

2022-09-02 13:33:46

根据链接 http://www.xyzws.com/Servletfaq/when-is-destroy-of-servlets-called/20,调用 destroy 方法的原因之一是 servlet 在很长一段时间内没有收到请求

我在想,可能有一些页面在很长一段时间内没有被调用。那么,这是否意味着销毁将被调用,它们将不再被使用?

实际上,我在采访中被问到这个问题,他告诉我,只有在服务器关闭时才会调用销毁方法。

感谢任何帮助。


答案 1

阿法伊克,

在java servlet中,不应该被程序员调用。但是,如果它被调用,它将被执行。隐含的问题是,servlet会被摧毁吗?不,它不会。 方法不应该也不会破坏java servlet。destroy()destroy()

在java servlet中的含义是,当容器决定销毁servlet之前,内容被执行。但是,如果您自己调用该方法,则内容就会被执行,然后相应的过程继续。对于相应的这个问题,执行,然后完成 servlet 初始化。destroy()destroy()destroy()

destroy()首先调用方法,然后从容器中删除 Servlet,然后最终进行垃圾回收。 方法通常包含释放任何资源(如 JDBC 连接)的代码,这些资源不会被垃圾回收。destroy()


答案 2

几种情况:

  1. 当容器关闭或应用程序关闭时;
  2. 当容器确定内存不足时;
  3. 当这个 servlet 在很长一段时间内没有收到请求时。

根据文档

由 servlet 容器调用,以向 servlet 指示该 servlet 正在停止服务。仅当 servlet 的服务方法中的所有线程都退出或超时期限过后,才会调用此方法。在 servlet 容器调用此方法后,它不会在此 servlet 上再次调用服务方法。


推荐