Etiqueta de elementos JSP

โšก Resumen inteligente

Las estructuras de etiquetas de elementos JSP permiten a los desarrolladores incrustar Java directamente en una pรกgina mediante etiquetas de declaraciรณn, scriptlet, expresiรณn y comentario, lo que permite la creaciรณn de variables, la ejecuciรณn de lรณgica, la salida dinรกmica y la documentaciรณn legible dentro de un รบnico archivo renderizado por el servidor.

  • ๐Ÿ“ Etiqueta de declaraciรณn: La etiqueta <%! %> declara variables y mรฉtodos a nivel de clase de servlet, fuera del mรฉtodo de servicio.
  • โš™๏ธ Etiqueta de scriptlet: La etiqueta <% %> coloca Java instrucciones que se ejecutan dentro de _jspservice() en cada solicitud del cliente.
  • ๐Ÿ”ข Etiqueta de expresiรณn: La etiqueta <%= %> evalรบa una expresiรณn aritmรฉtica o lรณgica y escribe su resultado en la salida.
  • ???? Etiqueta de comentario: La etiqueta <%โ€“ โ€“%> oculta las notas del contenedor y del navegador, keeping Cรณdigo documentado y limpio.
  • ๐Ÿš€ Ejecutar en el servidor: Una pรกgina JSP completa se empaqueta en un archivo WAR y se implementa en un servidor web como JBoss.
  • ๐Ÿ“ Estructura de directorios: Los archivos JSP se encuentran fuera de la carpeta WEB-INF, mientras que los archivos de configuraciรณn y de biblioteca permanecen dentro de la carpeta WEB-INF.

Etiquetas JSP

En este tutorial, aprenderemos las etiquetas bรกsicas de JSP y cรณmo agregar comentarios en JSP. Junto con esto, tambiรฉn crearemos un JSP y lo ejecutaremos en el servidor.

Declaraciรณn JSP

  • Una etiqueta de declaraciรณn es una pieza de Java Cรณdigo para declarar variables, mรฉtodos y clases. Si declaramos una variable o mรฉtodo dentro de la etiqueta de declaraciรณn, significa que la declaraciรณn se realiza dentro de la clase de servlet pero fuera del mรฉtodo de servicio.
  • Podemos declarar un miembro estรกtico, una variable de instancia (puede declarar un nรบmero o una cadena) y mรฉtodos dentro de la etiqueta de declaraciรณn.

Sintaxis de la etiqueta de declaraciรณn:

<%!  Dec var  %>

Aquรญ Dec var es el mรฉtodo o una variable dentro de la etiqueta de declaraciรณn.

Ejemplo:

En este ejemplo, usaremos las etiquetas de declaraciรณn.

<%@ 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">
<title>Guru Declaration Tag</title>
</head>
<body>
<%! int count =10; %>
<% out.println("The Number is " +count); %>
</body>
</html>

Explicaciรณn del cรณdigo:

Code Lรญnea 10: Aquรญ estamos usando una etiqueta de declaraciรณn para inicializar un recuento de variables a 10.

Cuando ejecuta el cรณdigo anterior, obtiene el siguiente resultado:

Declaraciรณn JSP

Salida:

La variable que se declara en la etiqueta de declaraciรณn se imprime como salida.

Scriptlet JSP

  • La etiqueta Scriptlet permite escribir Java cรณdigo en un archivo JSP.
  • El contenedor JSP mueve declaraciones en el mรฉtodo _jspservice() mientras genera servlet desde jsp.
  • Para cada solicitud del cliente, se invoca el mรฉtodo de servicio de JSP, por lo que el cรณdigo dentro del Scriptlet se ejecuta para cada solicitud.
  • Un Scriptlet contiene cรณdigo Java que se ejecuta cada vez que se invoca JSP.

Sintaxis de la etiqueta Scriptlet:

<% java code %>

Aquรญ las etiquetas son etiquetas scriplets y dentro de ellas podemos colocar cรณdigo Java.

Ejemplo:

En este ejemplo, tomamos etiquetas Scriptlet que incluyen cรณdigo Java.

<%@ 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">
<title>Guru Scriplet</title>
</head>
<body>
<% int num1=10;
   int num2=40;
   int num3 = num1+num2;
   out.println("Scriplet Number is " +num3);
%>
</body>
</html>

Explicaciรณn del cรณdigo:

Code Lรญneas 10-14: En las etiquetas de Scriptlet donde tomamos dos variables num1 y num2. Se toma la tercera variable num3, que suma como num1 y num2. La salida es num3.

Al ejecutar el cรณdigo se obtiene el siguiente resultado:

Scriptlet JSP

Salida:

El resultado del nรบmero de Scriptlet es 50, que es la suma de num1 y num2.

Expresiรณn JSP

  • La etiqueta de expresiรณn evalรบa la expresiรณn colocada en ella.
  • Accede a los datos almacenados en la aplicaciรณn almacenada.
  • Permite crear expresiones como aritmรฉticas y lรณgicas.
  • Produce una pรกgina JSP sin scripts.

Sintaxis:

<%= expression %>

Aquรญ la expresiรณn es la expresiรณn aritmรฉtica o lรณgica.

Ejemplo:

En este ejemplo, estamos usando la etiqueta de expresiรณn

<%@ 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">
<title>Guru Expression</title>
</head>
<body>
<% out.println("The expression number is "); %>
<% int num1=10; int num2=10; int num3 = 20; %>
<%= num1*num2+num3 %>
</body>
</html>

Explicaciรณn del cรณdigo:

Code Lรญnea 12: Aquรญ usamos etiquetas de expresiรณn donde usamos una expresiรณn multiplicando dos nรบmeros, es decir, num1 y num 2 y luego sumando el tercer nรบmero, es decir, num3.

Cuando ejecuta el cรณdigo anterior, obtiene el siguiente resultado:

Expresiรณn JSP

Salida:

La expresiรณn nรบmero es 120 donde estamos multiplicando dos nรบmeros num1 y num2 y sumando ese nรบmero con el tercer nรบmero.

Comentarios JSP

Los comentarios son aquellos en los que el contenedor JSP quiere ignorar ciertos textos y declaraciones.

Cuando queramos ocultar cierto contenido, podemos agregarlo a la secciรณn de comentarios.

Sintaxis:

<% -- JSP Comments %>

Estas etiquetas se utilizan para comentar en JSP y el contenedor JSP las ignora.

Este es un comentario HTML que el navegador ignora.

Ejemplo:

En este ejemplo, estamos usando comentarios JSP.

<%@ 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">
<title>Guru Comments</title>
</head>
<body>
<%-- Guru Comments section --%>
<% out.println("This is comments example"); %>

</body>
</html>

Explicaciรณn del cรณdigo:

Code Lรญnea 10: Aquรญ agregamos comentarios JSP al cรณdigo para explicar quรฉ tiene el cรณdigo. Ha sido ignorado por el contenedor JSP.

Cuando ejecuta el cรณdigo anterior, obtiene el siguiente resultado:

Comentarios JSP

Salida:

Obtenemos el resultado que se imprime en el mรฉtodo println. Los comentarios son ignorados por el contenedor.

Creando una pรกgina JSP simple

  • Una pรกgina JSP tiene un cuerpo HTML incorporado con Java cรณdigo en รฉl
  • Estamos creando una pรกgina JSP simple que incluye declaraciones, scriptets, expresiones y etiquetas de comentarios.

Ejemplo:

<%@ 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">
<title>Guru JSP Example</title>
</head>
<body>

<%-- This is a JSP example with scriplets, comments , expressions --%>
<% out.println("This is guru JSP Example"); %>
<% out.println("The number is "); %>
<%! int num12 = 12; int num32 = 12; %>
<%= num12*num32 %>
Today's date: <%= (new java.util.Date()).toLocaleString()%>
</body>
</html>

Explicaciรณn del cรณdigo:

Code Lรญnea 1: Aquรญ utilizamos directivas como idioma, contentType y pageEncoding. El lenguaje es Java y el tipo de contenido es texto/html con juego de caracteres estรกndar ISO 8859. La codificaciรณn de pรกgina es juego de caracteres estรกndar.

Code Lรญnea 11: Aquรญ estamos usando comentarios JSP para agregar comentarios al JSP.

Code Lรญnea 14: Aquรญ estamos declarando las variables num12 y num32 inicializรกndose con 12.

Code Lรญnea 15: Aquรญ estamos usando una expresiรณn donde estamos multiplicando dos nรบmeros num12 y num32.

Code Lรญnea 16: Aquรญ estamos obteniendo la fecha de hoy usando el objeto de fecha.

Cuando ejecutas el cรณdigo anterior, obtienes el siguiente resultado

Creando una pรกgina JSP simple

Salida:

Estamos imprimiendo por aquรญ,

  • Este es el ejemplo de JSP del gurรบ.
  • El nรบmero es num12*num32 (12*12).
  • La fecha de hoy es la fecha actual.

Cรณmo ejecutar una pรกgina JSP sencilla

  • JSP se puede ejecutar en servidores web o servidores de aplicaciones.
  • Aquรญ usaremos un servidor web y podemos implementarlo en el servidor encerrรกndolo en una aplicaciรณn de guerra.
  • Podemos crear JSP en una aplicaciรณn (guerra).

Esta es una aplicaciรณn que tiene la siguiente estructura de directorio y la aplicaciรณn debe compilarse.

Ejecutar pรกgina JSP simple

Esta aplicaciรณn debe compilarse y el siguiente mensaje aparecerรก despuรฉs de que la compilaciรณn sea exitosa:

Ejecutar pรกgina JSP simple

Una vez creada la aplicaciรณn, debe ejecutarse en el servidor.

Para ejecutar JSP en el servidor web, haga clic derecho en el proyecto del IDE (eclipse utilizado en este caso) y hay muchas opciones. Seleccione la opciรณn de ejecutar en el servidor. Se muestra en la captura de pantalla siguiente;

A partir del diagrama se explican los siguientes puntos:

  1. Hay dos opciones: elegir un servidor o agregar manualmente el servidor a esta aplicaciรณn. En este caso, ya hemos agregado el servidor JBoss a la aplicaciรณn, por lo tanto, seleccionamos el servidor existente.
  2. Una vez que seleccionamos el servidor la opciรณn de servidor se muestra en el punto 2 quรฉ servidor queremos seleccionar. Puede haber varios servidores configurados en esta aplicaciรณn. Podemos seleccionar un servidor entre todas esas opciones.
  3. Una vez seleccionada esa opciรณn, haga clic en el botรณn Finalizar y la aplicaciรณn se ejecutarรก en ese servidor.

Ejecutar pรกgina JSP simple

En las siguientes capturas de pantalla, puede observar que nuestro programa JSP se ejecuta y la aplicaciรณn de prueba se implementa en Servidor JBoss marcado en el cuadro rojo.

Ejecutar pรกgina JSP simple

Estructura de directorios de JSP

En la estructura de directorios, hay una carpeta raรญz que tiene la carpeta WEB-INF, que contiene todos los archivos de configuraciรณn y archivos de biblioteca.

Los archivos JSP estรกn fuera de la carpeta WEB-INF

Estructura de directorios de JSP

Estructura de directorios de JSP

Ejemplo:

En este ejemplo hay una aplicaciรณn de prueba que tiene la siguiente estructura de carpetas:

Estructura de directorios de JSP

Preguntas Frecuentes

Una etiqueta de declaraciรณn coloca las variables y los mรฉtodos a nivel de la clase del servlet, fuera del mรฉtodo del servicio. Una etiqueta de scriptlet coloca el cรณdigo dentro del mรฉtodo del servicio, de modo que se ejecuta con cada solicitud del cliente.

No. Mezcla de scriptlets Java Con marcado y son difรญciles de mantener. Las pรกginas JSP modernas prefieren el lenguaje de expresiones, JSTL y las bibliotecas de etiquetas, que mantienen la presentaciรณn separada de la lรณgica de negocio y mejoran la legibilidad.

Una etiqueta de expresiรณn contiene un รบnico valor que el contenedor convierte en una cadena y escribe en la salida. Aรฑadir un punto y coma la convierte en una instrucciรณn, lo cual no es vรกlido dentro de las etiquetas de expresiรณn.

La IA puede generar etiquetas de declaraciรณn, scriptlet y expresiรณn a partir de una descripciรณn simple, seรฑalar errores de sintaxis y sugerir alternativas mรกs limpias como JSTL, helping Los principiantes crean pรกginas JSP correctas mรกs rรกpidamente.

Sรญ. Las herramientas de IA pueden refactorizar pรกginas con muchos scriptlets a Expression Language y JSTL, reduciendo el cรณdigo incrustado. JavaLos desarrolladores deben revisar el resultado para confirmar que la lรณgica y el comportamiento del alcance se mantienen sin cambios.

Resumir este post con: