java - 获取请求服务器的主机名

标签 java jakarta-ee servlets

假设我有 2 个不同的网站。

  1. sampledomain1.com(包含要获取的资源)
  2. 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/

相关文章:

java - 递归循环再次运行,无需在 Java 中调用它

java - 如何在SWT字体中设置字间距

java - SHA256withECDSA签名算法的输出格式是什么?

java - JPA 的 Servlet 字符编码问题

java - 我们可以在 servlet 中使用来自 ajax 的 request.get 参数吗?

java - 重新加载 jsp 并在 servlet 上丢失 request.getParameter ("...")

java - 单例设计模式示例请

java - 快速响应的总线和REST服务解耦?

eclipse - JBoss 无法从 Eclipse 启动

spring java配置问题: Rejected bean name 'requestMappingHandlerMapping' : no URL paths identified