Проблема JSF-сессии в разных окнах браузера - PullRequest
0 голосов
/ 08 апреля 2011

У нас есть приложение, которое построено на JSF 2.0 (MyFaces) и работает на сервере приложений Weblogic.Мы сталкиваемся с проблемой, связанной с http-сессией.

Проблема: Предположим, я открыл приложение в двух разных окнах IE и ввел некоторую информацию для поиска в первом окне.Данные результатов поиска, полученные в первом окне, передаются во время сеанса второго окна.

Примечание: .Размеры бобов session, а javax.faces.STATE_SAVING_METHOD - server.Нет проблем в том, что переменная static является общей.

Есть идеи, почему это происходит, и решение, как это предотвратить?

С уважением, Шадж.

Ответы [ 2 ]

4 голосов
/ 26 июня 2011

Ожидаемое поведение ожидается. Если вам нужна область «окна», взгляните на MyFaces CODI Wiki @WindowScoped. Другой альтернативой является использование MyFaces Orchestra и другой контекст разговора.

JSESSIONID - это файл cookie, используемый спецификацией сервлета для разграничения между сеансами, но общий для всех окон одного и того же браузера.

За более подробной информацией обращайтесь к Пользователям MyFaces и спискам рассылки разработчиков .

3 голосов
/ 08 апреля 2011

Это потому, что IE хранит идентификатор сессии JSESSIONID в cookie. Этот файл cookie существует в том же IE-пространстве. Вы поймете, что если вы используете IE и Firefox, cookie-файлы сеанса не передаются.

JSESSIONID - это, по сути, идентификатор, используемый для отслеживания сеансов вашим веб-контейнером. Если браузер не поддерживает cookie, идентификатор добавляется в URL. В вашем случае JESSIONID хранится в файле cookie, и все ваши несколько окон могут видеть один и тот же файл cookie сеанса.

...