[英]Spring : How do I know where a query comes from? using @RequestHeader (value = “User-Agent”)
使用Spring,我想在我的@Controller
知道請求是否來自瀏覽器。 如果是這樣,則要進行特殊處理。 我想到這樣使用@RequestHeader (value = "User-Agent")
:
@RequestMapping(value = "/user-agent-test")
public String hello(@RequestHeader(value="User-Agent") String userAgent)
//toDo
if(browser){
//Make something
}else{
// Make something else
}
return "home";
}
但我不知道我要提出什么條件。 先感謝您。
實際上,你不能保證HTTP頭“用戶代理”的存在確保這是從一個瀏覽器的到來。 也可以是其他任何腳本/庫/程序對其進行設置。 相反,缺少標題並不表示它不是瀏覽器。 您將只是做一個“有根據的猜測”。
無論如何,如果您仍然想遵循自己的方法,則還應該在RequestHeader批注上使用“ required = false”,因此當未設置標頭而不是完全失敗時,該參數為null。 然后,您只需檢查您的參數是否為null。
像這樣:
@RequestMapping(value = "/user-agent-test")
public String hello(@RequestHeader(value="User-Agent", required=false) String userAgent)
if (null != userAgent) {
// could be a browser
} else {
// could be something else
}
return "home";
}
參見springs javadoc上的注釋。 另請參閱“ User-Agent”標頭的存在情況下的此答案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.