Queste informazioni si basano su richieste e non su base strettamente applicativa. Può cioè cambiare per richiesta. Tutto quello che hai a portata di mano durante l'inizializzazione della servlet è l'istanza ServletContext
che a sua volta offre metodi come getInitParameter()
. Potresti farne uso per accedere a tutte le impostazioni dell'applicazione.
Quindi la soluzione migliore è quella di impostare manualmente il nome del server come parametro contesto in web.xml
<context-param>
<param-name>serverName</param-name>
<param-value>foo</param-value>
<context-param>
in modo che è possibile ottenere come segue in init()
metodo di servlet:
String serverName = getServletContext().getInitParameter("serverName");
Altro (alternativa non consigliata) è impostato come nome visualizzato in web.xml
<display-name>foo</display-name>
in modo che è possibile ottenere nel modo seguente:
String serverName = getServletContext().getServletContextName();
ci sono problemi/problemi se invoco java.net.InetAddress.getLocalHost(). getCanonicalHostName() per ottenere il nome del server? –
sì, quando si hanno nomi alias per l'host. Per esempio l'applicazione può essere visibile in 'http: // www.google.com /' 'durante l'utilizzo getCanonicalHostName()' può dare 'http: // nuq05s02-in-f18.1e100.net /' –