Как получить идентификатор фрагмента 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