Bonjour,
qq pourait pourait me dire laquelle des deux solutions est plus approproriée pour détruire un objet qu'on avait préalablement stocké dans la session
session.removeAttribute("monObjet") ou monObjet = null ???
merci beaucoup.
Bonjour,
qq pourait pourait me dire laquelle des deux solutions est plus approproriée pour détruire un objet qu'on avait préalablement stocké dans la session
session.removeAttribute("monObjet") ou monObjet = null ???
merci beaucoup.
monObjet = null ne fait pas grand chose puisque la référence reste dans la session. Lorsque tu passe une référence à null, tu ne détruits pas un objet, tu le détruits si tu enlève TOUTES les références à cet objet.
merci pour ta réponse.
autrement dit, il faut utiliser session.removeAttribute("monObjet") ? c'est celà ? ou une autre instruction ?
Ceci dit celà est faux, car en session ce n'est pas une référence sur l'objet que tu as, mais une copie... Le objets sont stockés par valeur en session.Envoyé par the-gtm
Tu es sûr de ça ?
Si on regarde le code de tomcat, dans l'implémentation de la session on a :
et dans le setAttribute (en résumé) on a :
Code : Sélectionner tout - Visualiser dans une fenêtre à part protected Map attributes = new Hashtable();
et en continuant dans le code de Hashtable on constate qu'il ne s'agit bien que d'une copie de référence...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 // Replace or add this attribute Object unbound = attributes.put(name, value);
http://beuss.developpez.com
Tutoriels PostgreSQL, Assembleur, Eclipse, Java
Partager