Lo necesita para acceder a no -variables implícitas. ¿Ahora tiene sentido?
actualización: A veces quisiera sólo para acceder a los métodos captadores de HttpServletRequest
y HttpSession
directamente. En JSP estándar, ambos solo están disponibles en ${pageContext}
. Estos son algunos ejemplos de uso del mundo real:
página refrescante cuando la sesión caduca:
<meta http-equiv="refresh" content="${pageContext.session.maxInactiveInterval}">
Pasando ID de sesión a una aplicación (de modo que pueda comunicarse con servlet en la misma sesión):
<param name="jsessionid" value="${pageContext.session.id}">
Viendo algún mensaje sólo en la primera solicitud de una sesión:
<c:if test="${pageContext.session['new']}">Welcome!</c:if>
nota que new
tiene un tratamiento especial porque es una palabra clave reservada en El, al menos, ya que EL 2,2
Viendo usuario IP:
Your IP is: ${pageContext.request.remoteAddr}
Creación de vínculos de dominio relativo sin codificar ruta de contexto actual:
<a href="${pageContext.request.contextPath}/login">login</a>
definir dinámicamente el <base>
etiqueta (con un poco de ayuda JSTL functions taglib):
<base href="${fn:replace(pageContext.request.requestURL, pageContext.request.requestURI, pageContext.request.contextPath)}/">
Etcétera. Eche un vistazo en el ya mencionado HttpServletRequest
y HttpSession
javadoc para conocer todos los métodos getter. Algunos de ellos también pueden ser útiles en JSP/EL.
un ejemplo me despejaría. –
como he mencionado para el lenguaje de expresión el u necesita pageContext. –
No lo necesita para acceder a objetos o atributos implícitos. P.ej. '$ {param.name}' (para 'request.getParameter (name)'), '$ {cookie.name}' (para las cookies cuyo 'getName(). equals (name)'), '$ {header.name } '(para' request.getHeader (name) ') o' $ {attributename} '(para' pageContext.findAttribute (attributename) ') es suficiente. Todos los objetos implícitos se enumeran [aquí] (http://docs.sun.com/app/docs/doc/819-3669/bnaij?l=es&a=view). Por cierto, tu inglés es bastante pobre. Después de pensar una vez más, probablemente haya ambigüedad en tu pregunta original. Realmente necesita verificar y aclarar esto. – BalusC