Directivas JSP: tutorial de página, inclusión y taglib

¿Qué son las directivas JSP?

  • Las directivas JSP son los mensajes al contenedor JSP. Proporcionan información global sobre una página JSP completa.
  • Las directivas JSP se utilizan para dar instrucciones especiales a un contenedor para la traducción de JSP a código de servlet.
  • En la fase del ciclo de vida de JSP, JSP debe convertirse en un servlet, que es la fase de traducción.
  • Dan instrucciones al contenedor sobre cómo manejar ciertos aspectos del procesamiento JSP.
  • Las directivas pueden tener muchos atributos separados por comas como pares clave-valor.
  • En JSP, la directiva se describe en etiquetas .

Sintaxis de la directiva:

<%@ directive attribute="" %>

Hay tres tipos de directivas:

  1. Directiva de página
  2. Incluir directiva
  3. directiva taglib

Cada uno de ellos se describe detalladamente a continuación con ejemplos:

Directiva de página JSP

Sintaxis de la directiva de página:

<%@ page…%>
  • Proporciona atributos que se aplican a toda la página JSP.
  • Define atributos dependientes de la página, como lenguaje de secuencias de comandos, página de error y requisitos de almacenamiento en búfer.
  • Se utiliza para proporcionar instrucciones a un contenedor que pertenece a la página JSP actual.

Following es su lista de atributos asociados con la directiva de página:

  1. Idioma
  2. Se extiende
  3. Importa
  4. tipo de contenido
  5. info
  6. Sesión
  7. esThreadSafe
  8. lavado automático
  9. buffer
  10. IsErrorPage
  11. codificación de página
  12. página de error
  13. estáELIgonorado

Más details sobre cada atributo

1) idioma: Define el lenguaje de programación (lenguaje subyacente) que se utiliza en la página.

Sintaxis del lenguaje:

<%@ page language="value" %>

Aquí el valor es el lenguaje de programación (lenguaje subyacente)

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

Explicación del código: En el ejemplo anterior, el valor del idioma del atributo es Java que es el lenguaje subyacente en este caso. Por lo tanto, el código de las etiquetas de expresión se compilaría utilizando el compilador de Java.

2) se extiende: Este atributo se utiliza para extender (heredar) la clase como lo hace JAVA

Sintaxis de extiende:

<%@ page extends="value" %>

Aquí el valor representa la clase de la que se debe heredar.

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	   pageEncoding="ISO-8859-1"%>

<%@ page extends="demotest.DemoClass" %>

Explicación del código: En el código anterior, JSP está ampliando DemoClass, que se encuentra dentro del paquete demotest, y ampliará todas las características de la clase.

3) Importar: Este atributo es el atributo más utilizado en los atributos de directiva de página. Se utiliza para indicarle al contenedor que importe otras clases, interfaces, enumeraciones, etc. de Java mientras se genera código de servlet. Es similar a las declaraciones de importación en clases e interfaces de Java.

Sintaxis de importación:

<%@ page import="value" %>

Aquí el valor indica las clases que deben importarse.

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    import="java.util.Date" pageEncoding="ISO-8859-1"%>

Explicación del código:

En el código anterior, estamos importando la clase Date del paquete java.util (todas las clases de utilidad) y puede usar todos los métodos de la siguiente manera.wing clase.

4) tipo de contenido:

  • Define el esquema de codificación de caracteres, es decir, se utiliza para establecer el tipo de contenido y el juego de caracteres de la respuesta.
  • El tipo predeterminado de contentType es “text/html; juego de caracteres=ISO-8859-1”.

Sintaxis del tipo de contenido:

<%@ page contentType="value" %>

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

Explicación del código:

En el código anterior, el tipo de contenido se establece como texto/html, establece la codificación de caracteres para JSP y para la página de respuesta generada.

5) información

  • Define una cadena a la que se puede acceder mediante el método getServletInfo().
  • Este atributo se utiliza para establecer la descripción del servlet.

Sintaxis de información:

<%@ page info="value" %>

Aquí, el valor representa la información del servlet.

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>

Explicación del código:

En el código anterior, la cadena "Directiva Guru JSP" se puede recuperar mediante la interfaz del servlet usando getServletInfo()

6) Sesión

  • La página JSP crea una sesión de forma predeterminada.
  • A veces no necesitamos crear una sesión en JSP y, por lo tanto, podemos establecer este atributo en falso en ese caso. El valor predeterminado del atributo de sesión es verdadero y se crea la sesión. Cuando se establece en falso , entonces podemos indicarle al compilador que no cree la sesión por defecto.

Sintaxis de sesión:

<%@ page session="true/false"%>

Aquí, en este caso, el atributo de sesión se puede establecer en verdadero o falso.

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    session="false"%>

Explicación del código:

En el ejemplo anterior, el atributo de sesión está establecido en "falso", por lo que indicamos que no queremos crear ninguna sesión en este JSP.

7) esThreadSafe:

  • Define el modelo de subprocesamiento para el servlet generado.
  • Indica el nivel de seguridad de subprocesos implementado en la página.
  • Su valor predeterminado es verdadero, por lo que simultáneamenteneous
  • Podemos usar este atributo para implementar la interfaz SingleThreadModel en el servlet generado.
  • Si lo configuramos en falso, implementará SingleThreadModel y podrá acceder a cualquier objeto compartido y puede generar inconsistencia.

Sintaxis de isThreadSafe:

<% @ page isThreadSafe="true/false" %>

Aquí verdadero o falso representa si hay sincronización, configúrelo como verdadero y configúrelo como falso.

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    isThreadSafe="true"%>

Explicación del código:

En el código anterior, isThreadSafe está configurado en "verdadero", por lo que se realizará la sincronización y se podrán utilizar varios subprocesos.

8) Descarga automática:

Este atributo especifica que la salida almacenada en el búfer debe vaciarse automáticamente o no y el valor predeterminado de ese atributo es verdadero.

Si el valor se establece en falso, el búfer no se vaciará automáticamente y, si está lleno, obtendremos una excepción.

Cuando el búfer es none, entonces lo falso es ilegítimo y no hay almacenamiento en búfer, por lo que se vaciará automáticamente.

Sintaxis de autoFlush:

<% @ page autoFlush="true/false" %>

Aquí verdadero/falso representa si se debe realizar el almacenamiento en búfer o no.

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    autoFlush="false"%>

Explicación del código:

En el código anterior, el autoflush está configurado en falso y, por lo tanto, no se realizará el almacenamiento en búfer y se vació manualmente la salida.

9) Amortiguador:

  • Usando este atributo el objeto de respuesta de salida puede almacenarse en buffer.
  • Podemos definir el tamaño del almacenamiento en búfer que se realizará utilizando este atributo y el tamaño predeterminado es 8 KB.
  • Indica al servlet que escriba en el búfer antes de escribir en el objeto de respuesta.

Sintaxis del búfer:

<%@ page buffer="value" %>

Aquí el valor representa el tamaño del búfer que debe definirse. Si no hay búfer, entonces podemos escribir como ninguno, y si no mencionamos ningún valor entonces el valor predeterminado es 8 KB.

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    buffer="16KB"%>

Explicación del código:

En el código anterior, el tamaño del búfer se menciona como 16 KB, donde el búfer sería de ese tamaño.

10) es una página de errores:

  • Indica que la página JSP que tiene una página de error se verificará en otra página JSP.
  • Cualquier archivo JSP declarado con el atributo "isErrorPage" es capaz de recibir excepciones de otras páginas JSP que tienen páginas de error.
  • Las excepciones están disponibles únicamente para estas páginas.
  • El valor predeterminado es falso.

Sintaxis de isErrorPage:

<%@ page isErrorPage="true/false"%>

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    isErrorPage="true"%>

Explicación del código:

En el código anterior, isErrorPage se establece como verdadero. Por lo tanto, verificará que cualquier otro JSP tenga establecido el atributo errorPage (descrito en el siguiente atributo) y que pueda manejar excepciones.

11) Codificación de página:

El atributo "pageEncoding" define la codificación de caracteres para la página JSP.

El valor predeterminado se especifica como “ISO-8859-1” si no se especifica ningún otro.

Sintaxis de codificación de página:

<%@ page pageEncoding="vaue" %>

Aquí el valor especifica el valor del juego de caracteres para JSP.

Ejemplo:

<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"
    isErrorPage="true"%>

Explicación del código:

En el código anterior, "pageEncoding" se ha configurado en el juego de caracteres predeterminado ISO-8859-1

12) página de error:

Este atributo se utiliza para establecer la página de error para la página JSP si JSP genera una excepción y luego redirige a la página de excepción.

Sintaxis de página de error:

<%@ page errorPage="value" %>

Aquí el valor representa el valor de la página JSP de error.

Ejemplo:

<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"
    errorPage="errorHandler.jsp"%>

Explicación del código:

En el código anterior, para manejar excepciones tenemos errroHandler.jsp

13) se ignora:

  • IsELIgnored es un atributo de bandera donde tenemos que decidir si ignoramos las etiquetas EL o no.
  • Su tipo de datos es java enum y el valor predeterminado es falso, por lo que EL está habilitado de forma predeterminada.

Sintaxis de isELIgnored:

<%@ page isELIgnored="true/false" %>

Aquí, verdadero/falso representa el valor de EL, ya sea que deba ignorarse o no.

Ejemplo:

<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"
    isELIgnored="true"%>

Explicación del código:

En el código anterior, isELIgnored es verdadero y por lo tanto Lenguaje de expresión (EL) es ignorado aquí.

En el siguiente ejemplo utilizamos cuatro atributos (línea de código 1-2)

Ejemplo con cuatro atributos

<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"
    isELIgnored="false"%>
 <%@page import="java.util.Date" %>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Directive Guru JSP1</title>
</head>
<body>
<a>Date is:</a>
<%= new java.util.Date() %>
</body>
</html>

Explicación del código:

Línea de código 1-2: Aquí hemos definido cuatro atributos, es decir

  • Idioma: Se establece como Java como lenguaje de programación
  • contentType: establecido como texto/html para indicarle al compilador que se debe formatear html
  • pageEncoding: el juego de caracteres predeterminado está establecido en este atributo
  • isELIgnored: la etiqueta de expresión es falsa, por lo que no se ignora

Línea de código 3: Aquí hemos utilizado el atributo de importación y está importando la "clase de fecha" que proviene del paquete de utilidades de Java y estamos intentando mostrar la fecha actual en el código.

Cuando ejecute el código anterior, obtendrá lo siguientewing salida

Directiva de página JSP

Salida:

  • La fecha es: fecha actual usando el método de fecha de la clase de fecha

Directiva de inclusión JSP

  • La “directiva de inclusión” JSP (línea de código 8) se utiliza para incluir un archivo en otro archivo.
  • Este archivo incluido puede ser HTML, JSP, archivos de texto, etc.
  • También es útil para crear plantillas con las vistas del usuario y dividir las páginas en acciones de encabezado, pie de página y barra lateral.
  • Incluye archivo durante la fase de traducción.

Sintaxis de la directiva de inclusión:

<%@ include….%>

Ejemplo:

Directiva_jsp2.jsp (archivo principal)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ include file="directive_header_jsp3.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Directive JSP2</title>
</head>
<body>
<a>This is the main file</a> 
</body>
</html>

directive_header_jsp3.jsp (que se incluye en el archivo principal)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

</head>
<body>
<a>Header file : </a>
<%int count =1; count++;
out.println(count);%> :
</body>
</html>

Explicación del código:

Directiva_jsp2.jsp:

Línea de código 3: En este código, usamos etiquetas de inclusión donde incluimos el archivo directivo_header_jsp3.jsp en el archivo principal (_jsp2.jsp) y obtenemos la salida tanto del archivo principal como del archivo incluido.

Directiva_header_jsp3.jsp:

Línea de código 11-12: Hemos tomado un recuento de variables inicializado en 1 y luego lo incrementamos. Esto dará el resultado en el archivo principal como se muestra a continuación.

Cuando ejecutas el código anterior obtienes el siguientewing salida:

Directiva de inclusión JSP

Salida:

  • El resultado es un archivo de encabezado: 2: este es el archivo principal.
  • La salida se ejecuta desde el archivo directivo_jsp2.jsp mientras que el archivo incluido directiva_header_jsp3.jsp se compilará primero.
  • Una vez finalizado el archivo incluido, se ejecuta el archivo principal y la salida será del archivo principal "Este es el archivo principal". Entonces obtendrá el resultado como "Archivo de encabezado: 2" de _jsp3.jsp y "Este es el archivo principal" de _jsp2.jsp.

Directiva JSP Taglib

  • La directiva JSP taglib se usa para definir la biblioteca de etiquetas con "taglib" como prefijo, que podemos usar en JSP.
  • Se cubrirán más detalles en la sección Etiquetas personalizadas JSP
  • La directiva JSP taglib se utiliza en las páginas JSP que utilizan las bibliotecas de etiquetas estándar JSP
  • Utiliza un conjunto de etiquetas personalizadas, identifica la ubicación de la biblioteca y proporciona medios para identificar etiquetas personalizadas en una página JSP.

Sintaxis de la directiva taglib:

<%@ taglib uri="uri" prefix="value"%>

Aquí el atributo "uri" es un identificador único en el descriptor de la biblioteca de etiquetas y el atributo "prefijo" es un nombre de etiqueta.

Ejemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="gurutag" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Directive JSP</title>
<gurutag:hello/>
</head>
<body>
</body>
</html>

Explicación del código:

Línea de código 3: Aquí "taglib" se define con los atributos uri y prefijo.

Línea de código 9: “gurutag” es la etiqueta personalizada definida y se puede usar en cualquier lugar