Java-Web-Anwendung für mehrere Benutzer-session-handling
Ich verwende Glassfish server 3.1.1, und ich habe Sie erfolgreich konfiguriert meinem Reich für die Benutzergruppen.
Während nur 1 Benutzer angemeldet ist, funktioniert alles einwandfrei, aber als ich mich einloggen mit einem anderen account einen anderen browser (oder sogar auf einen anderen computer), die erste session ist gelöscht, und der zuletzt angemeldete Benutzer Daten gezeigt in jeder der vorherigen Sitzungen.
Ich bin mit Netbeans, und ich lasse es generieren mein entity-Klassen aus einer postgreSQL-Datenbank, dann die JSF-Seiten aus den Entitäten.
Ich lese über HttpSessions, aber es war nicht alles für mich klar. Soll ich weiter diesen Weg gehen, oder die Lösung in eine andere Richtung? Wenn das der richtige Weg ist, könnte jemand schicken Sie mir ein Probe-Quelle?
Hier ist mein code:
Login.xhtml:
<h:inputText id="email" size="25" value="#{login.email}" maxlength="30"/>
<h:inputSecret id="password" size="25" value="#{login.password}" maxlength="100"/>
<h:commandLink value="Bejelentkezés" action="#{login.loginAction}"/>
Dies ist, wie meine login-Klasse sieht wie folgt aus:
@ManagedBean(name="login")
@RequestScoped
public class LoginBean
{
private String email;
private String password;
public String loginAction()
{
HttpServletRequest req=(HttpServletRequest)FacesContext.getCurrentInstance()
.getExternalContext().getRequest();
try
{
System.out.println("login with: " + email + ", " + password + ".");
req.login(email, password);
}
catch(ServletException e) ....
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den code gepostet, so weit sieht gut aus.
Dieses problem wird verursacht, an anderer Stelle als in den code geschrieben, so weit. Die Sitzung sollte nicht gelöscht werden auf alle. Dies ist wahrscheinlich eine Fehlinterpretation des Geschehens. Vielleicht Sie don ' T verstehen das Konzept "session". Die Symptome zeigen an, dass Sie scheinbar immer halten des angemeldeten Benutzers in einem
static
variable oder ein@ApplicationScoped
managed bean. Stellen Sie sicher, dass Sie nicht zu tun.Wie der "session" funktioniert, Lesen Sie bitte diese: Wie servlets arbeiten? Instanziierung, Sitzungen, gemeinsame Variablen und multithreading.
Wie wählen Sie die richtige managed-bean-scope, Lesen Sie bitte diese: Wie wählen Sie die richtige bean-scope?