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?
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)
.
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.
if(null == session.getAttribute("name")){
// User is not logged in.
}else{
// User IS logged in.
}
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
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.