我有一個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