我想使用HttpServletRequest从url读取requestParams数据
http://localhost:8080/api/type?name=xyz&age=20
我的控制器中的方法不会定义@RequestParam,它只是
@RequestMapping(value = "/**", method = RequestMethod.GET)
public ResponseEntity<String> getResponse(
final HttpServletRequest request) {}
我想阅读使用params而不是整个url。
答案 0 :(得分:10)
首先,为什么要定义:
@RequestMapping(value = "/**", method = RequestMethod.GET)`
也许你应该使用:
@RequestMapping(value = "/api/type", method = RequestMethod.GET)
并阅读参数:
request.getParameter("name");
request.getParameter("age"):
答案 1 :(得分:5)
但是你为什么要这么难。 Spring支持您,因此您不需要自己处理请求对象以执行此类常见任务:
我建议使用
@RequestMapping(value = "/*", method = RequestMethod.GET)
public ResponseEntity<String> getResponse(
@RequestParam("name") String name
@RequestParam("age") int age){
...
}
代替。
@参见Spring Reference Chapter 15.3.2.4. Binding request parameters to method parameters with @RequestParam
答案 2 :(得分:1)
您可以使用
request.getParameter("parameter name")
答案 3 :(得分:0)
这是你在找什么?
public java.lang.String getParameter(java.lang.String name)
来自API:
的getParameter
String getParameter(String name)返回请求的值 参数为String,如果参数不存在,则为null。 请求参数是随请求一起发送的额外信息。对于 HTTP servlet,参数包含在查询字符串中或已发布 表格数据。你应该只在确定时才使用这种方法 参数只有一个值。如果参数可能超过 一个值,使用getParameterValues(java.lang.String)。
如果将此方法与多值参数一起使用,则为该值 返回等于返回的数组中的第一个值 getParameterValues。
如果参数数据是在请求体中发送的,例如发生 使用HTTP POST请求,然后通过直接读取正文 getInputStream()或getReader()可能会干扰执行 这种方法。
参数:name - 指定参数名称的String 返回:表示参数的单个值的String 另外:getParameterValues(java.lang.String)