Session wird mehrfach erzeugt

franzy

Aktives Mitglied
Hallo zusammen,

ich habe ein Problem im Kontext HttpSession.
Wir haben ein sehr altes Servlet am laufen. Der Request wird durch die service() Methode (Ich weiß es gibt mittlerweile get und post :)), ist historisch gewachsen wie man so schön sagt, verarbeitet.
In dieser Methode erzeuge ich eine neue Session für den User, wenn noch nicht vorhanden:
Java:
HttpSession session = request.getSession(false);
        
if(session == null)
{
    session = request.getSession(true);
}

jetzt rufe ich in dieser Methode noch eine weitere Methode A() auf. Dort prüfe ich dann ob der User ein Testuser ist. Ich hole mir dazu die Session und schaue:

Java:
HttpSession session = request.getSession(false);

if(session != null)
{
    if (session.getValue("isTestuser") != null) {
        isTestuser = (Boolean) session.getValue("isTestuser");               
    }   
}

In dieser Methode werden wiederum eine Methode B() aufgerufen. Auch da wir geprüft ob Testuser. Ist die gleiche Abfrage wie oben.

Wenn ich nun im Tomcat (Version 6) - ich weiß, alt - schaue dann bauen sich pro Request nicht eine Session auf sondern ein Vielzahl an Sessions. Das sehe ich ja im Tomcat Web Application Manager.

Ich verstehe tatsächlich nicht warum das passiert. Ich würde meinen mit einer Anfrage an das Servlet und das Neuerstellen der Session wird diese auch nur einmal gezählt.

Kennt jemand das Problem?

Grüße Franzy
 

Barista

Top Contributor
Falls die Session in der URL encodet ist, steckt beim Erzeugen eines Links oder HTML-Form-URL ein Fehler.

Falls die Session Cookies verwendet, eventuell mal schauen, wie im Browser die Cookie-Einstellungen sind.
 

Jw456

Top Contributor
Http 1 ist ein Verbindungsloses Protokoll. Da wird bei jedem request eine neues socket aufgebaut und nach dem result wider beendet.

Deshalb wurden auch Cookies geschaffen um den User auf dem Server wider zu erkennen.

Http 2 ist das etwas anders.

Http 1 baut bei jedem request eine nuer tcp Verbindung auf die nach dem Response beendet wird.
 
Zuletzt bearbeitet:

franzy

Aktives Mitglied
Hallo Brirsta,,

mir war aus deiner Aussage nicht verständlich was du meinst. Das hat nichts mit Basiswissen zu tun. Auch mit Basiswissen kann eine Antwort nicht verstanden werden. Nicht falsch verstehen, ich freue mich ja über eine Antwort!
Das Projekt was ich übernommen habe ich riesig und über 15 Jahre alt. Demensprechend etwas schwierig!

Das mit der Session-ID in der URL das kann natürlich sein.
Dennoch bin ich etwas irritiert. Ich baue ja eine neue Session auf in der service() methode. Die ist ja vorhanden in Methode A(), ich bekomme zumindest eine zurück. Also muss diese ja ohne Session-ID in der URL vorhanden sein. Ist das dann ein Zeichen dafür das es per Cookie abgebildet ist.

Grüße
 

mrBrown

Super-Moderator
Mitarbeiter
Wenn es um Sessions pro Request geht, sind Cookies oder SessionIDs egal, die sind erst bei Sessions über mehrere Requests hinweg relevant.

Ich würde auch erstmal das von @mihe7 vorgeschlagene testen, und nur einen einzelnen Request abgesetzt mit curl o. ä. testen, und prüfen wie es damit aussieht.
 

mrBrown

Super-Moderator
Mitarbeiter
Aber nur so am Rande: bei eine so alten App fällt doch so ein Fehler nicht plötzlich jetzt auf? Da hat sich doch sicherlich irgendwas geändert?
 

franzy

Aktives Mitglied
ich kann dir nicht sagen warum das jetzt erst ausfällt. Mir ist das in einem anderen Kontext aufgefallen. Uns fliegen die DB Verbindungen weg und da bin ich auf Fehlersuche gegangen und hab das gesehen. an die Anwendung traut sich keiner dran. Wie das so ist, Sie läuft grundsätzlich. ich werde eure Vorschläge mal testen. danke erst einmal!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H What is the Life Cycle of an Object Created Within/Outside of a Servlet? Will that item be destroyed after the session ends? Java Basics - Anfänger-Themen 1
B Jsoup: gleiche Session nutzen Java Basics - Anfänger-Themen 0
J HTTP Request auf eine PHP Session Java Basics - Anfänger-Themen 1
V JSP Session ID wechselt andauernd Java Basics - Anfänger-Themen 5
D Session Öffnen Java Basics - Anfänger-Themen 11
S URL bei abgelaufener Session Java Basics - Anfänger-Themen 2
D Session halten . blos wie? Java Basics - Anfänger-Themen 2
H ist eine "neue Session" für Mail möglich? Java Basics - Anfänger-Themen 3
S Hibernate Session: Wie in alle Klassen Java Basics - Anfänger-Themen 19
F Session Cookies löschen Java Basics - Anfänger-Themen 4
M JavaApplet: Variable in Session speichern o.Ä? Java Basics - Anfänger-Themen 10
P Session-ID Ablaufzeit festlegen Java Basics - Anfänger-Themen 3
D Session Attribute in JSP ausgeben???? Java Basics - Anfänger-Themen 3
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
P Webseite vom Smartmeter wird nur unleserlich angezeigt Java Basics - Anfänger-Themen 7
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
Oneixee5 Maven Plugin wird 2 mal ausgeführt Java Basics - Anfänger-Themen 10
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
C Was tun wenn .class erwartet wird ? Java Basics - Anfänger-Themen 6
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
schemil053 Multithread - Input verrutscht während etwas ausgegeben wird Java Basics - Anfänger-Themen 6
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
_user_q Timer - ScheduledExecutorService wird schon vorher beendet Java Basics - Anfänger-Themen 5
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
sserio Math. Befehl wird rot markiert Java Basics - Anfänger-Themen 5
M Rechteck wird nicht angezeigt Java Basics - Anfänger-Themen 3
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
M Was wird hier genau getestet? Java Basics - Anfänger-Themen 9
M Wie schreibe ich eine if-Verzweigung um, so dass ein Bedingungsoperator benutzt wird? Java Basics - Anfänger-Themen 9
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
M Referenzen zuweisen und wird gleichzeitig ausgeführt Java Basics - Anfänger-Themen 6
O System.out.println wird nicht ausgegeben? Java Basics - Anfänger-Themen 11
Zrebna Umgebungsvariable Wieso wird meine verwendete JDK-Version in der Prompt nicht erkannt? Java Basics - Anfänger-Themen 6
el_pato DialogFenster wird nicht in Schleife geöffnet? Java Basics - Anfänger-Themen 30
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
P Apache Derby wird in Eclipse trotz Anbindung nicht gefunden Java Basics - Anfänger-Themen 6
H Array wird als Rückgabewert nicht akzeptiert? Java Basics - Anfänger-Themen 2
Poppigescorn scan.nextInt() wiederholen bis eine Zahl eingeben wird Java Basics - Anfänger-Themen 7
F Initialisieren eines Web-Mp3 Players in Tabs durch "booleans" erst wenn Tab geöffnet wird ...? Java Basics - Anfänger-Themen 1
fuerteb Compiler-Fehler Methode wird nicht bzw. als Fehler erkannt Java Basics - Anfänger-Themen 4
L JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 10
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
J JTable Titel wird nicht angezeigt Java Basics - Anfänger-Themen 6
krgewb Long wird gerundet Java Basics - Anfänger-Themen 2
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
F Wieso wird immer die falsche Mausposition angegeben? Java Basics - Anfänger-Themen 1
H GridPane wird nicht angezeigt Java Basics - Anfänger-Themen 0
M Was habe ich hier falsch, dass wenn ich z.B.: 11 eingebe mir false zurück gegeben wird? Java Basics - Anfänger-Themen 2
M Java Spiel wie Wer wird Millionär Java Basics - Anfänger-Themen 1
H Endkapital wird nicht korrekt ausgegeben. Java Basics - Anfänger-Themen 5
C Methodenrückgabe wird in der main nicht berücksichtigt Java Basics - Anfänger-Themen 2
X compareTo Methode wird ignoriert Java Basics - Anfänger-Themen 7
kodela Hauptklasse wird nicht gefunden Java Basics - Anfänger-Themen 3
H Befehl wird nicht ausgeführt - System.out.println Java Basics - Anfänger-Themen 3
I Input/Output Code wird doppelt ausgeführt Java Basics - Anfänger-Themen 3
P Bedingung in Schleife wird nicht ausgeführt Java Basics - Anfänger-Themen 5
P Variablen HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden? Java Basics - Anfänger-Themen 7
N Selection Algorithmus: Methode wird nicht erkannt (BlueJ) Java Basics - Anfänger-Themen 3
N package wird doppelt im exporer angezeigt Java Basics - Anfänger-Themen 2
N Bedinugng If-Abfrage wird nie erfüllt Java Basics - Anfänger-Themen 4
M Else wird nicht ausgeführt. Java Basics - Anfänger-Themen 5
H Wie wird ein String intern gespeichert? Java Basics - Anfänger-Themen 10
A char array wird überschrieben Java Basics - Anfänger-Themen 6
E Methoden Action Event wird nicht vollständig ausgeführt Java Basics - Anfänger-Themen 3
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
S setContentView(R.Layout.XXX) wird Rot angezeigt Java Basics - Anfänger-Themen 0
C Beispiel-Code mit Pair wird nicht compiliert. Java Basics - Anfänger-Themen 8
S Integer Wert wird nicht übernommen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben