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 , [1] JSP es similar a PHP y ASP , pero utiliza el lenguaje de programación Java .
Extensión de nombre de archivo | .jsp, .jspx, .jspf |
---|---|
Tipo de medio de Internet | application / jsp [ cita requerida ] |
Desarrollado por | Fundación Eclipse |
Versión inicial | 1999 |
Último lanzamiento | 3.0 (21 de octubre de 2020 ) |
Tipo de formato | Página web dinámica |
Estándar | JSR 245 |
¿ Formato abierto ? | sí |
Sitio web | proyectos |
Para implementar y ejecutar Jakarta Server Pages , se requiere un servidor web compatible con un contenedor de servlets , como Apache Tomcat o Jetty .
Descripción general
Arquitectónicamente, JSP puede verse como una abstracción de alto nivel de los servlets de Java . Las 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 la JSP original. [2]
Las páginas del servidor Java se pueden utilizar de forma independiente o como el componente de vista de un diseño de controlador de modelo-vista del lado del servidor , normalmente con JavaBeans como modelo y servlets Java (o un marco como Apache Struts ) como controlador. Este es un tipo de arquitectura Modelo 2 . [3]
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 Java dependientes, contienen código de bytes 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 y neutral para la plataforma.
Las JSP se utilizan generalmente para entregar documentos HTML y XML, pero mediante el uso de OutputStream, también pueden entregar otros tipos de datos. [4]
El contenedor web crea objetos implícitos JSP como solicitud, respuesta, sesión, aplicación, configuración, página, pageContext, out y excepción. JSP Engine crea estos objetos durante la fase de traducción.
Sintaxis
Las páginas JSP utilizan varios delimitadores para las 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 las directivas indicadas con <%@ ... %>
. [5]
No se requiere que el código Java sea completo o autónomo dentro de un solo bloque de scriptlet. Puede abarcar el contenido de marcado, siempre que la página en su conjunto sea sintácticamente correcta. Por ejemplo, cualquier bloque de 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 prácticas de programación deficientes.
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 if solo aparecerá en la salida cuando la condición if 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:
Contando hasta tres: <% para ( int i = 1 ; i < 4 ; i ++ ) { %> Este número es <% = i %> . <% } %> De
acuerdo.
El resultado que se muestra en el navegador web del usuario sería:
Contando hasta tres:Este número es 1.Este número es 2.Este número es 3.está bien.
Lenguaje de expresión
La versión 2.0 de la especificación JSP agregó soporte para el lenguaje de expresión (EL), utilizado para acceder a datos y funciones en objetos Java. En JSP 2.1, se incluyó en el lenguaje de expresión unificado , que también se usa en JavaServer Faces . [6]
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 incorporada. [5] 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. [7] Una de esas bibliotecas es JSTL , con soporte para tareas comunes como iteración y condicionales (el equivalente de declaraciones "for" e "if" en Java). [8]
Compilador
Un compilador de JavaServer Pages es un programa que analiza las JSP y las transforma en Java Servlets ejecutables . Un programa de este tipo generalmente está integrado en el servidor de aplicaciones y se ejecuta automáticamente la primera vez que se accede a una JSP, pero las páginas también pueden compilarse previamente para un mejor rendimiento o compilarse como parte del proceso de compilación para probar errores. [9]
Algunos contenedores JSP admiten la configuración de la frecuencia con la que el contenedor verifica 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 . [10]
Crítica
En 2000, Jason Hunter, autor de "Java Servlet Programming" describió una serie de "problemas" con JavaServer Pages. [11] Sin embargo, escribió que si bien JSP puede no ser la "mejor solución para la plataforma Java", era la "solución Java que se parece más a la solución que no es Java", por lo que se refería a las páginas Active Server de Microsoft . Más tarde, agregó una nota a su sitio diciendo que JSP había mejorado desde 2000, pero también citó a sus competidores, Apache Velocity y Tea (lenguaje de plantilla). [ cita requerida ] Hoy en día existen varias alternativas y una serie de páginas orientadas a JSP en aplicaciones web más grandes se consideran deuda técnica.
Ver también
- Historias web interactivas
- Sitelet
Contenedores de servlet
- Apache Tomcat
- Apache TomEE
- Jetty (servidor web)
- GlassFish
- Servidor web Oracle iPlanet
- Servidor de aplicaciones WebSphere
Alternativas de plantillas basadas en Java
- Adobe ColdFusion
- Lucee
- FreeMarker
- JHTML
- Thymeleaf
Referencias
- ^ Archivo de lista de correo: "Sun JSP 1.0 * no * disponible"
- ^ El ciclo de vida de una página JSP (documentación de Sun)
- ^ Seshadri, Govind (29 de diciembre de 1999). "Comprensión de la arquitectura JavaServer Pages Model 2" . JavaWorld . Consultado el 17 de julio de 2020 .
- ^ Hilo del foro (JavaRanch): OutputStream ya obtenido
- ^ a b Referencia de sintaxis JSP 1.2
- ^ El lenguaje de expresión unificado (Sun Developer Network)
- ^ Tutorial de bibliotecas de etiquetas: ¿Qué es una biblioteca de etiquetas? (Sol) Archivado el 19 de abril de 2012 en la Wayback Machine.
- ^ Documentación de JSTL (Oracle) bb
- ^ Documentación de IBM WebSphere 6.0.2
- ^ Documentación de Sybase EAServer 5.0
- ^ Los problemas con JSP (25 de enero de 2000)
Otras lecturas
- Bergsten, Hans (2003). Páginas de JavaServer (3ª ed.). O'Reilly Media . ISBN 978-0-596-00563-4.
- Brown, Simon; Dalton, Sam; Jepp, Daniel; Johnson, Dave; Li, Sing; Raible, Matt. Pro JSP 2 . Presione . ISBN 1-59059-513-0.
- Hanna, Phil (2003). JSP 2.0: la referencia completa . McGraw-Hill Osborne Media . ISBN 978-0-07-222437-5.
- Sierra, Kathy; Bates, Bert; Basham, Bryan. Head First Servlets y JSP . O'Reilly Media . ISBN 978-0-596-00540-5.
enlaces externos
- Página web oficial
- Referencia de sintaxis de JSP v2.0
- Especificación de páginas del servidor de Yakarta, versión 3.0
- Páginas de JavaServer
- JavaServer Pages (JSP) y JSTL
- Tarjeta de sintaxis JavaServer Pages v2.0 ( html )
- Tutorial oficial: Tutorial de Java EE 5, Capítulo 5, Tecnología JavaServer Pages
- Historia del servlet
- configurar el entorno JSP JSP Latest
- web-mode.el, modo principal de emacs para editar plantillas jsp