【发布时间】:2015-05-16 20:26:29
【问题描述】:
我正在看书Java Web Services。我发现了一个声明
query string data encapsulated in http request header in GET
我从中了解到的是:
(1)Get请求没有body,只包含header部分
(2)在 GET 中发送数据时,可以使用查询字符串
现在我对这些概念很清楚了。但是我想用代码来确认一下。
我在 Spring MVC 中有一个控制器,我在其中发送类似的请求
http://localhost:8080/test?abc=1
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String test(HttpServletRequest req) {
String abc1 = req.getHeader("abc");
String abc2 = req.getParameter("abc");
return "login";
}
abc1 为空
abc2 为“1”
所以根据上面的说法,我应该得到 abc1 为“1”。
有人可以解释为什么查询参数在标头部分发送时无法从标头中检索到的原因吗?
【问题讨论】:
-
查询参数构成 URL 的一部分,作为键值对的集合。它们不是 HTTP 标头的一部分。我认为如果从您引用的句子中删除单词标题会更清楚。
标签: java spring-mvc jakarta-ee servlets http-headers