Получить 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) {
    ...
}
Другие вопросы по тегам