сессия на рабочем столе Java - PullRequest
2 голосов
/ 10 мая 2011

Кто-нибудь знает, можем ли мы создать сессионный механизм в настольном Java-приложении? Я собираюсь разработать настольное приложение Java, которое имеет механизм входа в систему, чтобы гарантировать, что только авторизованные люди могут получить доступ к хранимой информации, тогда я думаю, что java может что-то наподобие сеанса или есть какой-то механизм для чего-то вроде сеанса. это все. может кто-нибудь объяснить?

Ответы [ 2 ]

4 голосов
/ 10 мая 2011

В основном сеанс состоит из набора двоичных или сериализованных объектов, сопоставленных с идентификатором сеанса.Либо самостоятельно, либо, скорее всего, через карту или таблицу.Так что да, вы можете реализовать нечто подобное, используя умную схему БД.Просто будьте осторожны с тем, кто может видеть (и использовать) эту БД.

Я думаю, однако, ваш подход не самый лучший.В конце концов, я думаю, что приложение будет использоваться одним пользователем в любое время на каждой машине, поэтому я не думаю, что это лучший подход.Скорее вы должны каким-то образом сохранить текущую «сессию» (состояние приложения AKA), вместо того, чтобы думать о сеансе как о сервлете.

0 голосов
/ 10 мая 2011

Сессия - это просто хэш-карта, которая является одноэлементной на пользователяТаким образом, вы можете думать, что у каждого пользователя есть своя хэш-карта, которая позволяет ему хранить объекты.В сервлете сеанс обеспечивается интерфейсом HttpSession.

Сеансовый механизм зависит от архитектуры вашего приложения. Если это реализация с толстым клиентом, которая содержит только 2 уровня (уровень базы данных и клиент Java), и большинство бизнес-кодов встроены внутрьjava-приложение, то у каждого пользователя есть своя JVM для запуска java-кода на своих компьютерах. Таким образом, вы просто создаете одноэлементную хеш-карту для настольного приложения. Когда приложение запускается, просто инициализируйте эту хеш-карту и введите ключ и его логическое значение.чтобы указать статус входа пользователя (например, singltonHashmap.put ("LOGIN" , false)). После входа пользователя вы должны обновить значение ключа LOGIN до true, чтобы указать, что пользователь вошел в систему.

Если Java-приложение для настольных компьютеров является реализацией тонкого клиента, у которого есть сервер приложений для обработки всех запросов от всех пользователей, то вы можете использовать stateful session bean, определенный Enterprise JavaBeans specification (EJB).сопоставление to-one между клиентом и экземпляром сессионного компонента с сохранением состояния. Сервер приложений будет следить за тем, чтобы последующие вызовы метода одним и тем же клиентом обрабатывались одним и тем же экземпляром с сохранением состояния.Вы просто объявляете хеш-карту в сессионных компонентах с состоянием и помещаете объекты, которые вы хотите отслеживать во время диалога, в эту хеш-карту.Вот пример для вашей справки.

...