Обработка сеансов без файлов cookie и перезаписи URL - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть старый веб-сайт (сервлеты, JSP и Struts).В настоящее время управление сеансами осуществляется с помощью файлов cookie.Я хотел изменить дизайн этого сайта, чтобы сделать браузер независимым.

Я знаю, что существует альтернативная перезапись URL, однако я не могу переписать (закодировать) все URL в моем приложении.

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

С уважением, Lokesh Rangineni.

Ответы [ 3 ]

1 голос
/ 27 сентября 2011

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

0 голосов
/ 27 сентября 2011

С моей точки зрения, куки уже являются лучшим решением при оптимизации только для независимости от браузера (исключая неявные сеансы с помощью GET).

Перепишите все a.href с помощью javascript, чтобы добавить хэш сеанса в качестве параметра.

Это не должно быть вашим решением, если вы стремитесь к истинной независимости браузера, поскольку файлы cookie более распространены, чем поддержка javascript.Большие куски данных могут храниться в LocalStorage.

sessionStorage.setItem("key", "value");

и

var key_value = sessionStorage.getItem("key");

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

Куки должны быть друзьями, а не врагами.

0 голосов
/ 27 сентября 2011

Насколько я могу представить, существует только одна третья опция, отличная от маркера сессии в URL или Cookie, которая настолько грязна и непрактична, что я бы не рекомендовал ее;) Но здесь мы идем:

Естьскрытое поле формы на каждой странице с маркером сеанса и каждый запрос к серверу должен быть отправкой формы, включающей значение скрытых полей.

...