2016-02-17 4 views
0

Je modifie une classe qui est destinée à être placée dans la session d'une utilisation de servlet en tant que clé pour une hastable d'autres objets. Je ne sais pas quelles sont les exigences minimales pour un objet qui peut être placé dans le HttpSession. Quelles sont les exigences minimales pour un objet qui peut être placé dans le HttpSession?Exigences de classe pour placer l'objet dans HttpSession

Répondre

0

Tous les objets placés dans une session HttpSession doivent implémenter java.io.Serializable.

C'est vraiment la seule exigence "minimale". Pour des raisons d'évolutivité, vous souhaitez généralement également réduire la taille globale des objets que vous placez dans la session.

+0

Existe-t-il une autre exigence que celle de mettre l'instruction implements? Dois-je fournir une implémentation pour toutes les méthodes? – jillian

+0

@jillian cette question est répondue dans le javadoc de Serializable: https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html –

+0

Je le vois. Je te remercie. – jillian

1

Il doit être sûr pour les threads (ou au moins vous devez savoir qu'il peut être utilisé par plusieurs threads simultanément).

Si vous prévoyez d'enregistrer la session sur le disque ou de la partager parmi un groupe de serveurs, il doit également s'agir de Serializable.

Et si cet objet est supposé être utilisé comme une clé d'un HashMap, alors il devrait remplacer hashCode() et equals() correctement, et ce serait une bonne idée de le rendre immuable.