gpt4 book ai didi

java - Spring,如何通过 header 管理HTTP请求?

转载 作者:行者123 更新时间:2023-11-29 05:52:15 24 4
gpt4 key购买 nike

在此期间,我正在研究可从 STS 仪表板下载的 Spring MVC Showcase 示例

我对通过 header 映射 HTTP 请求的功能有疑问。

在展示示例中,我有以下 2 个链接:

        <li>
<a id="byHeader" href="<c:url value="/mapping/header" />">By presence of header</a>
</li>

<li>
<a id="byHeaderNegation" class="textLink" href="<c:url value="/mapping/header" />">By absence of header</a>
</li>

因此,如您所见,单击第一个链接我正在创建一个指向“/mapping/header”文件夹的 HTTP 请求,单击第二个链接我正在创建一个指向相同“/mapping/header”的 HTTP 请求"文件夹

现在这些 HTTP 请求由我的 Controller 类中的两个方法管理。

第一个通过以下方法处理:

@RequestMapping(value="/mapping/header", method=RequestMethod.GET, headers="FooHeader=foo")
public @ResponseBody String byHeader() {
System.out.println("Sono dentro byHeder()");
return "Mapped by path + method + presence of header! (MappingController)";
}

而第二个是通过以下方法处理的:

@RequestMapping(value="/mapping/header", method=RequestMethod.GET, headers="!FooHeader")
public @ResponseBody String byHeaderNegation() {
System.out.println("Sono dentro byHeaderNegation");
return "Mapped by path + method + absence of header! (MappingController)";
}

我不明白为什么这两个请求是由两种不同的方法处理的,因为两个链接都会生成一个指向同一个文件夹的 HTTP 请求:“/mapping/header”

为什么第一个有header,第二个没有?

我可能遗漏了什么,你能帮我理解这件事吗?

非常感谢安德里亚

最佳答案

您可以在 src/main/webapp/WEB-INF/views/home.jsp 中找到文件末尾,按标题显示映射的链接正在使用设置 FooHeader 的 Ajax至 foo .

这就是这两个方法的调用方式。

如果你没有设置标题(意味着一个简单的 HTML 链接),方法 byHeaderNegation被调用,但是如果您设置 Header(在本例中使用 Ajax),那么方法 byHeader被调用是因为 FooHeader=footrue

$("#byHeader").click(function(){
var link = $(this);
$.ajax({ url: this.href, dataType: "text", beforeSend: function(req) { req.setRequestHeader("FooHeader", "foo"); }, success: function(form) { MvcUtil.showSuccessResponse(form, link); }, error: function(xhr) { MvcUtil.showErrorResponse(xhr.responseText, link); }});
return false;
});

关于java - Spring,如何通过 header 管理HTTP请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13452228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com