Вы действительно понимаете, что URL-клиент видит (и / или вводит в свой браузер), а URL-адрес, обслуживаемый контейнером, в котором развернут ваш сервлет, может сильно отличаться?
Чтобы получить последнее, однако у вас есть несколько методов, доступных на HttpServletRequest :
getScheme ()
, getServerName ()
, ] getServerPort ()
и getContextPath ()
и объедините их, используя соответствующие разделители getRequestURL ()
и удалить getServletPath ()
и getPathInfo ()
из него. Как правило, вы не можете получить URL-адрес; но для конкретных случаев есть обходные пути. См. Поиск URL-адреса вашего приложения только с помощью ServletContext