Получение адреса сервера и имени приложения - PullRequest
7 голосов
/ 13 апреля 2011

Среда: NetBeans 6.9.1, GlassFish 3.1

У меня есть веб-приложение на Java.Как получить адрес сервера и имя приложения динамически?Для меня лучше всего подойдет решение «2 в 1»: http://localhost:8080/AppName/.

Есть ли практический способ получить эту информацию?поэтому мне нужен только адрес хоста.Можно ли получить его через JMX?Есть ли другие способы?

Ответы [ 2 ]

30 голосов
/ 13 апреля 2011

Объект HttpServletRequest даст вам то, что вам нужно:

  • HttpServletRequest#getLocalAddr(): IP-адрес сервера в виде строки
  • HttpServletRequest#getLocalName(): имя сервераполучение запроса
  • HttpServletRequest#getServerName(): имя сервера, на который был отправлен запрос
  • HtppServletRequest#getLocalPort(): порт, на который сервер получил запрос по
  • HttpServletRequest#getServerPort(): Порт, на который был отправлен запрос
  • HttpServletRequest#getContextPath(): часть пути, идентифицирующая приложение
3 голосов
/ 13 апреля 2011

Внутри сервлета вы можете получить его вот так

public static String getUrl(HttpServletRequest request) {
    return request.getRequestURL().toString();
}
...