如何解决我们应该从Servlet的init和service方法中调用destroy方法吗?
| 我们应该从Servlet中的init()
和service()
方法中调用destroy()
方法吗?我在博客中得到了许多令人困惑的答案。
据我了解,如果我们要覆盖Servlet中的ѭ0when,那么当我们从init()
调用destroy()
方法时,它应该调用并销毁Servlet。然后,该servlet将被销毁。
以上理解正确吗?
解决方法
都不是真的。
Servlet的ѭ0方法仅在容器将要关闭时才被调用。在容器关闭期间,所有servlet将被销毁。您不应该自己调用该方法。
destroy()
方法只是为您提供了在关机时执行一些代码的机会。例如,关闭在“ 1”期间打开的某些外部资源。
例如。
private SomeExternalResource someExternalResource;
@Override
public void init() {
someExternalResource = new SomeExternalResource();
}
@Override
public void destroy() {
someExternalResource.close();
}
当您没有任何需要清理的地方时,您不一定需要实现该方法。
,在Java Servlet中,程序员不应调用destroy()
方法。但是,如果调用它,它将被执行。但是主要的问题是,servlet是否会被破坏?不,不会。 destroy()
方法不会破坏Java Servlet。当Web容器由于任何原因(例如服务器重启)而要销毁Servlet时,它只是被调用的方法(我们可以说是一个事件)。
但是,如果您自己调用destroy()
方法,则仅执行内容,然后继续进行相应的处理。针对这个问题,执行“ 0”,然后完成servlet初始化。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。