簡體   English   中英

春季:如何知道查詢來自何處? 使用@RequestHeader(值=“用戶代理”)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM