tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
253
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    7bkahnt 7bkahnt ist offline Mitglied Silber
    Registriert seit
    Apr 2010
    Beiträge
    61
    Hallo, vielleicht könnt ihr mir weiter helfen.
    Ich habe ein Problem für das Login meines Programms.
    Der Nutzer loggt sich in einer jsp-Datei ein und der Name wird in eine Java-Klasse übergeben.

    Angenommen:
    Benutzer A meldet sich mit seinem Nutzernamen an. Dann wird in eine Tabelle geschaut ob es diesen Namen gibt, wenn ja wird die ID ausgelesen und auf eine globale statische Variable UserID gespeichert.
    Und genau da liegt das Problem.
    Diese ID brauche ich später, wenn der Benutzer irgendwelche Datensätze ändert, weil ich die ID dann in eine Tabelle schreibe.

    Wenn sich jetzt aber Benutzer B einloggt, wird ja UserID überschrieben, sodass wenn Benutzer A einen Datensatz ändert die ID von Benutzer B angegeben wird.

    Wenn der Benutzer den Login-Button betätigt, wird DBVerbindung() aufgerufen worin die Verbindung aufgebaut wird und der User verglichen wird und somit UserID gesetzt wird.
    Wenn er einen Datensatz ändern möchte, wird change() aufgerufen, wo ich ja wiederum dann UserID benötige,um Sie in die Tabelle einzutragen. Somit muss sie ja global und statisch sein.

    Ich hatte das Problem zunächst mittels eines hidden-Feldes in der jsp gelöst. Aber letztendlich gibt es dann doch wieder das Problem, dass die UserID- Variable in der Java-Klasse global und statisch ist.
    Denn wenn Nutzer A und B gleichzeitig den Ändern-Button im Bearbeiten-Formular klicken, werden ja gleichzeitig 2 unterschiedliche UserID´s bzw. nur die Letztere auf die eine UserID in der Java-Klasse geschrieben.

    Habt ihr vielleicht eine Idee? Wäre echt genial. Vielleicht ist es irgendwie möglich für jeden Nutzer eine eigene UserID zur Verfügung zu stellen, nur leider fällt mir da keine Lösung ein.

    grüsse
    Geändert von 7bkahnt (08.04.10 um 18:52 Uhr)
     

  2. #2
    pizza1234 pizza1234 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Beiträge
    177
    Hi,
    ich verstehe zwar nicht, was du da vor hast, aber warum speicherst du deine ID nicht einfach in der Session?

    Grüße
    Peter
     

  3. #3
    7bkahnt 7bkahnt ist offline Mitglied Silber
    Registriert seit
    Apr 2010
    Beiträge
    61
    Das Problem ist, dass ich Connection-Pooling verwende und somit nicht jeder User eine eigene SessionID bekommt.
    Ansonsten könnt ich das ganze ja in eine Hashmap speichern. Nur bekommt eben nicht jeder User eine eigene SessioID.
     

  4. #4
    pizza1234 pizza1234 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Beiträge
    177
    Bei einem WebServer bekommt definitiv jeder User seine eigene Session. Connection-Pooling ist ewas völlig anderes. Ich weiß auch nicht, wieso du das in einer Hashmap speichern willst? Wenn dein User sich einloggt, bekommt er automatisch vom Server eine Session zugeordnet. in die kannst du doch u.a. deine UserID packen. Jedesmal, wenn du die ID brauchst, zb beim Speichern von irgendwas in der DB, holst du die ID wieder aus der Session.

    Grüße
    Peter
     

  5. #5
    7bkahnt 7bkahnt ist offline Mitglied Silber
    Registriert seit
    Apr 2010
    Beiträge
    61
    Okay, das war das Problem. Danke .
    Ich habe nur an die Datenbanksessions gedacht.
    Okay, ideal dann versuche ich mich mal weiter.
    Hatte bisher nicht viel mit Webanwendungen am Hut.

    Wenn Nutzer A sich am Anfang einloggt, holt er sich eine Datenbanksession und bekommt also vom Webserver eine eigene SessionID.
    Danach beendet er die Datenbankverbindung und gibt die Datenbanksession wieder frei( in den Pool).
    Wenn er dann allerdings etwas bearbeiten will, baut er ja eine neue Datenbankverbindung auf und bekommt eine andere Datenbanksession.
    Die SessionID vom Webserver bleibt aber gleich oder wie? Weil das wäre ja wichtig um seine UserID rauszubekommen.

    Hier bekommt man ja echt schnell Hilfe!
    Danke euch schonmal und schönes Wochenende !
     

  6. #6
    DirkHo DirkHo ist offline Mitglied Gold
    Registriert seit
    Jul 2003
    Beiträge
    223
    Hallo,

    die Session-ID verfällt erst nach einer best. Zeit der Inaktivität des Benutzers (die du u.a. auch selbst festlegen kannst, wenn du Zugriff auf die Serverkonfiguration hast).

    Die Datenbanksession ist total unabhängig von der User-Session. Du solltest auch immer schauen, dass die DBSession nach "jeder Abfrage" (wenn du unmittelbar z.B. 3 hintereinander machst dann natürlich nicht) an den Server zurück gegeben wird.

    Viele Grüße, Dirk
     

Ähnliche Themen

  1. Struts2 in webbasierter Anwendung
    Von 7bkahnt im Forum Java
    Antworten: 0
    Letzter Beitrag: 30.04.10, 17:37
  2. Ein schicker Webbasierter Quellcode Viewer
    Von Thomas Darimont im Forum Java
    Antworten: 0
    Letzter Beitrag: 20.09.06, 11:45
  3. Webbasierter Texteditor mit Ajax
    Von chpa im Forum Javascript & Ajax
    Antworten: 23
    Letzter Beitrag: 29.03.06, 12:55
  4. Webbasierter CSS Editor
    Von chris4712 im Forum HTML-Editoren
    Antworten: 4
    Letzter Beitrag: 15.01.06, 19:30
  5. IRC webbasierter client mit PHP
    Von knecht im Forum PHP
    Antworten: 1
    Letzter Beitrag: 11.06.02, 15:39