Как получить POST URL с параметрами из HttpServletReqest в ServletFilter? (Для прокси-приложения) - PullRequest
0 голосов
/ 16 мая 2009

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

Объект JavaScript OpenLayers.ProxyHost обрабатывает создание URL-адреса, например:

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

Некоторые запросы будут GET, а другие - POST.

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

Все работает для GET, но у меня возникают трудности с получением значения параметра 'url' для POST.

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

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

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

Ответы [ 3 ]

3 голосов
/ 16 мая 2009

Если параметр url отправляется в теле сообщения POST, вы можете использовать:

request.getParameter( "url" );
1 голос
/ 16 мая 2009

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

Map params = request.getParamterMap();
String value = (String) params.get("url");
1 голос
/ 16 мая 2009

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

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

Итак, проще говоря, вам нужно написать подпрограмму для сборки URL самостоятельно. Запрос не поможет вам здесь.

...