Ответ 1
Вам нужно получить доступ к не -имплицированным переменным. Теперь это имеет смысл?
Обновление: иногда хотелось бы получить доступ к методам getter HttpServletRequest
и HttpSession
. В стандартном JSP оба доступны только ${pageContext}
. Вот некоторые примеры использования в реальном мире:
Обновление страницы при отключении сеанса:
<meta http-equiv="refresh" content="${pageContext.session.maxInactiveInterval}">
Передача идентификатора сеанса на апплет (чтобы он мог связываться с сервлетом в одном сеансе):
<param name="jsessionid" value="${pageContext.session.id}">
Отображение некоторого сообщения только при первом запросе сеанса:
<c:if test="${pageContext.session['new']}">Welcome!</c:if>
Обратите внимание, что new
имеет специальное лечение, потому что это зарезервированное ключевое слово в EL, по крайней мере, поскольку EL 2.2
Отображение IP-адреса пользователя:
Your IP is: ${pageContext.request.remoteAddr}
Создание ссылок по доменам без жесткого кодирования текущего контекстного пути:
<a href="${pageContext.request.contextPath}/login">login</a>
Динамическое определение тега <base>
(с небольшой помощью функции JSTL taglib):
<base href="${fn:replace(pageContext.request.requestURL, pageContext.request.requestURI, pageContext.request.contextPath)}/">
Etcetera. Загляните в заранее найденный HttpServletRequest
и HttpSession
javadoc, чтобы узнать обо всех этих методах getter. Некоторые из них могут быть полезны и в JSP/EL.