Как я знаю, ваш сервер приложений (Tomcat) не может знать о наличии обратного прокси. Вообще говоря, с ним можно связаться через любое количество обратных прокси или напрямую через браузеры. Для ограничения этого обычно используется конфигурация сети, а не HTTP или Java.
Таким образом, вы должны точно полагаться на относительные URL, чтобы ваше приложение работало хорошо.
Когда мне приходится иметь дело с наличием обратного прокси-сервера (почти всегда из-за архитектуры SSO), я встраиваю элемент строки конфигурации "junction" (часть URL-адреса, используемого в прокси-сервере для сопоставления приложения) и использую его только те места, где мне нужно создать абсолютный URL.