使用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";
}
但我不知道我必须提出什么条件。 提前谢谢你。
答案 0 :(得分:3)
你实际上可以不保证http-header" User-Agent"确保来自浏览器的 。这也可以是设置它的任何其他脚本/库/程序。相反,缺少标题并不表示浏览器不。你将只是做一个有教养的猜测"。
无论如何,如果你仍然想要遵循你的方法,你也应该使用" required = false"在RequestHeader注释上,因此当未设置标头而不是完全失败时,参数为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"的存在,请参阅此answer。头