Получить URL реферера в Spring MVC
Как получить URL реферера в Spring MVC Controller?
2 ответа
Решение
Он доступен в виде заголовка HTTP-запроса с именем referer
(да, с ошибкой, которая должна была быть referrer
).
String referrer = request.getHeader("referer");
// ...
Здесь request
это HttpServletRequest
который доступен в бобах Spring несколькими способами, в том числе @AutoWired
,
Пожалуйста, имейте в виду, что это контролируемое клиентом значение, которое может быть легко подделано / опущено клиентом.
В Spring MVC 3 вы можете получить его из запроса, как уже сказал @BalusC:
public ModelAndView doSomething(final HttpServletRequest request) {
final String referer = request.getHeader("referer");
...
}
но также существует специальная аннотация @RequestHeader, которая позволяет упростить ваш код до
public ModelAndView doSomething(@RequestHeader(value = "referer", required = false) final String referer) {
...
}