JSP PageContext – Objetos Implícitos

PageContext amplía JspContext para contribuir con detalles de contexto útiles, mientras que la tecnología JSP se aplica en un entorno Servlet. Un PageContext es una instancia que brinda acceso a todos los espacios de nombres relacionados con una página JSP, brinda acceso a algunos atributos de la página y una capa sobre los detalles de la aplicación. Los objetos implícitos están conectados al pageContext en consecuencia.

  • La clase PageContext es una clase abstracta que se forma para extenderse y proporcionar aplicaciones dependientes de las cuales los entornos de tiempo de ejecución del motor JSP son compatibles. En JSP, pageContext es una instancia de javax.servlet.jsp.PageContext .
  • Toda la página JSP está representada por el objeto PageContext. Este objeto se considera como un método para obtener detalles sobre la página mientras se mantiene alejado de la mayor parte de la información de ejecución.
  • Para cada solicitud, este objeto pageContext guarda las credenciales de los objetos de respuesta y solicitud. Al acceder a los atributos del objeto pageContext, se obtienen los objetos out, session, config y application.
  • Este objeto pageContext contiene además información sobre las directivas proporcionadas a la página JSP, junto con el alcance de la página, la información de almacenamiento en búfer y el errorPageURL.
  • Al utilizar el objeto pageContext, puede establecer atributos, obtener atributos y eliminar atributos que están presentes en los diferentes ámbitos, como los ámbitos de página , solicitud , sesión y aplicación , que se detallan a continuación de la siguiente manera:
  1. página – Ámbito: PAGE_CONTEXT
  2. solicitud – Ámbito: SOLICITUD_CONTEXT
  3. sesión – Ámbito: SESSION_CONTEXT
  4. aplicación – Ámbito: APPLICATION_CONTEXT

Nota: El alcance de la página es el alcance predeterminado en JSP.

Sintaxis:

public abstract class PageContext
extends JspContext

Sintaxis: Para usar pageContext

pageContext.methodName(“name of attribute”, “scope”);

Siguiendo adelante, ahora analicemos los métodos utilizados en el objeto implícito pageContext. A continuación, se proponen varios métodos que se utilizan en el objeto pageContext de los cuales se han involucrado con mayor frecuencia y se analizan a continuación individualmente en profundidad, seguidos de un programa java limpio para ilustrar la implementación de objetos implícitos en la clase JSP PageContext.

Recuerde: Admite más de 40 métodos heredados de ContextClass. 

Método 1: getAttribute (String AttributeName, int Scope) 

El método getAttribute encuentra un atributo en el ámbito descrito. Por ejemplo, la declaración dada debajo del método getAttribute encuentra el atributo «GeeksforGeeks» en el ámbito de la sesión (capa de sesión). Si encuentra el atributo, lo asignará a Object obj; de lo contrario, devolverá Null.

Sintaxis: 

Object obj = pageContext.getAttribute("GeeksforGeeks", PageContext.SESSION_CONTEXT);

En consecuencia, este método también se puede utilizar para otros ámbitos, como los siguientes:

  • Objeto obj = pageContext.getAttribute(“GeeksforGeeks”, PageContext. SOLICITUD_CONTEXTO);
  • Objeto obj = pageContext.getAttribute(“GeeksforGeeks”, PageContext. PAGE_CONTEXT);
  • Objeto obj = pageContext.getAttribute(“GeeksforGeeks”, PageContext. APPLICATION_CONTEXT);

Método 2: findAttribute (String AttributeName)

El método findAttribute() encuentra el atributo descrito en los cuatro niveles en el siguiente orden que se detalla a continuación. En cualquier nivel, si no se encuentra ningún atributo, devolverá NULL. 

Page --> Request --> Session and Application

Método 3: void setAttribute(String AttributeName, Object AttributeValue, int Scope)

Este método establece un atributo en un ámbito determinado. Por ejemplo, considere que la declaración dada a continuación guardará un Atributo «datos» en el ámbito de la aplicación con el valor «Esto son datos».

Sintaxis:

pageContext.setAttribute(“data”, “This is data”, PageContext. APPLICATION_CONTEXT);

En consecuencia, este método diseñará un atributo llamado attr1 en el ámbito de la Solicitud con el valor «Valor de Attr1» de la siguiente manera:

pageContext.setAttribute(“attr1”, “Attr1 value”, PageContext. REQUEST_CONTEXT);

Método 4: void removeAttribute(String AttributeName, int Scope) 

Para eliminar un atributo de un ámbito determinado, se utiliza este método. Por ejemplo, considere que la declaración JSP que se proporciona a continuación eliminará un atributo «Attr» del alcance de la página.

Sintaxis:

pageContext.removeAttribute(“Attr”, PageContext. PAGE_CONTEXT);

Por último, implementemos ilustrando muestras de código HTML del objeto implícito pageContext

Ejemplo 1: index.html

Página 1: en esta página HTML, simplemente le pedimos al usuario que ingrese el nombre.

HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>GeeksforGeeks</title>
</head>
<body>
  
<form action="welcome.jsp">  
<input type="text" name="uname">  
<input type="submit" value="go"><br/>  
</form>
  
</body>
</html>

Página 2: es una página JSP, estamos guardando el nombre del usuario usando el objeto implícito pageContext con el alcance de la sesión, lo que significa que podremos acceder a los detalles hasta que la sesión del usuario esté activa.

Ejemplo 2: bienvenido.jsp 

HTML

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
  
<%   
  
String name=request.getParameter("uname");  
out.print("Welcome "+name);  
    
pageContext.setAttribute("user",name,PageContext.SESSION_SCOPE);   
    
%> 
  
<a href="second.jsp">second jsp page</a> 
  
</body>
</html>

Página 3: En esta página JSP, estamos recuperando los atributos guardados utilizando el método getAttribute. El punto que se debe considerar aquí es que hemos guardado los atributos con el alcance de la sesión, por lo que debemos establecer el alcance como una sesión para recuperar el valor de esos atributos.

Ejemplo 3: segundo.jsp

HTML

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
  
<%   
   
String name=(String)pageContext.getAttribute("user",PageContext.SESSION_SCOPE);  
out.print("Hello "+name);  
    
%> 
  
</body>
</html>

Producción: 

Una página HTML donde estamos recibiendo el nombre del usuario.

B Página JSP junto con el enlace de la página de detalles.

C Credenciales de usuario muestra la página que hemos movido de la página html a esta página por instancia de pageContext.

Publicación traducida automáticamente

Artículo escrito por nehashrirudra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *