Подтвердить что ты не робот

Получить URL-адрес реферера в Spring MVC

Как я могу получить URL-адрес реферера в Spring MVC-контроллере?

4b9b3361

Ответ 1

Он доступен как заголовок HTTP-запроса с именем referer (да, с ошибкой, которая должна была быть referrer).

String referrer = request.getHeader("referer");
// ...

Здесь request - это HttpServletRequest, который доступен в Spring beans несколькими способами, среди прочего, @AutoWired.

Пожалуйста, имейте в виду, что это контролируемое клиентом значение, которое может быть легко обмануто/опущено клиентом.

Ответ 2

В 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) {
    ...
}