web-dev-qa-db-fra.com

Comment vérifier si la session existe ou non?

Je crée la session en utilisant

HttpSession session = request.getSession();

Avant de créer une session, je veux vérifier si elle existe ou non. Comment pourrais-je faire ça?

20
sarah

Si vous souhaitez vérifier cela avant la création , faites-le:

HttpSession session = request.getSession(false);
if (session == null) {
    // Not created yet. Now do so yourself.
    session = request.getSession();
} else {
    // Already created.
}

Si vous ne vous souciez pas de vérifier cela après la création , vous pouvez également le faire:

HttpSession session = request.getSession();
if (session.isNew()) {
    // Freshly created.
} else {
    // Already created.
}

Cela enregistre une ligne et un boolean. request.getSession() fait la même chose que request.getSession(true) .

36
BalusC

Il y a une fonction request.getSession(boolean create)

Paramètres:
create - true pour créer une nouvelle session pour cette demande si nécessaire; false pour retourner null s'il n'y a pas de session en cours

Ainsi, vous pouvez simplement passer false pour dire à getSession de retourner null si la session n'existe pas.

22
aioobe
if(null == session.getAttribute("name")){  
  // User is not logged in.  
}else{  
  // User IS logged in.  
}  
5

Session HttpSession = request.getSession (true); if (session.isNew ()) {... faire quelque chose} autre {... faire autre chose}

la .getSession(true) indique à Java de créer une nouvelle session s'il n'en existe pas.

vous pourriez bien sûr aussi faire:

if(request.getSession(false) != null){
    HttpSession session = request.getSession();
}

jetez un œil à: http://Java.Sun.com/javaee/6/docs/api/javax/servlet/http/HttpServletRequest.html

cheers, Jørgen

4
rakke

Je voudrais ajouter que si vous créez une nouvelle session pour chaque nouvel utilisateur se connectant à votre site Web, vos performances seront durement touchées. Utilisez request.getSession (false) pour vérifier si un utilisateur a une session. Avec cette méthode, vous ne créez pas de nouvelle session si vous allez rendre une vue en fonction de l'authentification ou non d'un utilisateur.

4