прежде всего извините за мой английский. Я поставил свой вопрос на различных немецких форумах, но я не получил ответа :-( возможно, вы мне поможете.
Я работаю с JSF 2.0. Мы должны создать веб-приложение, которое подключается к бэкэнд-серверу, где хранится вся информация - это не проблема.
Моя проблема заключается в следующем:
У меня есть например 2 пользователя.
Пользователь 1 входит в систему -> сообщение отправляется на внутренний сервер -> будет получено сообщение с информацией о пользователе -> идентификатор пользователя будет установлен в 1
Пользователь 2 входит в систему -> ... -> идентификатор пользователя будет установлен на 2.
НО идентификатор пользователя 1 также будет установлен на 1.
Это означает, что оба пользователя совместно используют один экземпляр моего класса User?
Я думал, что каждый пользователь получает свой собственный экземпляр классов Java, где хранится только информация HIS.
Вот немного кода:
login.xhtml
<h:body>
<f:view>
<h:inputText id="name" value="#{user.name}" />
<h:inputSecret id="passwort" value="#{user.password}" />
....
<h:commandButton id="login" action="#{communicator.validate}" />
Вы вводите пользователя и пароль, коммуникатор отправляет сообщение бэкэнду и получает его.
Communicator.java
@ManagedBean(name = "communicator")
@SessionScoped
public class Communicator implements EventReceiver {
@ManagedProperty(value = "#{user}")
private User user;
private BackendEvent backendEvent;
validate();
login();
public void setUser(User user) {
this.user = user;
}
public User getUser() {
return this.user;
}
И теперь будет получено сообщение от бэкэнда, содержащее всю информацию о пользователе:
private void handleLoginTell(LoginTell loginTell) {
logger.addToLog("handle LoginTell");
user.setSessionId(loginTell.getSessionId());
user.setName(loginTell.getLogin());
user.setLogged(true);
}
Пользовательский класс - это просто простой класс с методами получения / установки и тремя полями: имя пользователя, пароль и sessionid.
Если на мой сайт зашли два пользователя, я думал, что для каждого пользователя будет создан новый жизненный цикл с новыми экземплярами моих сессионных компонентов.
Но .. здесь мои пользователи, кажется, разделяют только один компонент. Но почему?
Можете ли вы объяснить мне, где моя вина?
С уважением
Джонни