【问题标题】:How can I let a server sense which domain name it is serving?如何让服务器感知它正在服务的域名?
【发布时间】:2013-02-26 23:03:08
【问题描述】:

我有一个 Java Servlet 容器。这个 servlet 容器可以服务于localhost:8080192.168.1.2:8080www.development.examplewww.production.example.com。如何让 Servlet 容器和/或任何正在运行的 servletsense 它正在服务哪个域名?

【问题讨论】:

  • 您想知道“父”页面是什么吗? servlet 是如何包含进来的?
  • getLocalName on ServletRequest 应该给你你想要的。
  • @BevynQ - 这将返回运行应用程序的机器的主机名,它可能与虚拟主机名不同。 getServerName() 是更好的选择。

标签: java servlets dns


【解决方案1】:

servlet 应该能够看到整个请求 URL:

方法一:获取请求URL,自己解析。

String url = request.getRequestURL().toString();

方法二:

String server = request.getServerName()

this回答

【讨论】:

    【解决方案2】:

    对于 Servlet,在 request 对象上使用 getServerName() 方法。

    就 servlet 容器而言,如果您将 apache 放在容器前面,您可以使用 VHosts 做一些诡计。您必须查看特定 servlet 容器的文档,以了解他们的 HTTP 服务器是否支持该级别的 VHosts 之类的东西。

    【讨论】:

      【解决方案3】:
      String host = request.getHeader("Host");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-22
        • 2021-01-11
        • 2010-12-08
        • 2012-06-07
        • 2017-10-09
        • 2018-08-09
        • 2021-08-19
        • 2020-08-28
        相关资源
        最近更新 更多