假设我有 2 个不同的网站。
- sampledomain1.com(包含要获取的资源)
- sampledomain2.com(实现 Apache HttpClient 以发出 Get 请求以从 sampledomain1.com 获取资源
我需要确保 sampledomain1.com
仅向 sampledomain2.com
提供信息,而不向其他人提供信息。为此,sampledomain1.com
需要找出请求服务器的主机名。这意味着 sampledomain1.com
应该读取来自 sampledomain2.com
我们怎样才能找到答案?
最佳答案
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if(req.getRemoteHost().endsWith("sampledomain1.com") || req.getRemoteHost().endsWith("sampledomain2.com")) {
// ... code goes here.
}
}
您可以使用 HttpServletRequest.getRemoteAddr()
或 HttpServletRequest.getRemoteHost()
检索调用者详细信息。也许您应该使用防火墙或阀门 ( http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Remote_Host_Filter )(或应用程序服务器前面的 Apache HTTPd 服务器)来执行过滤,但这取决于您的环境。
关于java - 获取请求服务器的主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25785997/