Как получить идентификатор фрагмента URL из HttpServletRequest

Как получить идентификатор фрагмента URL из HttpServletRequest?

Javadocs, кажется, не упоминает об этом.

2 ответа

Решение

Вы не можете получить фрагмент URL так, как вам хотелось бы.

Как правило, браузер не отправляет фрагмент на сервер. Это можно проверить с помощью анализатора сетевых протоколов, таких как tcpdump, Ethereal, Wireshark, Charles.

Однако вы можете отправить строку фрагмента в качестве параметра GET/POST в запросе JavaScript. Чтобы получить значение с помощью JavaScript, используйте window.location.hash, Затем вы можете передать это значение в качестве параметра GET или POST в запросе AJAX и использовать методы getParameter в HttpServletRequest для запроса AJAX.

Вот что говорит RFC3986: универсальный идентификатор ресурса (URI): общий синтаксис:

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

Взгляните на следующую ссылку: http://tools.ietf.org/html/rfc2396

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