Как предотвратить отображение JSESSIONID в URL-адресе

Я создал страницу входа в сервлет с помощью Google Datastore, она работает нормально. но иногда он показывает JSESSIONID в URL-адресе.

Как я могу предотвратить отправку JSESSIONID через URL-адрес? почему он проходит через URL-адрес вместо сообщения запроса?


person Prakash    schedule 21.06.2017    source источник


Ответы (2)


Добавьте следующую запись в файл web.xml.

<session-config>
    <tracking-mode>COOKIE</tracking-mode>
</session-config>

Это сообщит контейнеру, что клиент поддерживает файлы cookie, и, следовательно, нет необходимости помещать JSessionId в URL-адрес.

person VHS    schedule 23.06.2017
comment
В следующий раз, пожалуйста, указывайте ссылку на источник, где вы нашли эту информацию, вместо того, чтобы делать вид, будто вы написали с головы до ног. См. также meta.stackexchange.com/q/160077. - person BalusC; 23.06.2017

Вы используете response.encodeURL()? Если это так, попробуйте удалить его или отключить «Перезапись URL-адресов» и проверьте URL-адрес.

Смотрите также:

  • отключитьURLПерезапись

Справочник по настройке Apache Tomcat

Дополнительная информация:

response.encodeURL(URL) добавляет ;jsessionid=xxxx... к URL. Чтобы отключить это(="Перезапись URL"),

Tomcat 7.0 или новее:

<session-config>
  <tracking-mode>COOKIE</tracking-mode>
</session-config>

Томкэт 6.0:

<Context disableURLRewriting="true" ...
person Kohei TAMURA    schedule 23.06.2017
comment
Нет, я не использую response.encodeURL(), - person Prakash; 23.06.2017
comment
Вы должны всегда использовать response.encodeURL (или response.encodeRedirectURL, если это уместно). Если вы хотите отключить сеансы, используйте конфигурацию вместо того, чтобы ломать свое приложение, не следуя правилам. - person Christopher Schultz; 26.04.2018