![](/img/trans.png)
[英]HTTP Request Headers set as LinkedList in Spring Integration
[英]Spring, how to manage HTTP Request by headers?
在此期间,我正在研究可从STS仪表板下载的Spring MVC Showcase示例
我怀疑与标头的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请求由我的控制器类中的两个方法管理。
第一个是通过以下方法处理:
@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”
为什么第一个有标题而第二个没有?
我可能错过了什么,你能帮我理解这件事吗?
非常感谢Andrea
正如您在src/main/webapp/WEB-INF/views/home.jsp
文件中找到的那样,显示按标头映射的链接正在使用将FooHeader
设置为foo
Ajax。
这就是调用这两种方法的方法。
如果不设置页眉(意味着一个简单的HTML链接),该方法byHeaderNegation
被调用,但是如果设置了标题(在这种情况下使用Ajax),则该方法byHeader
被调用,因为FooHeader=foo
是true
$("#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;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.