大家好日子!
我正在开发GWT框架上的Web应用程序。我创建了一个特殊的servlet,我实现了异步方法。在servlet init()
方法中,我创建了连接池,我希望在应用程序close()事件中销毁它。
在名为destroy()
的servlet的内置方法中,我将我的代码负责资源清除,但它似乎永远不会运行。
我应该清除资源或者如何强制使用destroy()方法?关闭网页浏览器没有帮助。 init()
会运行,但destroy()
不会运行。
答案 0 :(得分:2)
在java servlet中,destroy()
不应该由程序员调用。但是,如果它被调用,它就会被执行。隐含的问题是,servlet会被破坏吗?不,它不会。 destroy()
方法不应该也不会破坏java servlet。
答案 1 :(得分:1)
你在这里混合了两件事。
查看JavaDoc for Servlet.destroy()
- 它特别指出“由servlet容器调用以向servlet指示servlet正在停止服务”,这并不意味着关闭浏览器将调用此方法。但是,停止或以其他方式强制完全刷新容器。
与您更相关的是WindowCloseListener
- 您可以实现onWindowClosed()
来调用RPC方法来清理后端,只需记住在下一个{重新设置池'即可{1}}!
干杯,