2012-04-19 3 views
0

Почему Glassfish прибегает к перезаписи URL-адресов, когда я использую последний браузер Chrome и вхожу в приложение, не отключая куки? Все, что я забыл настроить или что? Это происходит случайным образом.Glassfish использует переписывание URL-адресов, хотя я не отключил куки-файлы

+0

Использует ли он переписывание URL-адресов для каждого запроса или только первый запрос в новом сеансе браузера? –

+0

Просто первый запрос, как и вход в систему, вы перенаправляетесь обратно в тот же вид, что и раньше. Но перемещение в приложении не приводит к добавлению идентификатора сеанса. – LuckyLuke

ответ

3

JSESSIONID - это значение, определяющее текущий сеанс HTTP для пользователя. Он обычно хранится в cookie браузера (с именем JSESSIONID) для подключения запросов с соответствующим объектом сеанса на сервере.

Причина, по которой JSESSIONID отсутствует в исходном запросе, вероятно, потому, что сервер не имел возможности отправить его обратно в браузер. Любые ссылки на странице (с использованием c: url, например) без текущего файла cookie JSESSIONID будут сгенерированы с использованием перезаписи URL-адресов (URL-адрес будет содержать jsessionid). По запросам подсетей после того, как JSESSIONID был сохранен в виде cookie-файла браузера, перезаписи URL-адреса не происходит.

Если браузер пользователя не поддерживает файлы cookie (или использование файлов cookie отключено), переписывание URL-адресов позволит пользователю продолжать подключение к тому же сеансу с помощью jsessionid, добавленного к каждому URL-адресу.

Однако, если вы хотите, чтобы отключить URL переписывания, вы можете сделать это, установив свойство enableURLRewriting ложь, в GlassFish-файле web.xml

<property name="enableURLRewriting" value="false"/> 

Вы также можете иметь удачу Извлечение Переписывание URL, гарантируя наличие соответствующего файла cookie и перенаправление на более подходящий URL.

+0

Я не уверен, понял ли я первый абзац, который вы написали? И означает ли это, что это «нормально», что это так происходит в первый раз? – LuckyLuke

+0

Это нормально, если вы не создали файл cookie JSESSIONID. Например, если вы установили session = "false" в теге страницы на главной странице. –

+0

Не могли бы вы попытаться объяснить первый абзац немного лучше, и я принимаю ответ. – LuckyLuke