2016-12-22 8 views
0

У меня есть URL-адрес abc.com/#cancel. В моем сервлете мне нужно сохранить #cancel для будущего использования. Я уже пробовал HttpServletRequest getRequestURI() и несколько других опций. Но не видите это значение в объекте запроса. Как получить это значение.Получить хэш-тег (#) символ URL-адреса в запросе сервлета

В моем приложении я использую GWT, который использует вызовы rpc, и запрос rpc выполняется на основе значения хэш-тега. например: mydomain.com/#profile, перенаправляет запрос на profile.rpc. В моем случае я перехватываю этот вызов фильтром, который выполняет некоторую базовую проверку, а затем я хочу перенаправить запрос еще раз в mydomain.com/#profile. но я не могу найти #profile в объекте запроса. Надеюсь, это объяснит мой вопрос и то, что я ищу.

ответ

0

Хеш (#) используется для отделения фрагмента от Url. Фрагмент является необязательной частью URL-адреса и используется для адресации определенной части ресурса.

смотрите ниже ссылки
http://www.skorks.com/2010/05/what-every-developer-should-know-about-urls/
URL fragment (#) allowed characters
List of valid characters for the fragment identifier in an URL?

1

request.getRequestURI() будет дает URL-адрес, например: abc.com/#cancel.

String url1=request.getRequestURI(); 

url1.split("/"); 
+0

Я предполагаю его request.getRequestURI(), так или иначе не получающий # значение в URI запроса. Уже упоминается в вопросах. Спасибо anyways –

+0

String completeURL = requestURL.toString(); попробовали это и работали в сервлетах или любой другой инфраструктуре – priyadarshini

+0

В сервлетах, выяснилось, что в запросе мы не получаем фрагментированный URL. Даже в requestURL вы просто получаете полный URL-адрес другого фрагментированного URL-адреса (#part) –

0

Найден, что фрагментарный URL не приходит запрос, когда мы делаем response.sedRedirect(), браузер не удаляет фрагментированную часть из браузера адресной строки. Но не знаю, как это происходит. В любом случае, в моем случае вместо отправки запроса другому JSP, а затем отправки формы на другой URL-адрес, я непосредственно делаю response.sendRedirect(), который не удаляет фрагментированную часть, поэтому ее работа сейчас :)