Descripción general de los elementos de sintaxis JSP
Primero, para aclarar las cosas, aquí hay una breve descripción de los elementos de sintaxis JSP :
- Directivas : transmiten información sobre la página JSP en su conjunto.
- Elementos de secuencia de comandos : son elementos de codificación de Java, como declaraciones, expresiones, secuencias de comandos y comentarios.
- Objetos y ámbitos : los objetos JSP pueden crearse explícita o implícitamente y son accesibles dentro de un ámbito determinado, como desde cualquier lugar de la página JSP o la sesión.
- Acciones : crean objetos o afectan la secuencia de salida en la respuesta JSP (o ambas).
Cómo se incluye el contenido en JSP
Existen varios mecanismos para reutilizar contenido en un archivo JSP.
Los siguientes 4 mecanismos para incluir contenido en JSP pueden clasificarse como reutilización directa :
(para los primeros 3 mecanismos que citan "Head First Servlets and JSP" )
1) La directiva include :
<%@ include file="header.html" %>
Estático : agrega el contenido del valor del atributo de archivo a la página actual en el momento de la traducción . La directiva originalmente estaba destinada a plantillas de diseño estático, como encabezados HTML.
2) La <jsp:include>
acción estándar :
<jsp:include page="header.jsp" />
Dinámico : agrega el contenido del valor del atributo de página a la página actual en el momento de la solicitud . Estaba destinado más a contenido dinámico proveniente de JSP.
3) La <c:import>
etiqueta JSTL:
<c:import url=”http://www.example.com/foo/bar.html” />
Dinámico : agrega el contenido del valor del atributo URL a la página actual, en el momento de la solicitud . Funciona mucho
<jsp:include>
, pero es más potente y flexible: a diferencia de los otros dos incluidos, ¡la <c:import>
url puede ser desde fuera del contenedor web !
4) Preludios y codas:
Estático : los preludios y las codas se pueden aplicar solo al principio y al final de las páginas .
Puede incluir implícitamente preludios (también llamados cabeceras) y codas
(también llamados pies de página) para un grupo de páginas JSP mediante la adición
<include-prelude>
y <include-coda>
elementos, respectivamente, dentro de un <jsp-property-group>
elemento de la aplicación Web web.xml descriptor de despliegue. Lea más aquí:
• Configuración de inclusiones implícitas al principio y al final de JSPs
• Definición de inclusiones implícitas
Tag File es un método indirecto de reutilización de contenido, la forma de encapsular contenido reutilizable . Un archivo de etiqueta es un archivo fuente que contiene un fragmento de código JSP que es reutilizable como etiqueta personalizada .
El PROPÓSITO de incluye y archivos de etiqueta es diferente.
El archivo de etiqueta (un concepto introducido con JSP 2.0) es una de las opciones para crear etiquetas personalizadas . Es una forma más rápida y fácil de crear etiquetas personalizadas .
Las etiquetas personalizadas , también conocidas como extensiones de etiqueta, son elementos JSP que permiten que la lógica personalizada y la salida proporcionada por otros componentes Java se inserten en las páginas JSP. La lógica proporcionada a través de una etiqueta personalizada es implementada por un objeto Java conocido como manejador de etiquetas .
Algunos ejemplos de tareas que pueden realizarse mediante etiquetas personalizadas incluyen operar en objetos implícitos, procesar formularios, acceder a bases de datos y otros servicios empresariales como correo electrónico y directorios, e implementar control de flujo.
En cuanto a su edición
Tal vez en su ejemplo (en su Edición ), no hay diferencia entre el uso de inclusión directa y un archivo de etiqueta. Pero las etiquetas personalizadas tienen un amplio conjunto de características . Ellos pueden
Se personaliza mediante atributos pasados desde la página de llamada.
Pase las variables de vuelta a la página de llamada.
Acceda a todos los objetos disponibles para las páginas JSP.
Comunicarse entre sí. Puede crear e inicializar un componente JavaBeans, crear una variable EL pública que se refiera a ese bean en una etiqueta y luego usar el bean en otra etiqueta.
Estar anidados uno dentro del otro y comunicarse mediante variables privadas.
Lea también esto de "Pro JSP 2": Comprensión de las etiquetas personalizadas de JSP .
Lectura útil.
Conclusión
Use las herramientas adecuadas para cada tarea.
Use los archivos de etiquetas como una forma rápida y fácil de crear etiquetas personalizadas que pueden ayudarlo a encapsular contenido reutilizable .
En cuanto al contenido incluido en JSP (cita de aquí ):
- Use la directiva include si el archivo cambia raramente . Es el mecanismo más rápido. Si su contenedor no detecta cambios automáticamente, puede forzar que los cambios surtan efecto eliminando el archivo de clase de la página principal.
- Use la acción de inclusión solo para el contenido que cambia con frecuencia , y si no se puede decidir qué página incluir hasta que se solicite la página principal.
*
) en la directiva de inclusión.<jsp:include>
es una acción de inclusión estándar ,<%@ include file="" %>
es la directiva de inclusión . Lea la última sección (en el cuadro gris) que describe las ventajas (es decir, recomendaciones sobre cuándo elegir una u otra). Consulte también este artículo para obtener una descripción detallada. Espero que esto ayude.Posible pregunta duplicada
<@include>
- La etiqueta directiva indica al compilador JSP que combine los contenidos del archivo incluido en el JSP antes de crear el código de servlet generado. Es el equivalente a cortar y pegar el texto de su página de inclusión directamente en su JSP.<jsp:include>
- La etiqueta de acción JSP, por otro lado, indica al contenedor que pause la ejecución de esta página, vaya a ejecutar la página incluida y combine la salida de esa página con la salida de esta página.fuente
<t:mytag><h1>Hello World</h1></t:mytag>
:? Eso no es una inclusión, es el uso normal de una etiqueta (como<jsp:useBean>
o<c:if>
).La principal ventaja de
<jsp:include />
over<%@ include >
es:<jsp:include />
permite pasar parámetrosque no es posible en
<%@include file="somefile.jsp" %>
fuente
<%@include file="somefile.jsp?menu=value" %>
? ¿Eso también está restringido?Las tres opciones de la plantilla -
<%@include>
,<jsp:include>
y<%@tag>
son válidas, y todas diferentes casos de uso de tres de cubierta.Con
<@include>
, el analizador JSP integra el contenido del archivo incluido en el JSP antes de la compilación (similar a una C#include
). Usaría esta opción con contenido simple y estático: por ejemplo, si desea incluir encabezado, pie de página o elementos de navegación en cada página de su aplicación web. El contenido incluido se convierte en parte del JSP compilado y no hay costo adicional en tiempo de ejecución.<jsp:include>
(y los JSTL<c:import>
, que son similares e incluso más potentes) se adaptan mejor al contenido dinámico. Úselos cuando necesite incluir contenido de otra URL, local o remota; cuando el recurso que está incluyendo es dinámico en sí mismo; o cuando el contenido incluido utiliza variables o definiciones de bean que entran en conflicto con la página incluida.<c:import>
también le permite almacenar el texto incluido en una variable, que puede manipular o reutilizar aún más. Ambos incurren en un costo de tiempo de ejecución adicional para el envío: esto es mínimo, pero debe tener en cuenta que la inclusión dinámica no es "gratuita".Utilice archivos de etiquetas cuando desee crear componentes de interfaz de usuario reutilizables. Si tiene una Lista de widgets, por ejemplo, y desea iterar sobre los Widgets y mostrar las propiedades de cada uno (en una tabla o en un formulario), crearía una etiqueta. Las etiquetas pueden tomar argumentos, utilizando
<%@tag attribute>
y estos argumentos pueden ser obligatorios u opcionales, algo así como los parámetros del método.Los archivos de etiquetas son un mecanismo más simple, basado en JSP, para escribir bibliotecas de etiquetas, que (antes de JSP 2.0) tenía que escribir usando código Java. Es mucho más limpio escribir archivos de etiquetas JSP cuando hay mucho procesamiento que hacer en la etiqueta: no es necesario mezclar código Java y HTML como lo haría si escribiera sus etiquetas en Java.
fuente
De acuerdo con: Java Revisited
Los recursos incluidos por la directiva include se cargan durante el tiempo de traducción jsp, mientras que los recursos incluidos por la acción include se cargan durante el tiempo de solicitud.
Cualquier cambio en los recursos incluidos no será visible en caso de incluir la directiva hasta que el archivo jsp vuelva a compilarse. Mientras que en caso de incluir acción, cualquier cambio en el recurso incluido será visible en la próxima solicitud.
La directiva de inclusión es importación estática, mientras que la acción de inclusión es importación dinámica.
La directiva de inclusión usa el atributo de archivo para especificar los recursos que se incluirán, mientras que la acción de inclusión usa el atributo de página para el mismo propósito.
fuente