Estructura de las Páginas JSP
- Etiquetas Estándard

El cuatro grupo de componentes que conforman una página JSP corresponde a las Etiquetas (o Elementos action), las cuales pueden dividirse tres grupos: Estándar, JavaBean y Personalizadas.

Dado lo relativamente extenso del tema de etiquetas, en esta sección sólo se va a considerar el primero grupo:


1. Etiquetas Estándard

Como se vio anteriormente (de forma introductoria), uno puede utilizar Etiquetas Personalizadas dentro de una página JSP utilizando la directiva taglib. Sin embargo, la especificación JSP incluye algunas Etiquetas (o elementos action) Estándard que proveen una funcionalidad realmente útil.

Al igual que los elementos de script, los elementos action también se ejecutan cuando la página es requerida. Los elementos action estándard típicamente realizan alguna acción basada en información que es requerida al momento exacto en que la página JSP es pedida por un navegador.

Una acción puede, por ejemplo, acceder los parámetros enviados con la petición para realizar una búsqueda en Base de Datos. También puede generar dinámicamente código HTML, tal como una tabla llenada con información obtenida de una fuente externa.

La especificación JSP define cuatro elementos action estándard:

Elemento Descripción
<jsp:include> Incluye la respuesta de un servlet o una página JSP durante la fase de procesamiento de petición.
<jsp:forward> Reenvía el procesamiento de una petición a un servlet o una página JSP.
<jsp:param> Agrega el valor de un parámetro a una petición entregada a otro servlet o página JSP usando <jsp:include> o <jsp:forward>.
<jsp:plugin> Genera HTML que contiene los elementos apropiados dependientes del navegador (OBJECT o EMBED) necesarios para ejecutar un applet con el software Java Plug-in.

• Tabla: Elementos action estándard

Nota:  Hay tres etiquetas (JavaBean) que en realidad forman parte del conjunto de etiquetas estándard, pero dada su funcionalidad particular, éstas se categorizan como un grupo aparte.

A continuación se describen cada uno de estos cuatro elementos action estándard.

1.a. include

La acción include permite incluir el contenido de un archivo dado dentro de la página durante el procesamiento de la petición.

Es importante notar que difiere de la directiva include, en que en ésta, la inserción del archivo se hace durante la fase de traducción.

La sintaxis de la acción include es como sigue:

<jsp:include page="ruta" flush="true | false" />

El atributo page contiene el valor ruta que define la trayectoria del archivo que se desea incluir (el cual puede ser una página JSP, un servlet o un archivo HTML o de texto).

Si la salida de la página está en algún buffer y el atributo flush está definido en true, el buffer es liberado (enviado, descargado) antes de ser incluido.

Nota:  El atributo flush debe definirse en true por compatibilidad con la versión JSP 1.1. En servidores compatibles con la versión JSP 1.2 (como lo es el Tomcat 4.0), uno puede definir el atributo en false (valor por omisión).

1.b. forward

La acción forward permite transferir el control a otra página.

La sintaxis de la acción forward es como sigue:

<jsp:forward page="ruta" />

Ruta define la trayectoria de la página a la que se va a transferir el control.

1.c. param

La acción param se utiliza dentro de las etiquetas <jsp:include>, <jsp:forward> y <jsp:plugin>. Ésta sirve para definir e inicializar diferentes parámetros, así como sus valores.

La sintaxis de la acción param es como sigue:

<jsp:param name="nombre_parametro" value="valor" />

Por ejemplo:

<jsp:include page="clientes.jsp" flush="true" %>

  <jsp:param name="nombre" value="Laura" />

</jsp:include>

En el código anterior, un parámetro denominado nombre con el valor Laura se ha enviado a la página incluida clientes.jsp.

La página clientes.jsp accederá al valor del parámetro por medio del siguiente código:

<%
  String sNombre = request.getParameter( "nombre" );
%>
1.d. plugin

La acción plugin permite la generación del código HTML conteniendo los constructores dependientes del navegador apropiados (object o embed) para indicar al navegador que descargue (en caso de requerirse) un plugin Java adecuado y ejecute un applet o un componente JavaBean. Así, esta acción permite incluir applets Java o Beans en una página Web.

La sintaxis de la acción plugin es como sigue:

<jsp:plugin
  type="bean | applet"
  codebase="trayectoria al directorio raíz conteniendo las clases"
  archive="lista de archivos jar requeridos para esta aplicación"
  code="NombreDeLaClase"
  align="top | middle | bottom | left | right"
  height="altura en pixeles"
  width="ancho en pixeles"
  hspace="espacio horizontal en pixeles"
  vspace="espacio vertical"
  jreversion="la versión JRE requerida"
  name="nombre del objeto"
  nspluginurl="URL para el plugin Netscape"
  iepluginurl="URL para el plugin IE" >

  <jsp:params>
    <jsp:param name="nombre" value="valor" />
  </jsp:params>

  <jsp:fallback>
    Disculpe, su navegador no soporta applets Java.
  </jsp:fallback>
</jsp:plugin>

Existen dos acciones relacionadas que son válidas solamente dentro de la acción <jsp:plugin>:

Los atributos de la acción plugin proveen los datos de configuración para la presentación. Por ello, la acción plugin toma la mayor parte de sus atributos de las etiquetas HTML <applet> (definida en la especificación HTML 3.2), y <object> (definida en la especificación HTML 4.01).

La mayor parte de los atributos son auto-explicativos, así que sólo se presentan algunos en la siguiente tabla:

Atributo Descripción
type Identifica el tipo de componente: bean o applet.
jreversion Identifica el número de versión de la especificación JRE que el componente requiere para funcionar. El valor por omisión es 1.1.
nspluginurl URL donde el plugin JRE puede descargarse para el navegador de Netscape. El valor por omisión depende de la implementación.
iepluginurl URL donde el plugin JRE puede descargarse para el navegador Internet Explorer. El valor por omisión depende de la implementación.

• Tabla: Atributos de la acción plugin

2. Ejemplos

2.a. Ejemplo 1

Este ejemplo muestra la acción include.

La página de inicio:

<html>
<jsp:include page="p082_Hdr.jsp" flush="true">
  <jsp:param
    name="pagtitulo"
    value="Inclusión y Envío de Parámetros" />
</jsp:include>

<body bgcolor="#ffeada">

<h4>
Bienvenidos a la Página de "Hoy"!
</h4>

<p>
En esta página podrá consultar todo lo relacionado
con el día de hoy.
</p>

<p>
Hoy se celebra: <jsp:include page="p083_Cel.jsp" />
</p>

<hr>
<p>
Este ejemplo muestra la acción "include"
y el envío de parámetros por medio de la acción "param".
</p>

</body>
</html>

• Archivo: p081_Pag.jsp

La página de encabezado:

<head>
<title>
<%=
  ( request.getParameter( "pagtitulo" ) != null )
    ? request.getParameter( "pagtitulo" )
    : "Título Nulo"
%>
</title>
</head>

• Archivo: p082_Hdr.jsp

La página de las celebraciones:

<%@ page import="java.util.Calendar" %>

<%! Calendar calHoy = Calendar.getInstance(); %>

<%
  String sHoy = "Today/m";
  int    iMes = calHoy.get( Calendar.MONTH ) + 1;

  if( iMes < 10 )
    sHoy += "0";

  sHoy += sHoy.valueOf( iMes );

  int iDia = calHoy.get( Calendar.DAY_OF_MONTH );

  if( iDia < 10 )
    sHoy += "0";

  sHoy += sHoy.valueOf( iDia );

  sHoy += ".html";
%>

<br>
<blockquote>
<jsp:include page="<%= sHoy %>" flush="true" />
</blockquote>

• Archivo: p083_Cel.jsp

Una vez salvados los archivos (en dir_code/web), requerimos ejecutar el script cp_today.bat (en el folder \Curso\CJsp_files\Instala del CD) antes de correr el Ant y probar el ejemplo.

Este script lo que hace es crear el directorio Today y copiar ahí los archivos requeridos para el ejemplo.

** Versión en Web.

Para que el ejemplo funcione es necesario hacer lo siguiente:

  1. Crear el folder: dir_code/web/Today.
  2. El folder "today" debe contener 366 archivos HTML (uno para cada día del año), denominados: mMMDD.html, donde: MM es el número de mes, y DD es el número de día (por ejemplo: "m0801.html" para el primero de agosto).
  3. El contenido de los archivos puede ser como el siguiente:
    <h3>Agosto 1</h3>
    
    <p>
    Día Nacional de Suiza.
    </p>
    

Accesamos la página con el URL http://localhost/curso/p081_Pag.jsp.

2.b. Ejemplo 2

Este ejemplo muestra la acción forward.

La página de inicio:

<html>

<head>
<title>
Redireccionamiento de una Página
</title>
</head>

<body bgcolor="#ffeada">

<%
  if( request.getParameter( "minombre" ) == null )
  {
%>
    <jsp:forward page="p092_Msg.jsp" />
<%
  }
%>

<p>
Felicidades
<%
  String sNombre = request.getParameter( "minombre" );

  out.write( sNombre );
%>
!!
</p>

</body>
</html>

• Archivo: p091_Pag.jsp

La página de advertencia:

<html>

<head>
<title>
Página de Advertencia
</title>
</head>

<body bgcolor="#ffeada">

<h4>
Error!
</h4>

<p>
Hola, has sido redireccionado a esta página porque
la página <strong>p091_Pag.jsp</strong>
debe accederse con el parámetro
<strong>minombre</strong>:
</p>

<p>
<code>http://localhost/curso/p091_Pag.jsp?minombre=TuNombre</code>
</p>

</body>
</html>

• Archivo: p092_Msg.jsp

Accesamos la página con el URL http://localhost/curso/p091_Pag.jsp.

2.c. Ejemplo 3

Este ejemplo muestra la acción plugin:

<html>

<head>
<title>
Applet con JSP
</title>
</head>

<body bgcolor="#ffeada">

<p>
El applet a probar es una variante del juego
<strong>Go</strong>, llamada <strong>Atari-Go</strong>.
El primero en lograr una captura es el ganador.
</p>

<jsp:plugin
  type     = "applet"
  codebase = "lib"
  archive  = "goapplet1.jar"
  code     = "Manager.GoApplet"
  width    = "400"
  height   = "400"
  align    = "middle">
  <jsp:fallback>
    <p>No fue posible iniciar el plugin Java.</p>
  </jsp:fallback>
</jsp:plugin>

</body>
</html>

• Archivo: p102_AtariGo.jsp

Una vez salvado el archivo (en dir_code/web), requerimos ejecutar el script cp_applet.bat (en el folder \Curso\CJsp_files\Instala del CD) antes de correr el Ant y probar el ejemplo.

Este script lo que hace es crear el directorio lib y copiar ahí el applet goapplet1.jar requerido para el ejemplo.

** Versión en Web.

Para que el ejemplo funcione es necesario hacer lo siguiente:

  1. Crear el folder: dir_code/web/lib.
  2. Bajar el applet goapplet1.jar del sitio ---, y guardarlo en el folder creado.

Accesamos la página con el URL http://localhost/curso/p102_AtariGo.jsp.


Ayuda

Para más información: