it-swarm.com.de

Unterschied zwischen request.getSession () und request.getSession (true)

Ich verstehe den Unterschied zwischen request.getSession(true) und request.getSession(false). Aber request.getSession() & request.getSession(true) sehen sich sehr ähnlich!

Beide "geben die aktuelle Sitzung zurück, die dieser Anforderung zugeordnet ist", unterscheiden sich jedoch in:

request.getSession():

"oder wenn die Anfrage keine Sitzung hat, erstellt eine "

request.getSession(true):

"Wenn es keine aktuelle Sitzung gibt, gibt eine neue Sitzung zurück "

Ich verstehe den Unterschied zwischen ihnen nicht. Ist es so, dass sie (falls keiner existiert) eine neue Sitzung erstellen, aber die erste nicht return es aber die zweite tut?

Quelle: http://docs.Oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html

Bearbeiten:

Jemand hat meine Frage als doppelt markiert, obwohl dies nicht der Fall ist. Ich werde erklären warum.

Ich habe ausdrücklich nach dem Unterschied zwischen request.getSession() & request.getSession(true) und NICHT zwischen request.getSession(true) & request.getSession(false) gefragt! Ich habe nochmals ausdrücklich erklärt, dass ich den Unterschied s/w ..(true) & ..(false) bereits verstehe.

Die Frage verknüpft als mögliches Duplikat von fragt nach dem Unterschied s/w ..(true) & ..(false) und nicht ..(true) & ..()

34
Ali Khan

request.getSession() ist nur eine bequeme Methode. Es macht genau dasselbe wie request.getSession(true).

33
Jan

request.getSession() gibt eine aktuelle Sitzung zurück. Wenn die aktuelle Sitzung nicht vorhanden ist, wird eine neue Sitzung erstellt .

request.getSession(true) gibt die aktuelle Sitzung zurück. Wenn die aktuelle Sitzung nicht vorhanden ist, wird eine neue Sitzung erstellt .

Grundsätzlich besteht also kein Unterschied zwischen beiden Methoden.

request.getSession(false) gibt die aktuelle Sitzung zurück, wenn die aktuelle Sitzung vorhanden ist. Dann wird es wird nicht eine neue Sitzung erstellt .

58
Ranjitsinh

Methode mit booleschem Argument:

  request.getSession(true);

gibt eine neue Sitzung zurück, wenn die Sitzung nicht mit der Anforderung verknüpft ist

  request.getSession(false);

gibt null zurück, wenn die Sitzung nicht der Anforderung zugeordnet ist.

Methode ohne boolesches Argument:

  request.getSession();

gibt eine neue Sitzung zurück, wenn die Sitzung nicht der Anforderung zugeordnet ist, und gibt die vorhandene Sitzung zurück, wenn die Sitzung der Anforderung zugeordnet ist.

5
Ruby Kannan

Sie geben beide dasselbe zurück, wie in der von Ihnen verlinkten Dokumentation angegeben. ein HttpSession-Objekt.

Sie können auch eine konkrete Implementierung (z. B. Tomcat ) anzeigen und sehen, was tatsächlich ausgeführt wird: Request.Java class In diesem Fall rufen beide an: 

Session session = doGetSession(true);
4
mike

Ein wesentlicher praktischer Unterschied ist die Verwendung:

in security scenario, wo wir immer eine neue Sitzung brauchten, sollten wir request.getSession(true) verwenden.

request.getSession(false): will return null if no session found.
2
user3906011

request.getSession () oder request.getSession (true) geben beide nur die aktuelle Sitzung zurück. Wenn die aktuelle Sitzung nicht vorhanden ist, wird eine neue Sitzung erstellt.

0
CRR