Páginas del servidor de Yakarta
Jakarta Server Pages (JSP; anteriormente JavaServer Pages) es una colección de tecnologías que ayuda a los desarrolladores de software a crear páginas web generadas dinámicamente basadas en HTML, XML, SOAP u otros tipos de documentos. Lanzado en 1999 por Sun Microsystems, JSP es similar a PHP y ASP, pero usa el lenguaje de programación Java.
Para implementar y ejecutar Jakarta Server Pages, se requiere un servidor web compatible con un contenedor de servlet, como Apache Tomcat o Jetty.
Resumen
Arquitectónicamente, JSP puede verse como una abstracción de alto nivel de los servlets de Java. Los JSP se traducen en servlets en tiempo de ejecución, por lo tanto, JSP es un Servlet; cada servlet JSP se almacena en caché y se reutiliza hasta que se modifica el JSP original.
Las páginas del servidor de Jakarta se pueden usar de forma independiente o como el componente de vista de un diseño de controlador de vista de modelo del lado del servidor, normalmente con JavaBeans como modelo y servlets de Java (o un marco como Apache Struts) como controlador. Este es un tipo de arquitectura del Modelo 2.
JSP permite que el código Java y ciertas acciones predefinidas se intercalen con contenido de marcado web estático, como HTML. La página resultante se compila y ejecuta en el servidor para entregar un documento. Las páginas compiladas, así como las bibliotecas de Java dependientes, contienen bytecode de Java en lugar de código de máquina. Como cualquier otro programa.jar o Java, el código debe ejecutarse dentro de una máquina virtual Java (JVM) que interactúa con el sistema operativo host del servidor para proporcionar un entorno abstracto e independiente de la plataforma.
Los JSP generalmente se usan para entregar documentos HTML y XML, pero mediante el uso de OutputStream, también pueden entregar otros tipos de datos.
El contenedor web crea objetos JSP implícitos como solicitud, respuesta, sesión, aplicación, configuración, página, contexto de página, salida y excepción. JSP Engine crea estos objetos durante la fase de traducción.
Sintaxis
Las páginas JSP utilizan varios delimitadores para funciones de secuencias de comandos. El más básico es <%... %>
, que incluye un scriptlet JSP. Un scriptlet es un fragmento de código Java que se ejecuta cuando el usuario solicita la página.. Otros delimitadores comunes incluyen <%=... %>
para expresiones, donde el scriptlet y los delimitadores se reemplazan con el resultado de evaluar la expresión, y directivas, indicadas con <%@... %>
.
No es necesario que el código Java esté completo o sea independiente dentro de un solo bloque de scriptlet. Puede abarcar contenido de marcado, siempre que la página en su conjunto sea sintácticamente correcta. Por ejemplo, cualquier bloque Java if/for/while abierto en un scriptlet debe cerrarse correctamente en un scriptlet posterior para que la página se compile correctamente. Esto permite que el código se entremezcle y puede resultar en malas prácticas de programación.
El contenido que se encuentra dentro de un bloque dividido de código Java (que abarca varios scriptlets) está sujeto a ese código. El contenido dentro de un bloque si solo aparecerá en la salida cuando la condición si se evalúe como verdadera. Del mismo modo, el contenido dentro de una construcción de bucle puede aparecer varias veces en la salida, dependiendo de cuántas veces se ejecute el cuerpo del bucle.
Lo siguiente sería un bucle for válido en una página JSP:
IdentificadoContando a tres:Identificado/p♪♪ para ()int i=1; i.4; i++) {} % título IdentificadoEste número es ♪♪ i % título.Identificado/p♪♪ } % títuloIdentificadoVale.Identificado/p
El resultado que se muestra en el navegador web del usuario sería:
Contando a tres: Este número es 1. Este número es 2. Este número es 3. Vale.
Lenguaje de expresión
La versión 2.0 de la especificación JSP agregó soporte para Expression Language (EL), que se utiliza para acceder a datos y funciones en objetos Java. En JSP 2.1, se incorporó al lenguaje de expresión unificado, que también se usa en JavaServer Faces.
Un ejemplo de sintaxis EL:
El valor de variable
en el objeto javabean
es ${javabean.variable}
.
Etiquetas adicionales
La sintaxis JSP agrega etiquetas adicionales, llamadas acciones JSP, para invocar la funcionalidad integrada. Además, la tecnología permite la creación de bibliotecas de etiquetas JSP personalizadas que actúan como extensiones de la sintaxis JSP estándar. Una de estas bibliotecas es JSTL, con soporte para tareas comunes como iteración y condicionales (el equivalente de las sentencias "for" y "if" en Java).
JSP compatible con XML
Las páginas JSP también se pueden escribir en una sintaxis XML completamente válida. Dichos archivos JSP suelen utilizar la extensión de archivo alternativa .jspx
, que normalmente hace que el servidor de aplicaciones valide la sintaxis XML.
Dado que la sintaxis habitual de JSP <%... %>
no es válida en XML, un desarrollador debe utilizar etiquetas alternativas proporcionadas por JSP. Por ejemplo, la directiva común <%@ page.. %>
puede escribirse como una etiqueta <jsp:directive.page.. />
, y las bibliotecas de etiquetas se importan utilizando espacios de nombres XML, en lugar de la etiqueta habitual <%@ taglib.. %>
.
Compilador
Un compilador de JavaServer Pages es un programa que analiza JSP y los transforma en Java Servlets ejecutables. Un programa de este tipo generalmente se integra en el servidor de aplicaciones y se ejecuta automáticamente la primera vez que se accede a un JSP, pero las páginas también se pueden precompilar para un mejor rendimiento o se pueden compilar como parte del proceso de compilación para detectar errores.
Algunos contenedores JSP admiten la configuración de la frecuencia con la que el contenedor comprueba las marcas de tiempo del archivo JSP para ver si la página ha cambiado. Por lo general, esta marca de tiempo se establecería en un intervalo corto (quizás segundos) durante el desarrollo del software y en un intervalo más largo (quizás minutos, o incluso nunca) para una aplicación web implementada.
Crítica
En 2000, Jason Hunter, autor de "Programación de servlets Java" describió una serie de "problemas" con páginas JavaServer. Sin embargo, escribió que si bien JSP puede no ser la "mejor solución para la plataforma Java" fue la "solución de Java que más se parece a la solución que no es de Java" con lo que se refería a las páginas Active Server de Microsoft. Más tarde, agregó una nota a su sitio que decía que JSP había mejorado desde 2000, pero también citó a sus competidores, Apache Velocity y Tea (lenguaje de plantilla). Hoy en día existen varias alternativas y varias páginas orientadas a JSP en aplicaciones web más grandes se consideran deuda técnica.
Contenido relacionado
Telecomunicaciones en Jordania
Centro Europeo de Operaciones Espaciales
Animación