Это объекты, которые уже размещены в области видимости контейнером сервлета, так что они доступны для EL (язык выражений), такие как PageContext
, HttpServletRequest#getParameter()
, HttpServletRequest#getHeader()
и так далее. Это просто для удобства, так что вам не нужно использовать старомодные скриптлеты , чтобы захватывать их.
Так, например, вместо
<%= pageContext.getSession().getMaxInactiveInterval() %><br>
<%= request.getParameter("foo") %><br>
<%= request.getHeader("user-agent") %><br>
<% for (Cookie cookie : request.getCookies()) { // Watch out with NPE!
if (cookie.getName().equals("foo")) {
out.write(cookie.getValue());
}
}
%><br>
Вы можете просто сделать
${pageContext.session.maxInactiveInterval}<br>
${param.foo}<br>
${header['user-agent']}<br>
${cookie.foo}<br>
Вы видите, что они следуют соглашениям JavaBean, к которым осуществляется доступ (то есть вы можете просто вызывать получатели способом JavaBean). Вы видите, что я использовал скобку []
, чтобы получить user-agent
, потому что -
является зарезервированным символом в EL, поэтому ${header.user-agent}
не будет работать, он попытается вернуть результат request.getHeader("user") - pageContext.findAttribute("agent")
что явно не сработает.
Для ознакомления с ними все обратитесь к главе Неявные объекты в руководстве по Java EE.