spring mvc 什么时候解码查询字符串?

When does spring mvc decode the query string?

我有一个由 Jetty 启动的 Spring MVC 应用程序,并且有这样一个控制器:

@RequestMapping(value = "/users/byIds", method = RequestMethod.GET)
public ResponseEntity<String> findUsersWithIds(@RequestParam("ids") String idsJson) throws IOException {
    System.out.println(idsJson);
}

当我在浏览器中发出 url 时:

http://localhost:8080/users/byIds?ids={%22userIds%22:[%22123456%22]}

我发现方法中的idsJson已经解码:

{"uerIds":["123456"]}

只是想知道查询字符串何时解码?这是由 Spring 还是 Jetty 完成的?在某些过滤器中?

servlet 容器(此处为 Jetty)执行此操作。

当您调用 request.getParameter("x") 时(Spring MVC 必然会这样做),它已经为您解码了。