Если ваш текущий запрос поступает от «внутри сервера приложений» вперед или включает, сервер приложений должен сохранить информацию запроса в качестве атрибутов запроса. Конкретные атрибуты и то, что они содержат, зависят от того, выполняете ли вы forward или include.
Для <jsp:include>
исходный родительский URL будет возвращен request.getRequestURL()
, а информация о включенной странице будет найдена в следующих атрибутах запроса:
javax.servlet.include.request_uri
javax.servlet.include.context_path
javax.servlet.include.servlet_path
javax.servlet.include.path_info
javax.servlet.include.query_string
Для <jsp:forward>
новый URL будет возвращен request.getRequestURL()
, а информация об исходном запросе будет найдена в следующих атрибутах запроса:
javax.servlet.forward.request_uri
javax.servlet.forward.context_path
javax.servlet.forward.servlet_path
javax.servlet.forward.path_info
javax.servlet.forward.query_string
Они изложены в разделах 8.3 и 8.4 спецификации Servlet 2.4.
Однако имейте в виду, что эта информация сохраняется только для внутренних запросов. Если у вас есть интерфейсный веб-сервер или отправка за пределы текущего контейнера, эти значения будут нулевыми. Другими словами, вы не можете найти исходный URL-адрес запроса.