【问题标题】:How to do actions before the gwt app restarts/closes?如何在 gwt 应用程序重新启动/关闭之前执行操作?
【发布时间】:2016-09-01 22:02:44
【问题描述】:

我正在构建一个标准的 GWT Web 应用程序,并且我也在使用一个 MySql 数据库。 每次我重新编译我的应用程序时,我的数据库都会被删除并重新开始。 我知道我可以阻止它删除表,但我也想在每次重新编译它之前保存我的数据库。 我的问题是: 1.我在哪里放置该方法以及如何“使用它”? 2. 您认为保存该数据库的最佳选择是什么?

感谢您的帮助

【问题讨论】:

  • 你把删除数据库的方法放在哪里了?
  • no...drop 数据库是用 mysql 完成的...我问我什么时候在 localhost 上运行 gwt...看看一切正常,然后关闭应用程序以继续在其中编码.所以我想在应用关闭之前做一些操作如何做到这一点......

标签: java database gwt save finalize


【解决方案1】:

您可以使用ServletContextListener。然后您可以收听contextInitializedcontextDestroyed 事件(简而言之)web-app-start 和 web-app-stop:

public class MyContextListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        // app has started
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        // app has stopped
    }
}

您还需要将其放入您的web.xml(替换为必须在服务器端上的实际包名称):

<listener>
    <listener-class>com.adam.test.server.MyContextListener</listener-class>
</listener>

【讨论】:

    【解决方案2】:

    如果您想在应用关闭之前执行一些操作,只需添加这样的事件处理程序

    Window.addWindowClosingHandler(new Window.ClosingHandler(){
                        @Override
                        public void onWindowClosing(Window.ClosingEvent event) {    
                            /*do some actions before app closes*/
                        }
                    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-03
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      • 1970-01-01
      • 2018-08-12
      • 2011-10-29
      相关资源
      最近更新 更多