Обработка сеансов без файлов cookie и перезаписи URL

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

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

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

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

3 ответа

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

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

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

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

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

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

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

а также

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

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

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

Другие вопросы по тегам