У меня есть приложение, работающее под Jetty, и я хочу, чтобы приложение возвращало абсолютные URL-адреса, ссылающиеся на себя (при создании RSS-канала, поэтому клиент должен иметь возможность работать без контекста «текущий URL»).
Проблема в том, что я заранее не знаю, под каким именем хоста будет развернуто приложение, и вполне вероятно, что оно будет развернуто в среде виртуального хостинга, где несколько имен хостов сопоставлены одному и тому же IP. адрес. Я попытался использовать HttpServletRequest.getLocalName()
, но это возвращает разрешенное имя хоста [1] для IP-адреса, на который был получен запрос (обычно то, что установлено в локальном файле хостов), а не имя хоста из URL-адреса, который клиент указано в запросе HTTP.
По сути, я хочу получить то, что в CGI было бы переменной среды SERVER_NAME
, но это не похоже на то, как это обеспечивает Java API. Любая помощь будет оценена.
[1] только если мне повезет - при некоторых настройках он возвращает только IP-адрес.