Objetos implícitos JSP: tutorial completo

Tabla de contenido:

Anonim

¿Qué es el objeto implícito JSP?

  • Los objetos implícitos de JSP se crean durante la fase de traducción de JSP al servlet.
  • Estos objetos se pueden usar directamente en los scriplets que se incluyen en el método de servicio.
  • El contenedor los crea automáticamente y se puede acceder a ellos mediante objetos.

¿Cuántos objetos implícitos están disponibles en JSP?

Hay 9 tipos de objetos implícitos disponibles en el contenedor:

  1. fuera
  2. petición
  3. respuesta
  4. config
  5. solicitud
  6. sesión
  7. pageContext
  8. página
  9. excepción

Estudiemos uno por uno

fuera

  • Out es uno de los objetos implícitos para escribir los datos en el búfer y enviar la salida al cliente en respuesta
  • El objeto Out nos permite acceder al flujo de salida del servlet
  • Out es objeto de la clase javax.servlet.jsp.jspWriter
  • Mientras trabajamos con el servlet, necesitamos el objeto printwriter

Ejemplo:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru implícito JSP1 <% int num1 = 10; int num2 = 20;out.println ("num1 es" + num1);out.println ("num2 es" + num2);%>

Explicación del código:

Línea de código 11-12 : la salida se utiliza para imprimir en el flujo de salida

Cuando ejecutamos el código anterior, obtenemos el siguiente resultado:

Producción:

  • En la salida, obtenemos los valores de num1 y num2

Petición

  • El objeto de solicitud es una instancia de java.servlet.http.HttpServletRequest y es uno de los argumentos del método de servicio
  • Se creará por contenedor para cada solicitud.
  • Se utilizará para solicitar información como parámetro, información de encabezado, nombre del servidor, etc.
  • Utiliza getParameter () para acceder al parámetro de solicitud.

Ejemplo:

Implicit_jsp2.jsp (formulario desde el que se envía la solicitud a guru.jsp)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Formulario de Guru implícito JSP2 

Guru.jsp (donde se realiza la acción)

Explicación del código:

Línea de código 10-13: En implícito_jsp2.jsp (formulario) se envía la solicitud, por lo tanto, el nombre de usuario de la variable se procesa y se envía a guru.jsp, que es la acción de JSP.

Guru.jsp

Línea de código 10-11: es la acción jsp donde se procesa la solicitud y el nombre de usuario se toma del formulario jsp.

Cuando ejecuta el código anterior, obtiene el siguiente resultado

Producción:

Cuando escribe la prueba y hace clic en el botón enviar, obtiene el siguiente resultado "Prueba de bienvenida".

Respuesta

  • "Response" es una instancia de clase que implementa la interfaz HttpServletResponse
  • El contenedor genera este objeto y pasa al método _jspservice () como parámetro
  • El contenedor creará un "objeto de respuesta" para cada solicitud.
  • Representa la respuesta que se le puede dar al cliente
  • El objeto implícito de respuesta se utiliza para escribir el tipo de contenido, agregar cookies y redirigir a la página de respuesta.

Ejemplo:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru implícito JSP4 <% response.setContentType ("texto / html"); %>

Explicación del código:

Línea de código 11: en el objeto de respuesta podemos establecer el tipo de contenido

Aquí estamos configurando solo el tipo de contenido en el objeto de respuesta. Por lo tanto, no hay salida para esto.

Config

  • "Config" es del tipo java.servlet.servletConfig
  • Es creado por el contenedor para cada página jsp
  • Se usa para obtener el parámetro de inicialización en web.xml

Ejemplo:

Web.xml (especifica el nombre y la asignación del servlet)

Implicit_jsp5.jsp (obteniendo el valor del nombre del servlet)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru implícito JSP5 <% String servletName = config.getServletName ();out.println ("El nombre del servlet es" + el nombre del servlet);%>

Explicación del código:

En web.xml

Línea de código 14-17: En web.xml tenemos un mapeo de servlets a las clases.

Implícito_jsp5.jsp

Línea de código 10-11: para obtener el nombre del servlet en JSP, podemos usar config.getServletName, que nos ayudará a obtener el nombre del servlet.

Cuando ejecuta el código anterior, obtiene el siguiente resultado:

Producción:

  • El nombre del servlet es "GuruServlet" ya que el nombre está presente en web.xml

Solicitud

  • El objeto de aplicación (línea de código 10) es una instancia de javax.servlet.ServletContext y se utiliza para obtener la información de contexto y los atributos en JSP.
  • El objeto de aplicación lo crea el contenedor uno por aplicación, cuando se implementa la aplicación.
  • El objeto Servletcontext contiene un conjunto de métodos que se utilizan para interactuar con el contenedor de servlets. Podemos encontrar información sobre el contenedor de servlets.

Ejemplo:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru implícito JSP6 <% application.getContextPath (); %>

Explicación del código:

  • En el código anterior, el atributo de la aplicación ayuda a obtener la ruta de contexto de la página JSP.

Sesión

  • La sesión contiene el objeto "httpsession" (línea de código 10).
  • El objeto de sesión se usa para obtener, establecer y eliminar atributos del alcance de la sesión y también se usa para obtener información de la sesión

Ejemplo:

Implicit_jsp7 (el atributo está establecido)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> JSP implícito <% session.setAttribute ("usuario", "GuruJSP"); %> Haga clic aquí para obtener el nombre de usuario 

Implícito_jsp8.jsp (getAttribute)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru JSP8 implícito <% String name = (String) session.getAttribute ("usuario");out.println ("El nombre de usuario es" + nombre);%>

Explicación del código:

Implícito_jsp7.jsp

Línea de código 11: estamos configurando el atributo usuario en la variable de sesión, y ese valor se puede obtener de la sesión en cualquier jsp que se llame desde ese (_jsp8.jsp).

Línea de código 12: estamos llamando a otro jsp en href en el que obtendremos el valor para el atributo usuario que está establecido.

Implícito_jsp8.jsp

Línea de código 11: Obtenemos el valor del atributo de usuario del objeto de sesión y mostramos ese valor

Cuando ejecuta el código anterior, obtiene el siguiente resultado:

Al hacer clic en el enlace del nombre de usuario. Obtendrá el siguiente resultado.

Producción:

  • Cuando hacemos clic en el enlace dado en implícito_jsp7.jsp, entonces somos redirigidos a la segunda página jsp, es decir (_jsp8.jsp) y obtenemos el valor del objeto de sesión del atributo de usuario (_jsp7.jsp).

pageContext:

  • Este objeto es del tipo de contexto de página.
  • Se utiliza para obtener, establecer y eliminar los atributos de un ámbito en particular.

Los alcances son de 4 tipos:

  • Página
  • Petición
  • Sesión
  • Solicitud

Ejemplo:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru implícito JSP9 <% pageContext.setAttribute ("estudiante", "gurustudent", pageContext.PAGE_SCOPE);String name = (String) pageContext.getAttribute ("estudiante");out.println ("el nombre del estudiante es" + nombre);%>

Explicación del código:

Línea de código 11: estamos configurando el atributo usando el objeto pageContext, y tiene tres parámetros:

  • Llave
  • Valor
  • Alcance

En el código anterior, la clave es estudiante y el valor es "gurustudent" mientras que el alcance es el alcance de la página. Aquí el alcance es "página" y se puede obtener usando solo el alcance de la página.

Línea de código 12: Obtenemos el valor del atributo usando pageContext

Cuando ejecuta el código anterior, obtiene el siguiente resultado:

Producción:

  • La salida imprimirá "el nombre del estudiante es gurustudent".

Página

  • La variable implícita de página contiene el objeto de servlet actualmente ejecutado para el jsp correspondiente.
  • Actúa como este objeto para la página jsp actual.

Ejemplo:

En este ejemplo, estamos usando el objeto de página para obtener el nombre de la página usando el método toString

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru implícito JSP10 <% String pageName = page.toString ();out.println ("El nombre de la página es" + pageName);%>

Explicación del código:

Línea de código 10-11: En este ejemplo, estamos tratando de usar el método toString () del objeto de página y tratando de obtener el nombre de cadena de la página JSP.

Cuando ejecuta el código, obtiene el siguiente resultado:

Producción:

  • La salida es el nombre de la cadena de la página jsp anterior

Excepción

  • La excepción es el objeto implícito de la clase arrojable.
  • Se utiliza para el manejo de excepciones en JSP.
  • El objeto de excepción solo se puede utilizar en páginas de error.

    Ejemplo:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1" isErrorPage = "true"%> Guru implícito JSP 11 <% int [] num1 = {1,2,3,4};out.println (num1 [5]);%><% = excepción%>

Explicación del código:

Línea de código 10-12 : tiene una matriz de números, es decir, num1 con cuatro elementos. En la salida, estamos intentando imprimir el quinto elemento de la matriz de num1, que no está declarado en la lista de matrices. Entonces se usa para obtener el objeto de excepción del jsp.

Producción:

Obtenemos ArrayIndexOfBoundsException en la matriz donde obtenemos una matriz num1 del quinto elemento.