2009-04-22 91 views
2

我有一个在Jetty下运行的应用程序,我希望应用程序返回自引用绝对URL(生成RSS源时,客户端必须能够无需工作一个“当前URL”上下文)。获取应用服务器下的真实(虚拟)主机名

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

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

[1]只有当我很幸运 - 在一些设置它只会返回IP地址。

回答

3

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

+0

谢谢:-)(这有点愚蠢 - 我应该知道这一点) – Guss 2009-04-22 15:00:23

相关问题