У меня есть Java-приложение, работающее на сервере Websphere.Приложение доступно только через разные серверы веб-печати, которые выполняют балансировку нагрузки и аутентификацию из разных зон интрасети.
Конечно, я также могу получить прямой доступ к приложению: https://server-old.intra/ApplicationROOT
.
Следующая версия приложения будет размещена на новом сервере.Затем приложение доступно через новые узлы на тех же серверах веб-печати:
Конечно, также будет новый прямой URL: https://server-new.intra/ApplicationROOT
Теперь я хочу добавить информационную страницу в старое приложение, которая предоставляет новые URL-адреса для пользователей.Эта страница должна перенаправить на новую версию.Поскольку у нас разные веб-печати, я не буду жестко кодировать один URL-адрес в обратном направлении.Но когда я пытаюсь прочитать URL-адрес запроса с помощью HttpServletRequest#getRequestURL()
, я получаю только прямой адрес сервера.
Можно ли получить адрес веб-печати вместо адреса сервера?
Изменить:
У меня есть какое-то решение, но мне оно не очень нравится.Это больше похоже на обходной путь.В настоящее время я использую javascript, чтобы прочитать URL веб-сайта и затем выполнить переадресацию:
<script type="text/javascript" >
function redircetToNewUrl() {
var port = window.location.port;
if (port.length > 0) {
port = ':' + port;
} else {
port = '';
}
var url = 'https://' + window.location.hostname + port + '/junction-new/ApplicationROOT';
setTimeout(function f() {location.href = url;}, 30000);
}
</script>
<BODY onload="redircetToNewUrl()">
Это работает нормально, но, как я уже сказал, мне это не очень нравится. Было бы лучшесоздать URL перенаправления с использованием Java в JSP.