我只需要允许网站列表嵌入我们的网站。
public boolean matches(HttpServletRequest request) {
String requestReferer = request.getHeader("Referer");
for (String s : whiteList) {
if (requestReferer.toLowerCase().contains(s))
return true;
}
return false;
}
我正在接受" Referer"来自请求标头,它提供了原始的完整网址:http://somesite.com/something/something
上面的代码工作正常。但是,有没有办法从HttpServletRequest对象中获取主机名,而不是使用" Referer"? 我的意思是有一种方法可以获得" somesite.com"来自HttpServletRequest对象。
答案 0 :(得分:-1)
您可以使用ServletRequest.getRemoteAddr()
和ServletRequest.getRemoteHost()
获取有关客户的信息。
getRemoteHost
的Javadoc说:
返回客户端的完全限定名称或最后一个代理 发送了请求。如果发动机不能或选择不解决 hostname(为了提高性能),此方法返回 点名形式的IP地址。对于HTTP servlet,与 CGI变量REMOTE_HOST的值。