J'ai enregistré l'ID utilisateur dans Session à l'aide de la commande suivante dans Servlet:
HttpSession session = request.getSession();
session.setAttribute("user", user.getId());
Maintenant, je veux accéder à cet ID utilisateur à partir d'un autre Servlet:
HttpSession session = request.getSession(false);
int userid = (int) session.getAttribute("user"); // This is not working
OR
User user = new User();
user.setId(session.getAttribute("user")); This ain't possible (Object != int)
Question:
Même si vous avez enregistré une int
, cette méthode attend un objet afin que votre int
devienne une Integer
en raison de la boxe automatique. Essayez de le renvoyer à Integer
et ça devrait aller:
int userid = (Integer) session.getAttribute("user");
Cependant, si l'attribut est null, vous obtiendrez une NullPointerException
ici, alors peut-être qu'il vaut mieux utiliser Integer
jusqu'au bout:
Integer userid = (Integer) session.getAttribute("user");
Après cela, vous pouvez vérifier en toute sécurité si userid
est null
.
EDIT: En réponse à vos commentaires, voici ce que je veux dire par "vérifier la valeur null".
Integer userid = (Integer) session.getAttribute("user");
User user = null;
if (userid != null) {
user = new UserDAO().getUser(userid);
}
// here user will be null if no userid has been stored on the session,
// and it wil be loaded from your persistence layer otherwise.
Java a Integer
wrapper class, vous pouvez stocker la valeur int dans un objet de Integer
//setting
Integer intObj = new Integer(intVal);
session.setAttribute("key",intObj);
//fetching
Integer intObj = (Integer) session.getAttribute("key");
Je ne suis pas bon en Java mais je le faisais commeInteger.parseInt(session.getAttribute("user").toString())
Essayez une fois, mais assurez-vous simplement de check null
pour session.getAttribute("user")
avant d'appeler toString
Essayez int userid = (Integer) session.getAttribute("user");
Integer userid = Integer.parseInt(session.getAttribute("user"));
essaye ça
int userid = Integer.parseInt(session.getAttribute("user").toString());
Multiplier deux chaînes de la session:
int z = Integer.parseInt((String)session.getAttribute("sintelestis"));
int y = Integer.parseInt((String)session.getAttribute("_embadon_akinitou"));
System.out.println("Ο Συνολικός Φόρος είναι: "+ (z*y));
J'ai utilisé ceci:
Integer.parseInt(session.getAttribute("String").toString())
essayez ceci, cela a fonctionné pour moi: HttpSession session = request.getSession();
if (session.getAttribute("user") != null) {
userid = ((Integer) session.getAttribute("user")).intValue(); } else { userid = 0; }