JTagua

Inicio » JSP/SERVLETS » action » include

Archivo de la categoría: include

Tutorial de JSP (10) : action include.

La acción include permite la inclusión de la salida de otras páginas jsp, html, ficheros de texto no formateado, ficheros Java, ficheros XML, etc. La inclusión se realiza, no durante la traducción de la jsp (como ocurría con la directiva include), sino justo después, una vez que el servlet generado ya ha sido creado.

El mecanismo de inclusión de la salida de la página incluida, hace que si una página incluida cambia, no es necesario compilar la página que la contiene.

Sintaxis:

Tiene dos atributos, uno obligatorio cuyo nombre es page y otro opcional cuyo nombre es flush

  • page: url local que apunta al recurso que va a incluirse. No admite ningún protocolo, nombre de host o número de puerto.
  • flush: opcional. Por defecto, toma el valor de false. Si se cambia a true, el búfer de salida se vacía antes de que se incluya el recurso asociado a la acción. Este atributo no suele utilizarse.
  • param name, opcionalmente, puede pasar parámetros a la página principal que contiene la acción. Desde allí podrán tomarse los datos con getParameter del objeto request.

Image1

EJEMPLO1:

Un caso típico podría ser una página JSP que contiene noticias que cambian rápidamente. Podríamos resolver la página principal con cierta página JSP e incluir las noticias en determinadas posiciones de dicha página principal. De esta manera, la página jsp (y el servlet generado) para la página principal nunca cambiaría, mientras que los cambios más dinámicos de cada una de las noticias podría hacerse en otras páginas incluidas.

1.- Inicie una sesión con el IDE de NetBeans y haga “Archivo”, “Proyecto Nuevo”, “Proyecto Web” y “Web Aplication”… Nombre al proyecto, por ejemplo, “a_include”

2.-Cuando el editor presente la plantilla del archivo index.jsp sustitúyalo por el siguiente otro

<%-- 
    Document   : index
    Created on : 02-ene-2009, 11:28:39
    Author     : jtagua
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!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=UTF-8">
        <title>Ejemplo accion include</title>
    </head>
    <body BGCOLOR="#FDF5E6">

        <CENTER>
            <H1>NOTICIAS DEL DÍA</H1>
            <H2>Resumen de las noticias recientes:</H2>
                <OL>
                    <LI>Primera Noticia:<br>
                        <jsp:include page="noticias/item1.html" flush="true" />
                    <LI>Segunda Noticia:<br>
                        <jsp:include page="noticias/item2.html" flush="true" />
                </OL>
        </CENTER>
    </body>
</html>

Observe las dos acciones include, una en la línea 22 y otra en la línea 24. En los dos casos, se transmite al fichero jsp correspondiente el número de orden de la noticia.

3.-Sitúese ahora con el botón derecho sobre el proyecto, haga click y cuando aparezca el menú contextual haga “Nuevo” y “Carpeta”. LLame a esa carpeta, por ejemplo, “noticias”.

4.-En la carpeta noticias incluya ahora dos archivos jsp llamados “item1” e “item2” con el siguiente contenido

<img alt="" />alt="Rafa Nadal" src="imagenes/rafanadal.jpg" width="190" height="120" />
<p>
Rafael Nadal fué el beneficiario de un enésimo abandono en el Masters de Shanghai

al avanzar ayer viernes a las semifinales cuando Ivan Ljubicic se convirtió en el

octavo jugador en retirarse por una lesión durante el transcurso de la semana.
</p>

y

<img alt="" />alt="Federer" src="imagenes/federer.jpg" width="190" height="120" />
<p>
 El tenista suizo Roger Federer, cinco veces campeón de Wimbledon, ganó en su

 debut en la pista central del torneo británico frente el taiwanés Yen-Hsun

 Lu por 7-5, 6-3 y 6-2, tras una hora y 45 minutos de juego.
</p>

5.- Cree una carpeta denominada “imagenes” e introduzca las correspondientes imágenes cualesquiera que sean estás y localizadas en internet. Vea el árbol de directorios,

Image1

6.- Ejecute finalmente y obtendrá,

Image2

Una vez ejecutado el proyecto, modifique el fuente, por ejemplo de la segunda noticia y ejecute desde el menu contextual el archivo index.jsp, comprobará que esta última ejecución se toma en consideración los cambios producidos, lo que no ocurría con las inclusiones estudiadas en la directiva page con atributo include.

Consideraciones:

Pruebe a modificar una página jsp incluida y compílela para más tarde comprobar que no necesita recompilar la página contenedora.

Cuestiones a recordar:

Concepto, sintaxis y uso de la acción include.

Diferencia entre una acción include y una directiva include.