gpt4 book ai didi

java - 获取应用服务器下的真实(虚拟)主机名

转载 作者:行者123 更新时间:2023-12-04 07:08:13 36 4
gpt4 key购买 nike

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

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

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

[1] 仅当我很幸运时 - 在某些设置中它只返回 IP 地址。

最佳答案

使用 ServletRequest.getServerName() 从“主机” header 中获取虚拟主机名。这相当于 CGI 的 SERVER_NAME多变的。

关于java - 获取应用服务器下的真实(虚拟)主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/777575/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com