我有一个Spring(Java)网站,它使用Kemp Technologies的LoadMaster作为平衡器,它位于我的Web服务器之前。
我可以通过以下网址获取访问者的正确IP地址:
request.getRemoteAddr()
但是,我无法获得引荐来源的正确域名。这是我做的:
我在HandlerInterceptorAdapter中有以下代码,它为每个Web请求调用。代码是检查特定会话变量是否存在。如果是,则不采取行动。如果不是,请在会话中记录引荐来源的域名。
HttpSession session = request.getSession();
String value = (String) session.getAttribute("referrer");
if (value == null) {
String scheme = request.getScheme();
String serverName = request.getServerName();
int portNumber = request.getServerPort();
String url = scheme +"://"+serverName+ (portNumber == 80? "": portNumber);
session.setAttribute("referrer", url);
}
在我需要推荐人域名的其他页面中,我有以下内容:
String value = (String) request.getSession().getAttribute("referrer");
问题是我获得的价值总是我自己的域名(例如http://www.example.com)。
我哪里可能出错?
谢谢!