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.
Version imprimable
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 ?
c'est bien ça !
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.Citation:
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: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:
1
2 // Replace or add this attribute Object unbound = attributes.put(name, value);
Ok soit.