Как читать значения параметров запроса весной, используя HTTPServletRequest - PullRequest
6 голосов
/ 24 февраля 2012

Я хочу прочитать данные requestParams из URL, используя HttpServletRequest

http://localhost:8080/api/type?name=xyz&age=20

В методе моего контроллера не будет определен @RequestParam, это будет просто

@RequestMapping(value = "/**", method = RequestMethod.GET)
    public ResponseEntity<String> getResponse(
            final HttpServletRequest request) {}

Iхочу читать с помощью запроса только параметры, а не весь URL.

Ответы [ 4 ]

10 голосов
/ 24 февраля 2012

сначала, почему вы определяете:

@RequestMapping(value = "/**", method = RequestMethod.GET)`

?

может быть, вам следует использовать:

@RequestMapping(value = "/api/type", method = RequestMethod.GET)

и прочитать параметр:

request.getParameter("name");
request.getParameter("age"):
5 голосов
/ 24 февраля 2012

Сян подходит для вашего точного вопроса: «Я хочу читать, используя запрос только параметры»

Но почему ты хочешь сделать это так сложно? Spring поддерживает вас, поэтому вам не нужно самостоятельно обрабатывать объект запроса для таких распространенных задач:

Рекомендую использовать

@RequestMapping(value = "/*", method = RequestMethod.GET)
public ResponseEntity<String> getResponse(
    @RequestParam("name") String name
    @RequestParam("age") int age){

    ...
}

вместо.

@ См. Справочную главу по пружинам 15.3.2.4. Связывание параметров запроса с параметрами метода с помощью @ RequestParam

1 голос
/ 24 февраля 2012

Вы можете использовать

request.getParameter("parameter name") 
0 голосов
/ 24 февраля 2012

Это то, что вы ищете?

public java.lang.String getParameter(java.lang.String name)

Из API :

getParameter

String getParameter (Stringname) Возвращает значение параметра запроса в виде строки или ноль, если параметр не существует.Параметры запроса - дополнительная информация, отправляемая вместе с запросом.Для HTTP-сервлетов параметры содержатся в строке запроса или в опубликованных данных формы.Этот метод следует использовать только в том случае, если вы уверены, что параметр имеет только одно значение.Если параметр может иметь более одного значения, используйте getParameterValues ​​(java.lang.String).

Если вы используете этот метод с многозначным параметром, возвращаемое значение равно первому значению в массиве, возвращенномgetParameterValues.

Если данные параметров были отправлены в теле запроса, например, при запросе HTTP POST, то чтение тела напрямую через getInputStream () или getReader () может помешать выполнению этого метода.

Параметры: name - строка, указывающая имя параметра. Возвращает: строка, представляющая одно значение параметра. См. Также: getParameterValues ​​(java.lang.String)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...