2

我有一个在 Jetty 下运行的应用程序,我希望该应用程序返回自引用的绝对 URL(在生成 RSS 提要时,客户端必须能够在没有“当前 URL”上下文的情况下工作)。

问题是我事先不知道应用程序将部署在哪个主机名下,而且很可能它将部署在多个主机名映射到同一个 IP 地址的虚拟主机环境中。我尝试使用HttpServletRequest.getLocalName(),但它返回解析的主机名 [1] 用于接收请求的 IP 地址(通常是在本地主机文件中设置的),而不是客户端在 URL 中指定的主机名HTTP 请求。

基本上我想得到 CGI 下的环境变量SERVER_NAME,但它看起来不像 Java API 提供了这个。任何帮助将不胜感激。

[1] 仅在我幸运的情况下 - 在某些设置中它只返回 IP 地址。

4

1 回答 1

3

用于ServletRequest.getServerName()从“Host”标头中获取虚拟主机名。这相当于 CGI 的SERVER_NAME变量。

于 2009-04-22T14:53:37.947 回答