• hallo!

    ich hab ein riesiges problem, das ich so schnell wie möglich lösen muss. ich hoffe ihr könnt mir helfen:

    ich habe eine jsp anwendung.
    wenn sich ein user anmeldet, will ich die userdaten (und andere daten (objekte)) in seiner session speichern. das hab ich bisher so gemacht:
    request.getSession().setAttribute("testobjekt", userDaten);
    bzw. request.getSession().getAttribute("testobjekt")

    mein Problem: sobald sich ein 2. User anmeldet, werden die Daten des ersten User überschrieben.

    bsp:
    user A meldet sich an; startet eine Antragstellung; gibt seine Antragsdaten ein (verteilt über mehrere Masken - Eingaben werden ebenfalls über request.getSession().setAttribute.. zwischengespeichert); während der Dateneingabe von User A meldet sich User B an; Userdaten von A werden überschrieben; A drückt speichern; Antrag wird als Antrag des Users B gespeichert; (User A ist nun auch als User B eingeloggt).

    ich hoffe es ist halbwegs verständlich!

  • Soweit ich den Code sehe müsste er in Ordnung sein. Kann es sein, dass du in der selben Instanz des Browsers die zweite Registrierung durchführst und deshalb die selbe Sesseion genutzt wird?

  • nein, leider ist es nicht so!

    vielleicht hilft eine noch genauere erklärung:
    auf der einen seite habe ich jsp files. in ihnen werden attribute wie oben beschrieben abgefragt und gesetzt.
    request.getSession().setAttribute("testobjekt", userDaten);
    bzw. request.getSession().getAttribute("testobjekt")

    hinter jedem jsp file steht eine Action Klasse (über struts verknüpft). in der perform methode greife ich dann folgendermaßen auf die attribute zu:

    public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException
    {
    req.getSession().getAttribute("testobjekt");
    req.getSession().setAttribute("testobjekt", userDaten);
    ...
    }
    mein problem:
    sind 2 benutzer gleichzeitig im system, überschreibt benutzer 2 die attribute von benutzer1.
    wenn ich mir über request.getSession().getId() die sessionid ausgeben lasse - ist sie für jeden benutzer verschieden.

    ich verzweifle schön langsam!!!

  • ja, ich habs mit dem ie und dem mozilla getestet.

    außerdem wurde es auch schon verteilt "getestet".
    ein user stieg in kärnten ein, stellte seinen antrag und wurde während der antragstellung aber zu einem wiener (der ebenfalls in die anwendung einstieg).

  • da hilft nur noch debuggen.
    an jeder stelle wo du zugriff aufs session objekt hast, und auch nur der Hauch eines verdachtes einer änderung besteht, in einem log die Session-daten ausgeben lassen, um zu sehen wo das Überschreiben stattfindet.
    wenn die ids verschieden sind, müssen die daten der beiden user beim debuggen ja auch verschieden sein...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!