Spring MVCコントローラーでリファラーURLを取得するにはどうすればよいですか?
これは、referer
という名前のHTTPリクエストヘッダーとして利用できます(そうです、スペルミスはreferrer
であるはずです)。
String referrer = request.getHeader("referer");
// ...
ここで、request
は HttpServletRequest
です。これは、いくつかの方法で、特に@AutoWired
によってSpring Beanで使用できます。
これはクライアントが制御する値であり、クライアントが簡単になりすまし/省略できることに注意してください。
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) {
...
}