资源清算代码应该在GWT应用程序中的哪个位置?

时间:2013-06-03 07:00:40

标签: java gwt servlets

大家好日子!

我正在开发GWT框架上的Web应用程序。我创建了一个特殊的servlet,我实现了异步方法。在servlet init()方法中,我创建了连接池,我希望在应用程序close()事件中销毁它。

在名为destroy()的servlet的内置方法中,我将我的代码负责资源清除,但它似乎永远不会运行。

我应该清除资源或者如何强制使用destroy()方法?关闭网页浏览器没有帮助。 init()会运行,但destroy()不会运行。

2 个答案:

答案 0 :(得分:2)

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

查看Execute code on window close in GWT

答案 1 :(得分:1)

你在这里混合了两件事。

查看JavaDoc for Servlet.destroy() - 它特别指出“由servlet容器调用以向servlet指示servlet正在停止服务”,这并不意味着关闭浏览器将调用此方法。但是,停止或以其他方式强制完全刷新容器

与您更相关的是WindowCloseListener - 您可以实现onWindowClosed()来调用RPC方法来清理后端,只需记住在下一个{重新设置池'即可{1}}!

干杯,