c:import
запускает под прикрытием новый и независимый HTTP-запрос. Даже если файл находится в том же контексте, он не будет иметь доступа к тому же запросу, с которым был открыт родительский JSP.
Лучше всего передать информацию в качестве параметра запроса или сохранить в качестве атрибута сеанса, а затем разрешить импортированной JSP удалить ее из сеанса. Тем не менее, это требует, чтобы разные контексты совместно использовали один и тот же сеанс - это настраивается на уровне контейнеров сервлетов, например, для Tomcat, установите атрибут emptySessionPath
на true
в context.xml
.
Вместо этого можно использовать сервлет, вместо которого можно сделать ServletContext#getContext()
для получения другого контекста сервлета (только если для атрибута crossContext
установлено значение true
в context.xml
), а затем получить RequestDispatcher
и, наконец, вызвать forward()
на нем. Это невозможно по тегам JSP.