![](/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.