Вывод объекта HttpSession - PullRequest
       1

Вывод объекта HttpSession

0 голосов
/ 10 января 2012

Я просто хотел знать, вернет ли время создания результат вывода объекта сеанса, например

System.out.println (sessiononject);

, вернет ли время созданиясессии.Я сохраняю объект сеанса в статической хэш-карте и получаю его обратно из карты, а когда я печатаю его, я получаю время создания сеанса.Но я не получаю время всегда.Просто проверьте следующий вывод при просмотре приложения в различных системах и браузерах.

{2F41393827EA02BB912CDCC194C42398.PicoEMS1 = 1326098069115, 46E427BAA0B42D8E1E27C533C32DB977.PicoEMS1 = 1325858091647, 4D4CF0A25E1A5F72AA45F5515C4FA819.PicoEMS1 = 1326100008712, 5D2A80DE7C8EEEA203EE0B1512F78829.PicoEMS1 = 1325856576256, 376D666C75324C1537A6B213252237EF.PicoEMS1 = 1325856598874, 9391A162E03ED4ED4E955C742D65A2A5.PicoEMS1 = 1326098775911, 5DCDF4A60B752961CBB19C0DB409F0D8.PicoEMS1 =org.apache.catalina.session.StandardSessionFacade@78e2e186, AEA530F9F9AAC4B7E5DA8BC186E0DA27.PicoEMS1 = 1326090775861, 5059EA4503876B7090F860DCF656A7E2.PicoEMS1 = 1326090718239, 6D211D34CE2E868497A1FE5BA49EA099.PicoEMS1 = org.apache.catalina.session.StandardSessionFacade@26948cb9, B131BA54A0ECB610C3A17474FD170136.PicoEMS1 = 1326097413641, 1F9114E0449141476DAD3414B1970D54.PicoEMS1 = 1326090779510, 5B088728E4D538322D467C8CD30DACFB.PicoEMS1 = 1326097184254, DAA2BF5FBE5EC978515C54286D926821.PicoEMS1 = 1325857115881, A9D8316862274DB662A3D667EB58B1D5.PicoEMS1 = org.apache.catalina.session.StandardSessionFacade@3cff49ab, DC89F419C17A85C5C19199F7920F7DB7.PicoEMS1 = 1325858502804, 45993E14630D2S3.S.S.S.* @ e32dec9, B22C74666E9C8FEF3032D7CFD3D082E9.PicoEMS1 = 1326099308589, CA752CF89E312252EA9DE17E9F97DA02.PicoEMS1 = 1326089242002, 0BC1E77C07BB8FAE68C83EBC09A4D9AC.PicoEMS1 = 1325857788710, 564F44ADECF7E9E5B159413E6D887B9D.PicoEMS1 = 1325858173676, 640AC2C85C0769A43810A4CA7B259F9B.PicoEMS1 = 1326089213514, B7EE7FA8EF8EE03E34577484A5EA139F.PicoEMS1 = 1326098769596, A878787663A83AC6F1BC8E22D2CB70D5.PicoEMS1 = 1325857982977}

Вышеуказанные строки - это объекты сеанса, хранящиеся в статической хэш-карте.Это непоследовательность в использовании времени создания для определения времени последнего доступа.

Ответы [ 2 ]

2 голосов
/ 10 января 2012

HttpSession является интерфейсом, для его метода toString не указано поведение.Поскольку вы не можете рассчитывать на сервер приложений, использующий какую-либо конкретную его реализацию в любой момент времени или в любой заданной версии, в зависимости от вывода его toString для правильности вашей программы, это плохая идея!Наблюдая за этим, вы видите две разные реализации этого на вашей карте.

1 голос
/ 10 января 2012

Интерфейс HttpSession не определяет, что Object.toString() следует повторно выполнить для объекта сеанса.Различные веб-контейнеры (и т. Д.) Будут реализовывать toString() для рендеринга разных вещей, поэтому писать что-либо, что зависит от присутствующих конкретных вещей, очень неразумно.

Вы должны использовать getCreationTime() и подобныеметоды доступа к меткам времени сеанса и другим атрибутам.Вот для чего они здесь.


Но я просто хотел подтвердить, будет ли объект сеанса возвращать время создания и в каком сценарии он не может его вернуть.

А?Вы не узнаете об этом, позвонив по номеру toString().

. В javadoc сказано, что getCreationTime() не работает для сеанса, который был признан недействительным.Кроме того, это должно работать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...