Как реализовать выход из системы в приложении Struts
Вопрос
У меня есть приложение J2EE, в котором выход из системы не реализован должным образом, мое намерение состоит в том, чтобы закрыть все ресурсы базы данных после выхода пользователя из системы.Не уверен, что session.invalidate();действительно поможет, я попробую это сегодня.Пожалуйста, посоветуйте, как лучше всего реализовать выход из системы, чтобы все ценные ресурсы были освобождены после выхода пользователя из системы.
Решение
мое намерение состоит в том, чтобы закрыть все ресурсы базы данных после выхода пользователя из системы
Это уже признак плохой практики.Ресурсы базы данных должны быть приобретены и закрыт в минимально возможном объеме, т.е.внутри того же самого блока методов.Возможно, вы никогда не получите доступ к ресурсу базы данных (Connection
, Statement
и/или ResultSet
) как статическая переменная или экземпляр.Это приводит к утечке ресурсов и более серьезным неприятностям.
Если первоначальная цель состоит в повышении производительности подключения, вам необходимо ввести пул подключений.Имейте в виду, что это не повод держать соединения открытыми себя.Просто приобретите и закройте их как можно скорее таким же образом, сама реализация пула соединений будет беспокоиться о фактическом закрытии соединения или выпуске его обратно в пул.Все это полностью прозрачно.Достойные серверы приложений поставляются с возможностями объединения в пул соединений в соответствии с источниками данных JNDI.Воспользуйтесь этим.Сделав это, вам вообще не нужно беспокоиться ни о каких открытых ресурсах базы данных, ни о производительности.
Другие советы
Пожалуйста, сделайте так, как
- Используйте свое соединение и другие классы базы данных, чтобы удалить ресурсы БД.
- Очистите сеанс с помощью объекта session.
- Проверьте наличие файлов cookie, которые вы создали в приложении, и удалите необходимый один или все.