Java 如何使用SpringBoot获取不带等号的查询字符串?
我们知道@RequestParam是一种获取查询参数的好方法,例如“?name=Tom”:Java 如何使用SpringBoot获取不带等号的查询字符串?,java,spring-boot,key-value,http-request-parameters,Java,Spring Boot,Key Value,Http Request Parameters,我们知道@RequestParam是一种获取查询参数的好方法,例如“?name=Tom”: www.example.com/?name=Tom 你可以用 @RequestParam(value="name") String name Map params=getQueryMap(querystring); String id=(String)params.get("id"); String anotherparam=(String)params.g
www.example.com/?name=Tom
你可以用
@RequestParam(value="name") String name
Map params=getQueryMap(querystring);
String id=(String)params.get("id");
String anotherparam=(String)params.get("anotherparam");
获取密钥“name”
但是如何获得不带等号的查询字符串,例如:
www.example.com/?1+1
在这种情况下没有键值对,我无法从互联网上找到答案,因为基本上查询字符串是由键值对使用的
顺便说一句,该框架必须是带有Java的SpringBoot,也必须是用于Thymeleaf的html。您可以从HttpServletRequest.getQueryString()获得它。在控制器方法中,HttpServletRequest由SpringMVC注入
@RestController
class WhatEverController {
@GetMapping("whatever")
public void whatEver(HttpServletRequest request,
HttpServletResponse response {
String queryString = request.getQueryString();
}
}
来自其他源的查询字符串:
public static Map<String, String> getQueryMap(String query)
{
String[] params = query.split("&");
Map<String, String> map = new HashMap<String, String>();
for (String param : params)
{ String [] p=param.split("=");
String name = p[0];
if(p.length>1) {String value = p[1];
map.put(name, value);
}
}
return map;
}
这里是一种替代方法,您可以这样做。谢谢,@oisleyen的答案看起来也一样。我将使用HttpServletRequest