2016-05-06 10 views
1

Я строю стандартное веб-приложение GWT, и я также использую базу данных MySql. Каждый раз, когда я переписываю свое приложение, моя база данных удаляется и начинается. Я знаю, что могу остановить его от падения таблицы, но я также хочу сохранить свою базу данных перед каждым ее перекомпиляцией. Мои вопросы: 1. Где я помещаю этот метод и как его «использовать»? 2. Каков наилучший вариант в ваших мнениях по сохранению этой базы данных?Как выполнять действия перед запуском/закрытием приложения gwt?

спасибо за помощь

+0

Где вы положили метод, чтобы удалить базу данных? – dydigging

+0

нет ... База данных сбрасывается с помощью mysql ... Я спрашиваю, когда я запускаю gwt на localhost ... вижу, что все работает, а не отключает приложение, чтобы продолжить кодирование в нем. Так что я хочу сделать некоторые действия, прежде чем приложение закроет как это сделать ... –

ответ

0

Если вы хотите выполнить какое-либо действие, прежде чем приложение закрывается, просто добавить обработчик событий, как этот

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

Вы можете использовать ServletContextListener. Тогда вы можете слушать contextInitialized и contextDestroyed событий, которые (в общем) веб-приложение, запускаемые и веб-приложение-стоп:

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> 
+0

спасибо, я попробую! я расскажу, как это происходит :) –