Как отключить локальный сервер Tomcat при закрытии окна браузера? - PullRequest
0 голосов
/ 22 апреля 2010

У меня есть веб-приложение, работающее на локальном сервере Tomcat.

Когда пользователь запускает приложение (с помощью ярлыка на рабочем столе), сервер запускается и приложение открывается в окне браузера. Но когда пользователь просто нажимает кнопку закрытия, чтобы остановить приложение, сервер все еще работает в фоновом режиме - это раздражает.

Я пытался использовать события «unonload» и «onbeforeunload» из javascript, но, к сожалению, эти события также запускаются по некоторым другим запросам в приложении. Поэтому я не могу их использовать, кроме как много занимаюсь рефакторингом.

У кого-нибудь есть идея возможного решения?

Кстати, меня интересует поведение Visual Studio при отладке веб-приложения. Когда я закрываю окно браузера, Visual Studio также получает триггер, чтобы остановить режим отладки. Так что, похоже, он как-то замечает событие закрытия окна браузера, которое будет именно тем, что мне нужно. Но я не знаю, как они это делают ...

Ответы [ 2 ]

1 голос
/ 22 апреля 2010

Можете ли вы обернуть запуск Tomcat и запуск вашего приложения в пакетный файл или сценарий оболочки?(Не уверен, какая у вас целевая ОС ...)

Скрипт / пакетный файл запустит Tomcat, а затем запустит ваше приложение.Когда пользователь выходит из вашего приложения, сценарий / пакетный файл завершает работу Tomcat.

0 голосов
/ 22 апреля 2010

Вы можете установить короткий тайм-аут сеанса и использовать HttpSessionListener.На sessionDestroyed(..) вы можете остановить tomcat (например, используя catalina.bat).

В противном случае вы можете попытаться обнаружить закрытие браузера и отправить сообщение о завершении работы на сервер с помощью ajax (передбраузер закрыт).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...