web-dev-qa-db-fra.com

Différence entre request.getSession (). GetId () et request.getSession (false)?

Que signifient réellement ces appels en termes de session?

System.out.println("print1: "+request.getSession().getId());
System.out.println("print2: "+request.getSession(false));

SORTIE

print1: D94146A347D95563186EB7525726336B
print2: org.Apache.catalina.session.StandardSessionFacade@d52411
24
lata

HttpSession session = request.getSession(); À l'intérieur de la méthode de service, nous demandons la session et tout se trouve automatiquement, comme la création de l'objet HttpSession. Il n'est pas nécessaire de générer l'identifiant de session unique. Il n'est pas nécessaire de créer un nouvel objet Cookie. Tout se passe automatiquement dans les coulisses. 

Dès que vous appelez la méthode getSession() de l'objet request, un nouvel objet de la session est créé par le conteneur et un identifiant de session unique est généré pour gérer la session. Cet identifiant de session est retransmis à l'objet de réponse de sorte que chaque fois que le client fait une demande, il doit également attacher l'identifiant de session avec l'objet requsest afin que le conteneur puisse identifier la session. 

request.getSession(false): Cette méthode vérifiera si une session existait déjà pour la demande ou non. S'il existait, il renverrait la session déjà existante. Si la session n’existe pas déjà pour cette requête, cette méthode renvoie NULL, c’est-à-dire que cette méthode indique que la requête n’a pas de session auparavant.

17
Manish Nagar

En bref -

request.getSession().getId() - retourne une chaîne contenant l'identifiant unique attribué à cette session. L'identifiant est attribué par le conteneur de servlet et dépend de la mise en œuvre.

request.getSession(false) - retourne un objet de session ou NULL s'il n'y a pas de session en cours.

14

La première ligne renverra "l'identifiant de session" sur le serveur . La deuxième ligne retournera l'objet de session. Donc, ce qui sera imprimé sur system.out serait request.getSession(false).toString();

L'implémentation par défaut de toString renvoie "l'ID d'objet". Object id en termes de session n'est pas la même chose que session id. La session peut être sérialisée et répliquée sur le cluster. Ainsi, sur chaque nœud du cluster de chaque machine virtuelle, elle peut avoir son propre identifiant d'objet (mais doit avoir le même identifiant de session). 

L’appel de get session with boolean est expliqué ici: http://docs.Oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getSession(boolean )

5
Lukasz Zuchowski
    request.getSession()

Cette méthode vérifie la session existante, sinon son retour crée une nouvelle session pour la demande.

    request.getSession().getId();

Cela renverra l'identifiant unique pour cette session.

    request.getSession(false);

Cette méthode prend la valeur booléenne.Cette méthode vérifie si une session existante est présente pour cet utilisateur (requête); si elle existe, elle renvoie cette session, sinon elle retourne la valeur null si elle ne crée pas de nouvelle session.

Juste pour ajouter plus d'informations pour la session.

    request.getSession(true);

Cette méthode vérifie la session en cours existante pour cet utilisateur (demande) et si la session existe, elle retournera cette session ou créera sinon une nouvelle session pour cet utilisateur.

    request.getSession() works like request.getSession(true)

Référence: http://docs.Oracle.com/javaee/1.4/api/javax/servlet/http/HttpServletRequest.html#getSession%28boolean%29

4
Suresh
request.getSession().getId()

Renvoie l'id de la session.

Request.getsession(false) renvoie l'objet de session déjà existant. Il ne renverra rien, c’est-à-dire renverra null, si la session n’existe pas. Attendu qu'avec le paramètre true, il créera un nouvel objet de session et le retournera s'il n'y a pas de session

2
Mukul Goel
request.getSession().getId();

Renvoie un identifiant de chaîne unique attribué à une session déjà commencée. La génération de l'identifiant est spécifique au fournisseur, comme Apache, jboss, etc.

request.getSession(false);

Il retournera un objet de session associé à une requête particulière si un objet de session est associé, il sera retourné ou retournera null s'il n'est pas démarré par le serveur. 

1
Rais Alam
request.getSession().getId();

cela retournera l'id d'une session existante.

Request.getsession(false) 

elle renverra la session si elle existe ou renverra null sinon.

et Request.getsession (false) signifie: donnez-moi la session si elle existe, sinon ne créez pas une nouvelle instance (et ne renvoie donc null).

0
a bouchenafa
request.getSession().getId();

renvoie l'identifiant unique attribué à cette session. Et il a le type de retour de String.

request.getSession(false)

retourne l'objet HttpSession s'il existe déjà sinon retourne null.

0
Crawling