从HttpServletRequest获取原始URL列表

时间:2016-02-22 02:31:09

标签: java spring servlets

我只需要允许网站列表嵌入我们的网站。

    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对象。

1 个答案:

答案 0 :(得分:-1)

您可以使用ServletRequest.getRemoteAddr()ServletRequest.getRemoteHost()获取有关客户的信息。

getRemoteHost的Javadoc说:

  

返回客户端的完全限定名称或最后一个代理   发送了请求。如果发动机不能或选择不解决   hostname(为了提高性能),此方法返回   点名形式的IP地址。对于HTTP servlet,与   CGI变量REMOTE_HOST的值。