在Spring MVC中获取Referer URL

Mik*_*ynn 28 spring-mvc referer

如何在Spring MVC Controller中获取referer URL?

Sla*_*hin 39

在Spring MVC 3中,您可以从请求中获取它,因为@BalusC已经说过:

public ModelAndView doSomething(final HttpServletRequest request) {
    final String referer = request.getHeader("referer");
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是也存在特殊的注释@RequestHeader,它允许简化你的代码

public ModelAndView doSomething(@RequestHeader(value = "referer", required = false) final String referer) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

  • @ steven-dix标题名称应该不区分大小写,因为Spring使用`HttpServletRequest.getHeaders()`其中"标题名称不区分大小写"(引自API)它也适用于我.无论如何,感谢分享这个,可能,在某些环境中,这对某人有帮助. (2认同)
  • 您可以使用 [HttpHeaders.REFERER](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/HttpHeaders.html#REFERER) 常量而不是硬编码 `referer`。 (2认同)

Bal*_*usC 30

它可以作为带有名称的HTTP请求标头referer(是的,应该是拼写错误referrer).

String referrer = request.getHeader("referer");
// ...
Run Code Online (Sandbox Code Playgroud)

这里requestHttpServletRequest这是在Spring bean的可在几个方面,其中包括通过@AutoWired.

请记住,这是客户端控制的值,客户端很容易被欺骗/忽略.