Требования к классу для размещения объекта в HttpSession
Я редактирую класс, который должен быть помещен в сеанс использования сервлета в качестве ключа для таблицы других объектов. Я не знаю, каковы минимальные требования для объекта, который может быть помещен в HttpSession. Каковы минимальные требования для объекта, который может быть помещен в HttpSession?
2 ответа
Все объекты, которые помещены в HttpSession, должны реализовать java.io.Serializable
,
Это действительно единственное "минимальное" требование.
Для масштабируемости вы обычно хотите минимизировать общий размер объектов, которые вы также помещаете в сеанс.
Он должен быть потокобезопасным (или, по крайней мере, вы должны знать, что он может использоваться несколькими потоками одновременно).
Если вы планируете сохранить сеанс на диск или разделить его между кластерами серверов, он также должен быть Serializable.
И если этот объект предполагается использовать в качестве ключа HashMap, то он должен переопределить hashCode()
а также equals()
правильно, и было бы неплохо сделать его неизменным.