以下のコードスニペットがJSPファイルにあります。このコードスニペットでは、IPアドレスでURLを構成しています。 IPアドレスの代わりに、ドメイン名が必要です。 (ここでは、ドメイン名、私はホストファイルにlocalhostのために定義されています。それが定義されていない場合、それはおそらくマシン名を返す必要があります。それは、私はそれがあるべきだと思うものだエントリを意味する)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();
しかし、どちらもコンピュータ名を返します。ドメイン名を取得するにはどうすればよいですか?
EDITこの詳細については、 と明記しています。つまり、hostsファイルに127.0.0.1 myProjectAppという項目があります。 このシナリオでは、私はhttp://myProjectApp/のようなURLを形成したいと思いますが、デカールしない場合は http://machineName/のようなマシン名を返さなければなりません。その背後にある意図は、ネットワーク上のBという別のマシンにこのURLを送信していることです。このURLマシンBを使用して、Aへのバック接続を行います。
しかしrequest.getServerName()私はhostsファイルに127.0.0.1 myProjectAppすなわちエントリを宣言したものの、常にローカルホストを返します。だからこのシナリオで私はそれがmyProjectAppを返す必要が期待ですか? –
設定に関連する情報を読む場合は、環境変数の使用を検討してください。また、使用しているフレームワークやその他のコード例を含めるように質問を更新することもできます。あなたの質問では、IPアドレスの代わりにURLを取得するように頼んだが、詳細がなければ、ユーザーがブラウザに入力するドメイン名のようにドメイン名を意味すると仮定した。 – jmort253
サーブレットコンテキスト名をお探しですか? http://docs.oracle.com/javaee/1.3/api/javax/servlet/ServletContext.html#getServletContextName() – jmort253