То есть, вы хотите, чтобы URL страницы, вызвавшей текущую страницу, был заполнен полноценным HTTP-запросом?Я предполагаю, что нет средств для форварда, потому что вы обычно не используете JSP для этого (так как это потенциально может привести к IllegalStateException: Response already committed
), а также, с форвардом, ваше требование будет работать так, как вы хотите.
Самый простой способ и лучшая ставка - получить заголовок HTTP Referer
(да, включая легендарную опечатку).Вы можете получить его в EL следующим образом:
${header.referer}
Я сказал «лучшая ставка», потому что клиенты не обязаны заполнять заголовок реферера.Большинство браузеров отправляют их вместе, но имейте в виду, что это значение полностью контролируется клиентом, поэтому клиент (или любое установленное клиентом программное обеспечение с некоторым конкретным программным обеспечением Norton в качестве известного примера) может подделать или даже полностью удалитьзначение заголовка.
Немного более надежный способ - позволить исходной странице передать свой URL в качестве (скрытого) параметра запроса.Например,
<input type="hidden" name="from" value="${pageContext.request.requestURI}">
Таким образом, он доступен на следующей странице по
${param.from}
Я сказал «бит», потому что клиент все еще может изменить его, но теперь вы не зависите отконкретная среда клиента больше.Вам все еще нужно помнить, что вы не должны использовать это значение в деловых целях.Используйте его по максимуму для статистики или отладки.