2009-05-16 9 views
0

Из-за ограничений браузера мне нужно использовать прокси-сервер для работы с картой openlayers.Как получить URL-адрес POST с параметрами из HttpServletReqest в ServletFilter? (Для прокси-приложения)

OpenLayers.ProxyHost объектов JavaScript обрабатывает поколение в URL, как:

http://webhost:8080/app/proxy/?url=http://WFS_server/options/ ...

Некоторые из запросов будет GET и другие пользователи будут Поста.

Я написал сервлет-фильтр, который получит запрос, а затем воспользуется общим HttpClient, чтобы отправить его на хост, указанный параметром 'url'.

Все работает для GET, но мне трудно получить значение параметра «url» для POST.

Согласно Javadoc я вижу в затмении он должен быть request.getRequestURI(), но это возвращает только значение поста минус значение параметра URL (т.е. http://webhost:8080/app/proxy/)

На самом деле единственный способ, которым я могу получить данные, чтобы вызвать метод request.toString() и разобрать URL-адрес.

Я развертываю сервер Jetty 6.1.11, поэтому мне интересно, может ли это быть ошибка Jetty или если я что-то упустил, где бы получить эту деталь?

ответ

1

Это потому, что getRequestURI дает вам именно то, что вы просили - URI.

В своем сообщении параметр url НЕ является частью URI. Ergo, QED и т. Д.

Итак, просто введите, вам нужно написать рутину, чтобы создать URL-адрес своей собственной личности. Запрос здесь не поможет.

3

Если параметр URL передается в теле POST вы можете использовать:

request.getParameter("url"); 
+0

Я забыл упомянуть, что этот подход будет работать как для запросов POST, так и для GET – mtpettyp

1

Для POST вам нужно будет использовать что-то подобное ниже, чтобы получить индивидуальные параметры.

Map params = request.getParamterMap(); 
String value = (String) params.get("url"); 

 Смежные вопросы

  • Нет связанных вопросов^_^