web-dev-qa-db-ja.com

Spring MVCでリファラーURLを取得する

Spring MVCコントローラーでリファラーURLを取得するにはどうすればよいですか?

31
Mike Flynn

これは、refererという名前のHTTPリクエストヘッダーとして利用できます(そうです、スペルミスはreferrerであるはずです)。

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

ここで、requestHttpServletRequest です。これは、いくつかの方法で、特に@AutoWiredによってSpring Beanで使用できます。

これはクライアントが制御する値であり、クライアントが簡単になりすまし/省略できることに注意してください。

29
BalusC

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) {
    ...
}
39
Slava Semushin