我有一个JSP文件下面的代码片段。在这个代码片段中,我正在形成带有IP地址的URL。而不是IP地址,我想要域名。 (在这里,域名,我的意思是我已经在主机文件本地主机中定义的条目。如果没有定义,它应该可能返回机器名。这就是我想应该是)如何从Java中主机文件域名?
String ip = "";
InetAddress inetAddress = InetAddress.getLocalHost();
ip = inetAddress.getHostAddress();
appUrl=<%=(new java.net.URL(request.getScheme(),ip,request.getServerPort(), "")).toString() %>
我试过这些选项
inetAddress.getCanonicalHostName();
inetAddress.getHostName();
但都返回计算机名称。我应该如何获得域名?
编辑在此说明更多 我已经在主机文件中声明了条目,即127.0.0.1 myProjectApp。 因此,在这种情况下,我想形成像http://myProjectApp/的网址,但如果我不decalre它 它应该返回机器名称,比如http://machineName/。它背后的意图是我发送这个网址到另一台机器上说B在网络上。使用这个网址B机将到A后面连接希望它澄清
但request.getServerName()总是返回本地主机虽然我已经宣布hosts文件即127.0.0.1 myProjectApp的条目。所以在这种情况下,我期望它应该返回myProjectApp? – 2012-03-03 11:28:08
如果你想阅读相关的配置信息,可以考虑使用环境变量。您可能还想更新您的问题以包含您正在使用的框架和更多代码示例。在您的问题中,您要求获取URL而不是IP地址,并且没有详细信息,我假定您的域名与用户在浏览器中键入的域名一样。 – jmort253 2012-03-03 11:33:40
您是否在寻找Servlet上下文名称? http://docs.oracle.com/javaee/1.3/api/javax/servlet/ServletContext.html#getServletContextName() – jmort253 2012-03-03 11:35:46