Esta información se basa en la solicitud y no se basa estrictamente en la aplicación. Puede cambiar, por solicitud. Todo lo que tiene a mano durante la inicialización del servlet es la instancia ServletContext
que a su vez ofrece métodos como getInitParameter()
. Puede usarlo para acceder a la configuración de toda la aplicación.
así que lo mejor es configurar manualmente el nombre del servidor como un parámetro de contexto en web.xml
<context-param>
<param-name>serverName</param-name>
<param-value>foo</param-value>
<context-param>
para que pueda obtener de la siguiente manera en init()
método del servlet:
String serverName = getServletContext().getInitParameter("serverName");
Otro (no recomendado) la alternativa es establecerlo como nombre para mostrar en web.xml
<display-name>foo</display-name>
para que pueda obtener de la siguiente manera:
String serverName = getServletContext().getServletContextName();
¿Hay algún problema/problema si invoco java.net.InetAddress.getLocalHost(). GetCanonicalHostName() para obtener el nombre del servidor? –
sí, cuando tiene nombres de alias para su host. Por ejemplo, su aplicación puede ser visible en 'http: // www.google.com /' mientras usa 'getCanonicalHostName()' puede darle 'http: // nuq05s02-in-f18.1e100.net /' –