Академический Документы
Профессиональный Документы
Культура Документы
JBuilder X
Borland Software Corporation 100 Enterprise Way Scotts Valley, California 95066-3249 www.borland.com Consulte el archivo deploy.html ubicado en el directorio redist de su producto JBuilder para acceder a una lista completa de archivos que puede distribuir de acuerdo con su Declaracin de licencia y Garanta limitada de JBuilder. Borland Software Corporation puede tener patentes y/o solicitudes de patente pendientes en lo relativo a los asuntos tratados en este documento. Consulte el CD del producto o el cuadro de dilogo Acerca de para ver la lista de patentes aplicables. La entrega de este documento no supone la cesin de ninguna licencia sobre estas patentes. Copyright 19972004 Borland Software Corporation. Reservados todos los derechos. Todas las marcas y nombres de productos Borland son marcas comerciales o registradas de Borland Sofware Corporation en los Estados Unidos y en otros pases. Las dems marcas pertenecen a sus respectivos propietarios. Para conocer las condiciones y limitaciones de responsabilidad de terceros, consulte las Notas de la versin en el CD de JBuilder. Impreso en los EEUU. JXE0010WW21002webapps 5E6R1103 0304050607-9 8 7 6 5 4 3 2 1 PDF
ndice de materias
Captulo 1
Introduccin
Convenciones de la documentacin . . . . Asistencia y recursos para desarrolladores . El servicio de asistencia tcnica de Borland . . . . . . . . . . . . . . . . . Recursos en lnea . . . . . . . . . . . . World Wide Web . . . . . . . . . . . . . Grupos de noticias de Borland . . . . . . Usenet, grupos de noticias . . . . . . . . Informacin sobre errores . . . . . . . .
1-1
. . 1-3 . . 1-5 . . . . . . . 1-5 . 1-5 . 1-5 . 1-6 . 1-6 . 1-6
La ficha Generar . . . . La ficha Contenido . . . La ficha Distribucin . . El archivo WAR . . . . . . . . Applets en el archivo WAR
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
Captulo 4
Los servlets
Servlets y JSP . . . . . . . . . . . . . . . Servlets y servidores web. . . . . . . . . . La API de servlet . . . . . . . . . . . . . . El paquete servlet.HTTP. . . . . . . . . El ciclo de vida de los servlets . . . . . . . Construccin e inicializacin del servlet . Gestin de las peticiones del cliente . . Servlets y multihilo. . . . . . . . . . . . Destruccin de un servlet . . . . . . . . Servlets con enlace a HTML . . . . . . . . Servlets especficos para HTTP . . . . . . Cmo se utilizan los servlets . . . . . . . . Distribucin de servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-1
4-2 4-3 4-3 4-4 4-4 4-4 4-5 4-5 4-5 4-5 4-6 4-6 4-7
Captulo 2
Captulo 5
5-1
Captulo 3
3-1
. 3-1 . 3-2 . 3-2 . 3-3 . 3-7 . 3-8 . 3-9 3-10 3-10 3-11 3-12
Opciones del Asistente para servlets . . . . . . 5-1 Ficha Seleccione el nombre y el tipo de servlet . . . . . . . . . . . . . . . . . . . 5-2 Ficha Modificar detalles del servlet estndar . . . . . . . . . . . . . . . . . . 5-3 Opcin Servlet genera contenido de tipo. 5-4 Opciones de Implementar mtodos . . . 5-5 Opcin Generar archivo HTML con el formulario . . . . . . . . . . . . . . . . 5-6 Ficha Introduzca los detalles del servlet monitor . . . . . . . . . . . . . . . . . 5-6 Ficha Introduzca los parmetros de la peticin del servlet . . . . . . . . . . . . . 5-7 Ficha Introduzca los detalles de webapp . . 5-8 Ficha Introduzca los detalles de WebApp (Servlets de filtro) . . . . . . 5-10 Ficha Definir configuracin de servlet . . . 5-11 Cmo llamar a los servlets . . . . . . . . . . 5-11 Llamada a un servlet desde una ventana de un visualizador . . . . . . . . . . . . 5-12
Llamada a un servlet desde una pgina HTML . . . . . . . . . . . . . . . . . . . 5-13 Internacionalizacin de servlets . . . . . . . . 5-13 Escritura de servlets enlazados a datos. . . . 5-14
Captulo 6
6-1
. 6-3 . 6-4 . 6-5 . 6-5
. 6-6 6-10 6-10 6-13 6-13 6-14 6-15 6-15 6-15 6-16 6-16 6-16 6-17 6-17
Ficha Mdulo web e informacin de clases para ActionForm . . . . . . . . Ficha Definicin de campos para ActionForm . . . . . . . . . . . . . . Ficha Seleccin de opciones adicionales . . . . . . . . . . . . . . Asistente para Action . . . . . . . . . . . Ficha Nombre y mdulo web para Action . . . . . . . . . . . . . . . . . Ficha Informacin de configuracin . . Asistente para JSP a partir de ActionForm Ficha WebApp, JSP y ActionForm . . . Ficha Tipos de etiquetas para campos ActionForm . . . . . . . . . . . . . . Ficha Indique las opciones para crear esta JSP Struts . . . . . . . . . . . . Asistente para conversin de Struts . . . . Ficha Indique las pginas para su conversin a Struts . . . . . . . . . . Ficha Etiquetas que se han de convertir. . . . . . . . . . . . . . . . Ficha Especifique las opciones para convertir etiquetas a Struts . . . . . . Editor de configuracin de Struts . . . . . El Editor de configuracin de Tiles . . . . Creacin de una aplicacin web preparada para Struts en JBuilder . . . . . . . . . . . Apertura del proyecto Blank de Struts en JBuilder . . . . . . . . . . . . . . . . .
7-10 7-11 7-11 7-12 7-12 7-13 7-13 7-13 7-14 7-15 7-15 7-16 7-16 7-17 7-18 7-19 7-19 7-22
Captulo 8
8-1
Captulo 7
7-1
. 7-2 . 7-3 . 7-4 . 7-4 . 7-7 . 7-8 . 7-9 7-10 ii
Creacin de una configuracin de ejecucin . . 8-2 Creacin de una configuracin de ejecucin con los asistentes . . . . . . . . . . . . . 8-2 Creacin de una configuracin de ejecucin de applets . . . . . . . . . . . . . . . . . 8-3 Creacin de una configuracin de ejecucin del servidor. . . . . . . . . . . . . . . . . 8-5 Cmo los URL ejecutan los servlets . . 8-10 Configuracin de propiedades de ejecucin . 8-13 Configuracin del IDE para ejecutar/depurar web . . . . . . . . . . . . . . . . . . . . . 8-14 Compilacin de servlets o JSP . . . . . . . . 8-15 Ejecucin web de un servlet o una JSP . . . 8-16 Inicio del servidor web . . . . . . . . . . . 8-17 Ver web. . . . . . . . . . . . . . . . . 8-18 Ver cdigo fuente web . . . . . . . . . 8-19
Detencin del servidor web . . . . . . . . 8-19 Depuracin web del servlet o de la JSP. . . . 8-20
Captulo 11
Captulo 9
11-1
. 11-2 . 11-3 . 11-4 . 11-4 . 11-7 . 11-7 . 11-8 . 11-8 . 11-9 .11-11 .11-11 .11-13 .11-16 .11-16 .11-19 .11-19 .11-19 .11-20 .11-21 .11-24 .11-24 .11-28 .11-28 .11-31 .11-31 .11-33 .11-34 .11-34 .11-35 .11-36 .11-38 .11-38
9-1
. 9-1 . 9-1 . 9-2 . 9-2 . 9-2 . 9-3 . 9-3 . 9-4
. . . 9-4 . . . 9-5
Captulo 10
iii
Captulo 12
12-1
. . 12-3 . . 12-4 . . 12-4 . . 12-5 . . 12-6 . . 12-7 . . 12-8 . . 12-8 . . . . . 12-9 . 12-9 12-10 12-11
Captulo 13
InternetBeans Express
Descripcin general de las clases de InternetBeans Express. . . . . . . . . . Utilizacin de InternetBeans Express con servlets . . . . . . . . . . . . . . . . . Envo de datos con servlets mediante InternetBeans Express . . . . . . . . Anlisis de pginas . . . . . . . . . . Generacin de tablas . . . . . . . . . Utilizacin de InternetBeans Express con JSP . . . . . . . . . . . . . . . . . . . Tabla de etiquetas de InternetBeans . Formato de internetbeans.tld. . . . . .
13-1
. . 13-2 . . 13-4 . . 13-4 . . 13-4 . . 13-5 . . 13-5 . . 13-7 . . 13-8
La <etiqueta> applet . . . . . . . . . . . . . 14-2 Etiqueta <applet> de ejemplo . . . . . . . 14-2 Atributos de las etiquetas <applet> . . . . 14-3 Errores habituales en la etiqueta <applet> 14-4 Los navegadores . . . . . . . . . . . . . . . 14-5 Compatibilidad con Java. . . . . . . . . . 14-5 Obtencin del navegador apropiado. . . . 14-6 Compatibilidad con varios navegadores. . 14-6 Diferencias en la implementacin de Java 14-6 Soluciones a los problemas con los navegadores . . . . . . . . . . . . . . . 14-7 Consejos adicionales para que funcionen las applets . . . . . . . . . . . . . . . . . . 14-8 La seguridad y el Administrador de seguridad . . . . . . . . . . . . . . . . . .14-10 El espacio de contencin . . . . . . . . .14-10 Restricciones de las applets . . . . . . . .14-11 Soluciones a problemas de seguridad. . .14-11 Utilizacin de bibliotecas de terceros . . . . .14-13 Distribucin de las applets . . . . . . . . . .14-13 Comprobacin de las applets . . . . . . . . .14-14 Pasos bsicos de la comprobacin . . . .14-14 Comprobacin en los navegadores . . . .14-15 JBuilder y las applets . . . . . . . . . . . . .14-16 Creacin de applets con el Asistente para applets . . . . . . . . . . . . . . .14-16 Ejecucin de applets. . . . . . . . . . . .14-20 El Appletestbed de JBuilder y el appletviewer de Sun . . . . . . . . .14-20 Ejecucin de applets JDK 1.1.x en JBuilder . . . . . . . . . . . . . . . .14-21 Ejecucin de applets JDK 1.2 en JBuilder . . . . . . . . . . . . . . . .14-21 Depuracin de applets. . . . . . . . . . .14-22 Depuracin de applets en el Plug-in de Java . . . . . . . . . . . . . . . .14-23 Distribucin de applets en JBuilder . . . .14-24
Captulo 15
15-1
15-3 15-3 15-4 15-4 15-4 15-5
Captulo 14
Las applets
14-1
iv
Captulo 16
Paso 3: Creacin del servlet con el Asistente para servlets. . . . . . . . . . . . . . . . . 18-5 Paso 4: Adicin de cdigo al servlet . . . . . 18-8 Paso 5: Compilacin y ejecucin del servlet . 18-9
16-1
16-2 16-3 16-4 16-6
Captulo 19
19-1
19-2 19-2 19-2 19-4 19-5 19-6 19-7 19-8 19-9 19-9
. 16-6
Captulo 17
17-1
. 17-1 . 17-2 . 17-2 . 17-2 . 17-3 . 17-3 . 17-4 . 17-4 . . . . . 17-5 17-5 17-6 17-6 17-6
Captulo 20
. 20-7 . 20-8 . 20-8 . 20-9 .20-10 .20-10 .20-11 .20-11 .20-12 .20-13
. 17-6
Captulo 18
18-1
Paso 1: Creacin del proyecto y seleccin del servidor . . . . . . . . . . . . . . . . . 18-2 Paso 2: Creacin del mdulo web. . . . . . . 18-3
Captulo 21
21-1
. . 21-2 . . 21-3 . . 21-5 . . 21-6 . . 21-9 . 21-10
Paso 6: Diseo de la pgina de plantilla HTML . . . . . . . . . . . . . . . . . . . Paso 7: Conexin del servlet al DataModule Paso 8: Diseo del servlet . . . . . . . . . Paso 9: Edicin del servlet . . . . . . . . . Paso 10: Configuracin de las dependencias del mdulo web . . . . . . Paso 11: Ejecucin del servlet . . . . . . . Distribucin del servlet. . . . . . . . . .
ndice
I-15
Captulo 22
Captulo 23
23-1
23-2 23-2 23-2 23-4 23-5
vi
Tablas
1.1 1.2 2.1 3.1 3.2 5.1 5.2 5.3 5.4 6.1 6.2 8.1 8.2 10.1 10.2 10.3 10.4 10.5 11.1 11.2 11.3 11.4 11.5 11.6 11.7 Convenciones tipogrficas y de smbolos . . . . . . . . . . . . . . . . . 1-3 Convenciones de plataformas. . . . . . 1-4 Tecnologas para aplicaciones web . . . 2-1 Herramientas de JBuilder para mdulos web y archivos WAR. . . . . . 3-2 Marcos de trabajo disponibles en el Asistente para mdulos web . . . . . . 3-6 Opciones de tipo de Servlet . . . . . . . 5-2 Mtodos de servlets . . . . . . . . . . . 5-5 Parmetros de la peticin del servlet . . 5-7 Ejemplos de URL de servlets en etiquetas HTML . . . . . . . . . . . . 5-13 Etiquetas JSP habituales . . . . . . . . 6-3 Compatibilidad de distintos servidores con la depuracin de JSP . . . . . . . 6-14 rboles URI . . . . . . . . . . . . . . . 8-8 Patrones de URL . . . . . . . . . . . 8-11 Ficha Aplicaciones Web del Editor DD de Mdulo Web . . . . . . . . . . 10-2 Ficha Filtro del Editor DD de Mdulo Web . . . . . . . . . . . . . . . . . . 10-7 Ficha Mapeo de filtros del Editor DD de Mdulo Web . . . . . . . . . . . . 10-9 Ficha Coleccin de recursos web del Editor DD de Mdulo Web. . . . . . 10-14 Ficha Servlet individual del Editor DD de Mdulo Web . . . . . . . . . 10-15 Atributos de Fuente de datos . . . . . 11-6 Men contextual de la ficha Fuentes de datos . . . . . . . . . . . . . . . . 11-7 Atributos de Form Bean . . . . . . . . 11-9 Men contextual de la ficha Form Beans . . . . . . . . . . . . . . . . 11-11 Atributos de Form Property . . . . . 11-12 Atributos de excepciones globales . 11-15 Men contextual de Excepciones globales . . . . . . . . . . . . . . . 11-16 11.8 11.9 11.10 11.11 11.12 11.13 11.14 11.15 11.16 11.17 11.18 12.1 12.2 12.3 12.4 12.5 12.6 13.1 13.2 14.1 15.1 16.1 16.2 18.1 Atributos de Reenvo . . . . . . . . .11-18 Men contextual de Reenvos globales . . . . . . . . . . . . . . . .11-19 Atributos de Action . . . . . . . . . .11-21 Men contextual de Actions . . . . .11-24 Atributos de Controlador . . . . . . .11-25 Atributos de Recursos de mensajes .11-30 Men contextual de Recursos de mensajes . . . . . . . . . . . . . . .11-31 Atributos de Plug Ins . . . . . . . . .11-33 Men contextual de Plug Ins . . . . .11-33 Atributos de Definition de Tiles . . . .11-36 Men contextual de Definition de Tiles . . . . . . . . . . . . . . . . . .11-38 Iconos del Diseador de Action . . . . 12-6 Atributos de Action . . . . . . . . . . 12-9 Iconos del Diseador de Form Bean . . . . . . . . . . . . . . . . .12-11 Atributos de Form Bean. . . . . . . .12-13 Iconos del Diseador de Tiles . . . .12-14 Atributos de Definition . . . . . . . .12-16 Clases de InternetBeans Express . . 13-2 Etiquetas InternetBeans Express . . . 13-7 Atributos de las etiquetas <applet> . . 14-3 Parmetros del cuadro de dilogo Configurar servidores para Tomcat . . 15-2 Opciones del Creador de recopilatorios . . . . . . . . . . . . . 16-4 Opciones del asistente para el inicio de Web Start . . . . . . . . . . 16-5 Opciones de parmetros del Asistente para servlets . . . . . . . . . . . . . 18-6
vii
Figuras
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 Panel de proyecto con un nodo mdulo web . . . . . . . . . . . . . . . . . . . 3-7 Ficha Mdulo del cuadro de dilogo Propiedades de Mdulo Web . . . . . 3-11 Ficha Web del cuadro de dilogo Propiedades de Mdulo Web . . . . . 3-12 Ficha Limpiar del cuadro de dilogo Propiedades de Mdulo Web . . . . . 3-13 Ficha Generar del cuadro de dilogo Propiedades de Mdulo Web . . . . . 3-14 Ficha Directorios del cuadro de dilogo Propiedades de Mdulo Web . 3-15 Ficha Clases del cuadro de dilogo Propiedades de Mdulo Web . . . . . 3-17 Ficha Dependencias del cuadro de dilogo Propiedades de Mdulo Web . 3-18 Ficha Descriptor del cuadro de dilogo Propiedades de Mdulo Web . 3-18 Ficha Distribucin del cuadro de dilogo Propiedades de Mdulo Web para Borland Enterprise Server . . . . 3-19 Nodo del archivo WAR abierto en JBuilder IDE . . . . . . . . . . . . . . 3-20 Cuadro de dilogo Propiedades del archivo WAR . . . . . . . . . . . . . 3-20 Asistente para servlets ficha Seleccione el nombre y el tipo de servlet . . . . . . . . . . . . . . . . . . 5-3 Asistente para servlets ficha Modificar detalles del servlet estndar . 5-3 Asistente para servlets - ficha Introduzca los detalles del servlet monitor . . . . . . . . . . . . . . . . . 5-7 Asistente para servlets ficha Introduzca los parmetros de la peticin del servlet . . . . . . . . . . . . . . . . 5-8 Asistente para servlets ficha Introduzca los detalles del mdulo web (Servlet estndar) . . . . . . . . 5-10 Asistente para servlets ficha Introduzca los detalles del mdulo web (Servlet de filtro) . . . . . . . . . 5-10 Asistente para Servlets ficha Definir configuracin de servlet . . . . 5-11 Vista de Struts en el panel del proyecto . . . . . . . . . . . . . . . . . 7-3 7.2 7.3 7.4 7.5 Marco de trabajo Struts en Configurar bibliotecas. . . . . . . . . . . . . . . . 7-7 Ficha Configurar parmetros del mdulo web (Asistente Mdulo Web) . . 7-8 Ficha Modificar los detalles del archivo JSP Asistente para JSP . . . . . . . 7-9 Ficha Mdulo web e informacin de clases para ActionForm Asistente para ActionForm . . . . . . . . . . . 7-10 Ficha Definicin de campos para ActionForm Asistente para ActionForm . . . . . . . . . . . . . . 7-11 Ficha Seleccin de opciones adicionales Asistente para ActionForm . . . . . . . . . . . . . . 7-11 Ficha Mdulo web y nombre para ActionForm Asistente para Action . 7-12 Ficha Informacin de configuracin Asistente para Action . . . . . . . . . 7-13 Ficha Mdulo web, JSP y ActionForm Asistente para JSP a partir de ActionForm . . . . . . . . . . . . . . 7-14 Ficha Tipos de etiquetas para campos ActionForm en JSP Asistente para JSP a partir de ActionForm . . . 7-14 Ficha Indique las opciones para crear esta JSP Struts Asistente para JSP a partir de ActionForm . . . 7-15 Ficha Indique las pginas para su conversin a Struts Asistente para conversin a Struts . . . . . . . . . . 7-16 Ficha Etiquetas que se han de convertir Asistente para conversin a Struts . . . . . . . . . . . . . . . . 7-17 Ficha Especifique las opciones para convertir etiquetas a Struts Asistente para conversin a Struts . . . . . . . 7-17 Editor de configuracin de Struts . . . 7-18 Mensajes Tomcat . . . . . . . . . . . 8-17 Salida de Vista web . . . . . . . . . . 8-18 Ver cdigo fuente web . . . . . . . . 8-19 Depuracin web. . . . . . . . . . . . 8-20 Ficha Aplicaciones web del Editor DD de Mdulo Web . . . . . . . . . . 10-3 Ficha Parmetro de contextual del Editor DD de Mdulo Web . . . . . . 10-4
7.6
7.7
7.11
7.12
5.2 5.3
7.13
7.14
5.4
7.15
5.5
5.6
5.7 7.1
viii
10.3 10.4 10.5 10.6 10.7 10.8 10.9 10.10 10.11 10.12
10.18 10.19 10.20 11.1 11.2 11.3 11.4 11.5 11.6 11.7
Ficha Referencia a EJB en el Editor DD de Mdulo Web . . . . . . . . . . 10-5 Ficha Referencia local de EJB en el Editor DD de Mdulo Web . . . . . 10-5 Ficha Entrada de entorno en el Editor DD de Mdulo Web . . . . . . . . . . 10-6 Ficha Pgina de error en el Editor DD de Mdulo Web . . . . . . . . . . 10-6 Ficha Filtro del Editor DD de Mdulo Web . . . . . . . . . . . . . . . . . . 10-7 Nodo Parmetro de inicializacin en el Editor DD de Mdulo Web. . . . 10-8 Ficha Mapeo de filtro del Editor DD de Mdulo Web . . . . . . . . . . . . 10-9 Ficha Monitor del Editor DD de Mdulo Web . . . . . . . . . . . . . 10-10 Ficha Mapeo MIME en el Editor DD de Mdulo Web . . . . . . . . . . . 10-10 Ficha Referencia de entorno de recursos en el Editor DD de Mdulo Web . . . . . . . . . . . . . . . . . 10-11 Ficha Referencias del recurso en el Editor DD de Mdulo Web . . . . 10-12 Restriccin de seguridad en el Editor DD de Mdulo Web . . . . . . . . . 10-13 Nodo Coleccin de recursos web en el Editor DD de Mdulo Web. . . 10-14 Ficha Servlet del Editor DD de Mdulo Web . . . . . . . . . . . . . 10-16 Ficha Referencia de competencia de seguridad del Editor DD de Mdulo Web . . . . . . . . . . . . . . . . . 10-17 Ficha Mapeo de servlets del Editor DD de Mdulo Web . . . . . . . . . 10-17 Ficha Competencia de seguridad en el Editor DD de Mdulo Web. . . 10-18 Ficha Biblioteca de etiquetas en el Editor DD de Mdulo Web. . . . . . 10-18 Ficha Visin general de Fuentes de datos . . . . . . . . . . . . . . . . . 11-5 Ficha General de Fuentes de datos . . 11-6 Ficha Visin general de Form Beans . 11-8 Ficha General de Form Bean . . . . . 11-9 Ficha Propiedad del formulario . . . 11-12 Ficha Visin general de Excepciones globales . . . . . . . . . . . . . . . 11-14 Ficha General de Excepciones globales . . . . . . . . . . . . . . . 11-14
11.8 11.9 11.10 11.11 11.12 11.13 11.14 11.15 11.16 11.17 11.18 12.1 16.1 16.2 18.1 18.2 19.1 19.2 20.1 23.1
Ficha Visin general de Reenvos globales . . . . . . . . . . . . . . . Ficha General . . . . . . . . . . . . Ficha Visin general de Correspondencias Action . . . . . . Ficha General de Action . . . . . . Ficha General de Controlador . . . Ficha de descripcin general de Recursos de mensajes . . . . . . . Ficha General de Recursos de mensajes . . . . . . . . . . . . . . Ficha General de Plug Ins . . . . . Ficha General de Plug In . . . . . . Ficha Visin general de Definitions de Tiles . . . . . . . . . . . . . . . Ficha General de Tiles . . . . . . . Diseador de Action . . . . . . . . Vista web de Java Web Start . . . . Navegador externo para Java Web Start . . . . . . . . . . . . . . . . . Servlet que se ejecuta en la vista web . . . . . . . . . . . . . . . . . Servlet en ejecucin tras enviar el nombre . . . . . . . . . . . . . . . Nodo del mdulo web en el panel del proyecto . . . . . . . . . . . . . JSP en Vista web . . . . . . . . . . Nodo del mdulo web en el panel del proyecto . . . . . . . . . . . . . Nodo del mdulo web en el panel del proyecto . . . . . . . . . . . . .
.11-17 .11-17 .11-20 .11-21 .11-25 .11-29 .11-29 .11-32 .11-32 .11-35 .11-36 . 12-2 . 16-7 . 16-7 .18-10 .18-10 . 19-3 . 19-7 . 20-4 . 23-4
ix
Tutoriales
Creacin de un servlet simple . . . . . . . . Creacin de una JSP mediante el Asistente para JSP . . . . . . . . . . . . . . . . . . Creacin de una JSP con InternetBeans Express . . . . . . . . . . . . . . . . . . Ejecucin de la aplicacin de ejemplo CheckBoxControl con Java Web Start. . . . 18-1 . 19-1 . 20-1 . 21-1 Creacin de un servlet que actualiza un libro de visitas . . . . . . . . . . . . . . . . . . 22-1 Creacin de un servlet con InternetBeans Express . . . . . . . . . . . . . . . . . . . 23-1
Captulo
Captulo 1
Introduccin
El desarrollo web es una funcin de JBuilder Developer y JBuilder Enterprise. El desarrollo de applets es una funcin de todas las ediciones de JBuilder.
La Gua del desarrollador de aplicaciones web presenta algunas de las tecnologas disponibles para el desarrollo de aplicaciones multinivel basadas en la tecnologa web. Una aplicacin web consta de uno o varios mdulos web. Un mdulo web es un conjunto de documentos HTML/XML, componentes web (applets, servlets y pginas JSP) y otros recursos que se encuentran en una estructura de directorio o en un formato de archivo conocido como Web ARchive (WAR). Normalmente, las aplicaciones web se encuentran en un servidor central y prestan servicios a distintos clientes. Este manual detalla cmo aparecen estas tecnologas en JBuilder y cmo trabajar con ellas en el IDE y en el editor. Tambin explica cmo estas tecnologas se complementan entre s en una aplicacin web. Si desea obtener ms informacin, seleccione uno de los siguientes temas:
s
Captulo 2, Introduccin general al proceso de desarrollo de aplicaciones web Presenta las tecnologas analizadas en este libro, incluyendo servlets, JavaServer Pages (JSP) e InternetBeans Express, Struts y applets.
s s
Captulo 3, Los mdulos web y los archivos WAR Explica cmo crear un mdulo web y recopilarlo en un archivo WAR en JBuilder. Este captulo analiza tambin la estructura y los conceptos generales de los mdulos web. Captulo 4, Los servlets Presenta los servlets y la API de servlet.
Captulo 1: Introduccin
1 -1
I n t r o d u c c in
s
Captulo 5, Los servlets en JBuilder Explica las opciones del Asistente para servlets, cmo ejecutar los servlets, cmo internacionalizarlos y cmo crear servlets de enlace a datos.
Captulo 6, Desarrollo de Pginas JavaServer Presenta las JSP y la API de JSP. Explica cmo utilizar el asistente para JSP para crear una JSP.
Captulo 7, El marco de trabajo Struts en JBuilder Explica el marco de trabajo Struts y el modo de crear una aplicacin web preparada para Struts.
Captulo 8, Las aplicaciones web en IDE de JBuilder Explica cmo compilar, ejecutar y depurar servlets y JSP. Captulo 9, Distribucin de aplicaciones web Explica los diferentes aspectos de la distribucin de las aplicaciones web. Captulo 10, Modificacin del archivo web.xml Explica cmo se debe utilizar el Editor DD de Mdulo Web para modificar el archivo web.xml.
Captulo 11, Modificacin del archivo struts-config.xml Explica la forma de utilizar el Editor de configuracin de Struts con el fin de modificar el archivo struts-config.xml.
Captulo 12, Los diseadores de Struts Explica cmo se utilizan los diseadores visuales de Struts para disear las capas Actions, FormBeans y Tiles del mdulo web.
Captulo 13, InternetBeans Express Explica la biblioteca InternetBeans y cmo utilizar los componentes con servlets y JSP.
Captulo 14, Las applets Explica cmo crear applets en JBuilder. Trata de los principales inconvenientes implicados en el desarrollo de un applet y su distribucin, con sus soluciones.
Captulo 15, JBuilder con Tomcat Explica cmo se utiliza Tomcat en el IDE de JBuilder. Captulo 16, Ejecucin de aplicaciones web con Java Web Start Explica cmo utilizar Web Start para lanzar aplicaciones que no sean aplicaciones web desde un navegador web.
Captulo 17, Sugerencias sobre aplicaciones web Muestra una serie de sugerencias para el desarrollo de aplicaciones web.
Si desea una lista de los tutoriales de este libro, consulte Tutoriales en la pgina -x.
1-2
C o n v e n c i o n e s d e l a d o c u m e n t a c i n
Esta gua contiene muchas direcciones web externas. Las direcciones y vnculos facilitados son vlidos a la fecha de impresin de este manual. Los sitios web no pertenecen a Borland, por lo que no se puede garantizar su contenido ni su continuidad. Si tiene preguntas concretas sobre el desarrollo de aplicaciones web en JBuilder, consulte el grupo de noticias Servlet-JSP borland.public.jBuilder.servlet-jsp en http://www.borland.com/newsgroups/.
Convenciones de la documentacin
En la documentacin de Borland para JBuilder, el texto con significado especial se identifica mediante la tipografa y los smbolos descritos en la siguiente tabla. Tabla 1.1 Tipografa
Letra monoespaciada
Negrita
La negrita se utiliza para las herramientas java, bmj (Borland Make for Java - Make de Borland para Java), bcj (Borland Compiler for Java - Compilador de Borland para Java) y opciones del compilador. Por ejemplo: javac, bmj, -classpath. Las palabras en cursiva indican los trminos nuevos que se definen y los ttulos de libros; ocasionalmente se usan para indicar nfasis. Las teclas, como Pulse Esc para salir de un men. Los corchetes, en las listas de texto o sintaxis, encierran elementos optativos. En estos casos no se deben escribir los corchetes.
Cursiva
Teclas []
C a pt u l o 1 : I n t r o d u c c i n
1 -3
C o n v e n c i o n e s d e l a d o c u m e n t a c i n
Cursiva, serif
...
JBuilder se puede utilizar con diversas plataformas. En la tabla siguiente se proporciona una descripcin de las convenciones de plataformas utilizadas en la documentacin. Tabla 1.2 Elemento
Vas de acceso
Directorio inicial
Imgenes de pantalla
1-4
Recursos en lnea
Tambin puede obtener informacin de los siguientes recursos en lnea: World Wide Web http://www.borland.com/ http://www.borland.com/techpubs/jbuilder/ Newsletters Para suscribirse a las newsletters, rellene el formulario en lnea que aparece en http://www.borland.com/products/ newsletters/index.html
C a pt u l o 1 : I n t r o d u c c i n
1 -5
http://www.borland.com/jbuilder/ (actualizaciones de software y otros archivos) http://www.borland.com/techpubs/jbuilder/( actualizaciones de documentacin y otros archivos) http://community.borland.com/ (contiene nuestra revista de noticias para desarrolladores en formato web)
news:comp.lang.java.advocacy news:comp.lang.java.announce news:comp.lang.java.beans news:comp.lang.java.databases news:comp.lang.java.gui news:comp.lang.java.help news:comp.lang.java.machine news:comp.lang.java.programmer news:comp.lang.java.security news:comp.lang.java.softwaretools
Nota
La pgina Support Programs en http://www.borland.com/devsupport/ namerica/. Pulse el enlace Reporting Defects para llegar al formulario Entry. Quality Central en http://qc.borland.com. Siga las instrucciones de la seccin Bugs Reports de la pgina Quality Central.
1-6
Cuando informe sobre un fallo, incluya todos los pasos necesarios para llegar a l, as como toda la informacin posible sobre la configuracin, el entorno y las aplicaciones que se estaban utilizando junto con JBuilder. Intente explicar con la mayor claridad posible las diferencias entre el comportamiento esperado y el obtenido. Si desea enviar felicitaciones, sugerencias o quejas al equipo de documentacin de JBuilder, enve un mensaje a jpgpubs@borland.com. Tenga en cuenta que los asuntos relacionados con el servicio tcnico se deben enviar al departamento de asistencia tcnica para programadores. JBuilder es una herramienta creada por desarrolladores y para desarrolladores. Valoramos intensamente sus aportaciones.
C a pt u l o 1 : I n t r o d u c c i n
1 -7
1-8
Captulo
El desarrollo web es una funcin de JBuilder Developer y JBuilder Enterprise. El desarrollo de applets es una funcin de todas las ediciones de JBuilder.
Este apartado presenta tecnologas para aplicaciones web y algunas de las diferencias que existen entre ellas, y analiza la forma de decidir qu tecnologas hay que utilizar. Comienza con un resumen bsico de las tecnologas que se presentan en este libro: Tabla 2.1 Tecnologa
Servlets Pginas JavaServer (JSP)
Struts
2 -1
Servlets
InternetBeans Express
Cocoon
Applets
El resumen ofrece alguna idea de la naturaleza de cada una de estas tecnologas, pero, en qu se puede basar la eleccin de una de ellas? Cules son las ventajas y desventajas de cada una de estas tecnologas? Se responder a estas y a ms preguntas en el siguiente estudio.
Servlets
Los servlets son programas Java que se integran en un servidor web para suministrar el procesamiento en el servidor de las peticiones de un navegador web cliente. Requieren un servidor web que admita tecnologa JavaServer, tal como el servidor web Tomcat que se distribuye con las ediciones de JBuilder. (Tomcat tambin puede estar integrado con servidores Web que no admitan tecnologa JavaServer, otorgndoles de esta forma dicha funcionalidad. Un ejemplo de ello es IIS.) Los servlets de Java pueden utilizarse para sustituir programas de Interfaz de enlace comn (Common Gateway Interface - CGI), o en las mismas situaciones en las que previamente se habra utilizado una CGI. La utilizacin de servlets, en lugar de CGI, presenta algunas ventajas:
s s s
Se utiliza un programa cliente escrito en cualquier lenguaje para enviar peticiones al servlet. El cliente puede ser tan sencillo como un navegador HTML. Tambin se podra usar un applet para el cliente o un programa escrito
2-2
P g i n a s J a v a S e r v e r ( J S P )
en un lenguaje que no sea Java. En el servidor, el servlet procesa la peticin y genera una salida dinmica que se enva de nuevo al cliente. Habitualmente, los servlets no tienen una IU (interfaz de usuario), pero opcionalmente se puede proporcionar una en el ordenador del cliente. Los servlets tienen algunas ventajas sobre las applets:
s
No hay que preocuparse de en qu JDK esta ejecutndose en el navegador Web cliente. El navegador Web cliente no necesita admitir Java. Todo el cdigo escrito en Java se ejecuta completamente en el servidor. Esto da ms control al administrador del servidor. Despus de que se inicie el servlet, las peticiones de los navegadores web de los clientes se limitan a llamar al mtodo service() de ejecucin del servlet. Esto significa que los clientes no experimentan ningn impacto en el rendimiento mientras esperan que se cargue el servlet. Adems, resulta mucho ms rpido que descargar un applet.
La distribucin de un servlet en el servidor web puede resultar problemtica, pero ciertamente no es imposible. JBuilder proporciona algunas herramientas que facilitan la distribucin. stas se analizan en el Captulo 9, Distribucin de aplicaciones web. Para obtener ms informacin sobre los constructores, consulte el Captulo 4, Los servlets, y el Captulo 5, Los servlets en JBuilder.
2 -3
P g i n a s J a v a S e r v e r ( J S P )
El Asistente para JSP de JBuilder admite la integracin automtica de las siguientes bibliotecas de etiquetas, al igual que cualquier biblioteca de etiquetas definida por el usuario, en sus JSP:
s
InternetBeans Express 1.1: una biblioteca de etiquetas suministrada por Borland, utilizada para presentar y manipular fcilmente los datos de una base de datos. JSTL 1.0: una biblioteca de etiquetas, suministrada por Sun, que ofrece un conjunto de etiquetas que permiten a los desarrolladores realizar tareas comunes de un modo estndar. Struts: una biblioteca de etiquetas de cdigo abierto, suministrada por el Jakarta Project, que se utiliza para generar aplicaciones web.
Nota
Tambin puede definir sus propias bibliotecas de etiquetas y utilizarlas en JBuilder. Adems, terceras partes pueden suministrar bibliotecas de etiquetas ms avanzadas y otros marcos de trabajo mediante OpenTools. Las JSP tienen algunas ventajas y algunos inconvenientes en comparacin con los servlets. Algunas de las ventajas son:
s s s
Hay que escribir menos cdigo. Fcil incorporacin de JavaBeans existentes. La distribucin es ms sencilla. La mayora de las emisiones de distribucin se ocupan automticamente de s mismas, ya que las JSP se asocian con un servidor web de la misma forma que lo hacen los archivos HTML. Puede utilizar las etiquetas HTML directamente, y no es necesario que escriba cdigo Java en las JSP para producir cdigo HTML. Esto significa que los diseadores de pginas no necesitan saber programar en Java. Con una planificacin cuidadosa, el cdigo HTML se puede separar claramente del cdigo Java, facilitando la lectura de la JSP. El cdigo invisible del servlet generado puede ser confuso, como ya se indic previamente. Dado que los cdigos HTML y Java no estn en archivos separados, un desarrollador de Java y un diseador de pginas web que trabajen juntos en una aplicacin deben tener cuidado para no sobrescribir los cambios entre s. HTML y Java combinados en un solo archivo pueden hacer que ste sea difcil de leer, y este problema se incrementa si no se practica una programacin cuidadosa y limpia. El diseador de JBuilder no admite el diseo de archivos .jsp.
El sistema JSP se parece mucho a las ASP (pginas del servidor Active) de Microsoft. La principal diferencia entre las JSP y las ASP es que los objetos manejados en el primero de los sistemas son JavaBeans, que son independientes de plataforma. ASP maneja objetos COM, por lo que depende completamente de las plataformas Microsoft. Para obtener ms informacin sobre la tecnologa JSP, consulte el Captulo 6, Desarrollo de Pginas JavaServer.
2-4 Gua del desarrollador de aplicaciones web
Struts
Struts
El marco de trabajo de cdigo abierto Struts se basa en el concepto de diseo de software Modelo 2 o Controlador Modelo-Vista. En este marco de trabajo, el modelo contiene los datos, la vista es la presentacin de los datos y el controlador supervisa la interaccin entre el modelo y la vista.
s s
La vista es normalmente una pgina JSP. El modelo puede ser cualquier tecnologa de acceso a datos, desde JDBC a un EJB. El controlador es un servlet Struts de nombre ActionServlet.
Este marco de trabajo, que es una coleccin de clases, servlets, etiquetas JSP, una biblioteca de etiquetas y clases de utilidades, separa limpiamente el HTML del cdigo Java y la presentacin visual de la lgica empresarial. La ventaja ms importante de utilizar Struts es la divisin entre el cdigo Java y las etiquetas HTML. Gracias a los Struts, la aplicacin web es ms fcil de comprender. Un diseador web ya no tiene que buscar por el cdigo Java para realizar cambios en la presentacin, y un desarrollador ya no tiene que volver a compilar el cdigo al disear de nuevo el flujo de la aplicacin. Aparte de su complejidad, el marco de trabajo Struts presenta pocos inconvenientes al desarrollador en Java. JBuilder ofrece un slido conjunto de herramientas que simplifican la complejidad y que mantienen sincronizados las clases y los archivos xml. Si desea ms informacin sobre Struts en JBuilder, consulte el Captulo 7, El marco de trabajo Struts en JBuilder. Para ms informacin sobre Struts, consulte The Jakarta Project: Struts en http://jakarta.apache.org/struts/ index.html.
2 -5
InternetBeans Express
InternetBeans Express
La tecnologa InternetBeans Express de JBuilder se integra en la tecnologa servlet y JSP con el fin de ofrecer un valor aadido a sus aplicaciones y simplificar las tareas de desarrollo de servlet y JSP. InternetBeans Express es un conjunto de componentes y extensiones de etiquetas de pginas JavaServer (JSP) utilizado para la generacin de presentaciones y la interaccin con aplicaciones web. Toma pginas estticas de plantilla, inserta contenido dinmico desde un modelo dinmico de datos y lo presenta al cliente. A continuacin, escribe en el modelo los datos que enva el cliente. Esto facilita la creacin de servlets y JSP enlazados a datos. InternetBeans Express contiene soporte incorporado para DataExpress DataSets y DataModules. Tambin puede utilizarse con modelos genricos de datos y EJB. Para obtener ms informacin sobre Struts, consulte el Captulo 13, InternetBeans Express.
Applets
Cuando apareci el lenguaje Java, haba mucha confusin acerca de las applets. En aquellos tiempos, la tecnologa Web estaba menos desarrollada y las applets prometan soluciones a algunos de los problemas a los que se enfrentaban los desarrolladores en ese momento. De hecho, las applets se hicieron tan populares que, hasta el da de hoy, el desarrollo de un applet es a menudo una de las primeras tareas previstas en el comienzo de los cursos de Java. Como resultado, un error comn entre los desarrolladores de Java es confiar demasiado en las applets. Las applets evidentemente tienen su utilidad, pero no son una solucin mgica a todos los problemas de desarrollo web. Algunos de los inconvenientes de las applets son:
s s
Su distribucin y comprobacin puede ser difcil. Se confa en que la mquina del cliente tenga activado Java en su navegador web. Los diferentes navegadores web soportan diferentes versiones del JDK, y habitualmente no la ltima versin. El applet puede tardar en iniciarse la primera vez, ya que necesita ser descargada por el cliente.
Algunos de estos problemas tienen soluciones que se tratan con ms detalle en el Captulo 14, Las applets. Cuando se considere la utilizacin de un applet, hay que pensar si alguna otra tecnologa de Java puede servir mejor a nuestros propsitos. Existen algunas ventajas en la utilizacin de applets. Entre otras, destacan las siguientes:
2-6
Las applets pueden proporcionar interfaces de usuario (IU) ms complejas que los servlets o las JSP. Desde el momento en que las applets se descargan y se ejecutan en el ordenador del cliente, el servidor web no necesita ser compatible con Java. Esto puede ser importante si se est escribiendo una aplicacin web para una web en la que no se tenga control sobre el servidor web (tal como una web alojada por un ISP externo). Las applets pueden validar localmente los datos introducidos por el usuario, en lugar de validarlos en el servidor. Esto tambin se puede llevar a cabo con JavaScript en conjuncin con un servlet o una JSP. Despus de la descarga inicial del applet, puede reducirse el nmero de peticiones del navegador web al servidor, dado que una gran cantidad de procesamiento puede llevarse a cabo en la mquina del cliente.
Si desea ms informacin sobre las applets y la forma de solucionar los posibles problemas, consulte el Captulo 14, Las applets.
Se necesita una IU (interfaz de usuario) muy compleja? Si la IU requiere elementos ms complejos que los componentes habituales para la introduccin de datos (como campos de texto, botones de radio, cuadros combinados o cuadros de lista, botones de envo, etc.) e imgenes, se debe utilizar un applet. Si se pretende otorgar mucha carga de trabajo al servidor, se debe utilizar un servlet o una JSP. Si se quiere evitar que los usuarios tengan que descargar mucho cdigo y acelerar el inicio de la aplicacin, se debe utilizar un servlet o una JSP.
2 -7
E l p r o c e s o b s i c o d e d e s a r r o l l o d e a p l i c a c i o n e s w e b
s
Si se quiere controlar la versin del JDK para la aplicacin (sin necesidad de usar descargas) o si se est preocupado por los usuarios que no tienen Java activado en sus navegadores web, se debe utilizar un servlet o una JSP. Si se busca un substituto para CGI, con menos sobrecarga de memoria, se debe utilizar un servlet o una JSP. Si se quiere algo similar a un ASP, pero se prefiere que sea independiente de la plataforma, se debe utilizar una JSP. Si se necesita una IU compleja, pero tambin se quieren algunas de las caractersticas de los servlets o de JSP, se debe considerar combinar un applet y un servlet. Se puede tener un applet en el navegador web cliente que se comunique con un servlet en el servidor. Si se quiere utilizar un servlet o una JSP y se quiere hacer enlace de datos, se debe utilizar InternetBeans Express. Si est pensando en desarrollar una biblioteca de etiquetas de rutinas estndar, tales como control de estructuras o datos y formato de nmeros, verifique primero si JSTL dispone de las rutinas que necesita. Si desea separar el cdigo HTML del cdigo Java, utilice una aplicacin web Struts.
Tenga en cuenta que los servlets y las JSP son lo suficientemente parecidos como para que la decisin entre uno y otra dependa, ante todo, de las preferencias personales. Adems, recuerde que muchas aplicaciones web utilizarn una combinacin de dos o ms de estas tecnologas.
Descripcin
Decida cmo va a estructurar su aplicacin y que tecnologas utilizar. Defina qu es lo que tiene que hacer la aplicacin y el aspecto que tendr. Opcionalmente se puede configurar el servidor web para que trabaje en el IDE de JBuilder, de forma que se puedan compilar, ejecutar y depurar las aplicaciones con el mismo servidor web que se piensa utilizar para su distribucin. Tambin puede utilizar Tomcat, el servidor web que se suministra con JBuilder, para compilar, ejecutar y depurar. Si desea ms informacin, consulte JBuilder con Tomcat en Desarrollo de aplicaciones para servidores J2EE.
2-8
Paso
Desarrolle su aplicacin
Descripcin
Cree un mdulo web y, a continuacin, escriba el cdigo de la aplicacin. Independientemente de que la aplicacin est compuesta de applets, servlets, pginas JavaServer o clases Struts, la utilizacin de muchas de las herramientas de JBuilder simplifica las tareas de desarrollo. Compile la aplicacin en el IDE de JBuilder. Ejecute la aplicacin en el IDE de JBuilder. Esto le da una vista previa de la aplicacin, sin necesidad de distribuirla primero. En esta etapa, se deben hacer algunas comprobaciones locales de la aplicacin. Modifique los archivos web.xml y struts-config.xml y distribuya la aplicacin en el servidor web. (Si se utilizan las herramientas de JBuilder tools, quizs no sea necesario modificar estos archivos.) Las particularidades de su aproximacin a este paso dependern en gran medida del servidor que se est utilizando. Compruebe su aplicacin ejecutndola en el servidor web. Esto ayudar a identificar cualquier problema que se d con la distribucin o con la aplicacin misma. Se deben efectuar comprobaciones desde el navegador web cliente en una mquina diferente del servidor web. Tambin se pueden probar diferentes navegadores web, ya que la aplicacin puede aparecer de forma ligeramente diferente en cada uno de ellos.
Distribuya su aplicacin
Compruebe su aplicacin
2 -9
En general, las aplicaciones distribuidas administran y recuperan datos de sistemas previamente instalados. El sistema de herencia puede existir en numerosos ordenadores que ejecuten diferentes sistemas operativos. Una aplicacin distribuida utiliza un servidor de aplicaciones, como el Borland Enterprise Server, para la gestin de aplicaciones. Las aplicaciones distribuidas no tienen que estar basadas en Java. De hecho, una aplicacin distribuida puede contener muchos programas diferentes, sin tener en cuenta en que lenguaje estn escritos o dnde residen. Las aplicaciones distribuidas estn habitualmente confinadas a una red dentro de una empresa. Ciertas partes de la aplicacin distribuida pueden estar a disposicin de los usuarios a travs de Internet, pero entonces se estar combinando una aplicacin distribuida con una aplicacin web. Las tecnologas que se usan en una aplicacin distribuida incluyen CORBA (Common Object Request Broker Architecture - La Arquitectura de Intermediador de Objetos Remotos) y RMI (Remote Method Invocation Llamada a mtodos remotos):
s
La ventaja primaria de CORBA es que clientes y servidores pueden escribirse en cualquier lenguaje de programacin. Esto es posible porque los objetos se definen utilizando el lenguaje de definicin de interfaces (IDL: Interface Definition Language), y la comunicacin entre los objetos, los clientes y los servidores se realiza por medio de ORB (Object Request Brokers Intermediador de objetos). Si desea ms informacin sobre CORBA, consulte CORBA con JBuilder en Desarrollo de aplicaciones para servidores J2EE. La llamada a mtodos remotos permite crear aplicaciones distribuidas Java a Java en las que se puede llamar a los mtodos de los objetos remotos de Java desde otras mquinas virtuales de Java, incluso en distintos anfitriones. Si desea obtener ms informacin acerca de RMI, consulte el ejemplo de RMI en la carpeta <jbuilder>/samples.
2-1 0
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
Captulo
Captulo 3
JBuilder posee algunas funciones importantes para gestionar la estructura de las aplicaciones web. Existen dos conceptos principales que es necesario comprender con el fin de hacer un uso efectivo de estas funciones: los mdulos web y los archivos recopilatorios web (WAR).
C a p tulo 3: L o s m d u l o s w e b y l o s a r c h i v o s W A R
3 -1
Es importante meditar sobre la estructura de las aplicaciones web durante la etapa de planificacin. Cuantos mdulos web tiene? Como se llamarn? Se almacenarn estos mdulos web en archivos WAR? Necesitan los mdulos web compatibilidad con algn marco de trabajo? Proyectando la estructura desde el principio, la distribucin terminar por ser ms fcil. Si desea ms informacin sobre la forma en que JBuilder trabaja con los mdulos web, consulte Creacin de mdulos web con el Asistente para mdulos web en la pgina 3-3 y El mdulo web y sus propiedades en la pgina 3-7.
Herramienta
Asistente para mdulos web
3-2
C r e a c i n d e m d u l o s w e b c o n e l A s i s t e n t e p a r a m d u l o s w e b
Tabla 3.1
Herramienta
Nodo de archivo WAR
Nota
Los asistentes slo estn habilitados en la ficha Web de la galera de objetos si hay un servidor seleccionado para el proyecto.
2 Seleccione Mdulo Web (WAR). Pulse Aceptar. 3 Si no hay ningn servidor seleccionado para el proyecto, aparece el cuadro
de dilogo Seleccione el servidor para proporcionar el servicio de JSP/ Servlet. Este cuadro de dilogo se utiliza para seleccionar un servidor. Pulse Aceptar. Si ya hay un servidor seleccionado, o cuando se selecciona, se abre el Asistente para mdulos web.
4 En la ficha Seleccionar origen del mdulo web, indique cmo desea crear
el mdulo web. Seleccione Crear mdulo web vaco para crear un mdulo web vaco en el proyecto. Seleccione Copiar mdulo web desde un directorio o recopilatorio para crear una copia de un directorio o ampliar un recopilatorio ya creado. Si el mdulo web es vlido y los descriptores de distribucin son correctos para el servidor web configurado, se puede ejecutar inmediatamente desde el IDE de JBuilder.
C a p tulo 3: L o s m d u l o s w e b y l o s a r c h i v o s W A R
3 -3
C r e a c i n de m d u l o s w e b c o n e l A s i s t e n t e p a r a m d u l o s w e b
La ficha Seleccione el origen de Mdulo Web del asistente tiene el siguiente aspecto:
7 Introduzca la ubicacin del directorio del mdulo del mdulo web. Este
campo se rellena automticamente a medida que se va escribiendo. De esta forma se crea un subdirectorio del directorio del proyecto. Tambin se puede pulsar el botn de puntos suspensivos (...) para examinar y crear o para elegir un directorio. No se recomienda la eleccin del directorio raz del proyecto, del directorio src o del de clases.
3-4
C r e a c i n d e m d u l o s w e b c o n e l A s i s t e n t e p a r a m d u l o s w e b
Al generar el proyecto o el mdulo web Slo al generar el mdulo web Slo al generar el proyecto Nunca
Siempre que se genera un archivo WAR, tiene por defecto el mismo nombre que el mdulo web y se coloca en el directorio raz del proyecto. Si selecciona Nunca, puede elegir una opcin posteriormente. Esta lista desplegable corresponde a una configuracin del cuadro de dilogo Propiedades de Mdulo Web. Tambin se puede cambiar el nombre del archivo WAR en el cuadro de dilogo Propiedades de Mdulo Web.
C a p tulo 3: L o s m d u l o s w e b y l o s a r c h i v o s W A R
3 -5
C r e a c i n de m d u l o s w e b c o n e l A s i s t e n t e p a r a m d u l o s w e b
Marco de trabajo
JSTL (Biblioteca de etiquetas estndar para pginas JavaServer) InternetBeans Express
Struts
Cocoon
Puede hacer que las bibliotecas de etiquetas JSP definidas por el usuario estn disponibles en este asistente si las aade en el cuadro de dilogo Configurar bibliotecas. Si desea ms informacin, consulte Utilizacin del cuadro de dilogo Configurar bibliotecas para gestionar los marcos de trabajo definidos por el usuario en la pgina 6-6. A travs de OpenTools, terceras partes pueden proporcionar otros marcos de trabajo.
3-6
E l m d u l o w e b y s u s p r o p i e d a d e s
El nodo mdulo web tiene varios nodos descendientes, entre los que se incluyen:
s s
Un nodo optativo Archivo WAR. El nodo Descriptores de distribucin, que representa los descriptores de distribucin del mdulo web. Si el mdulo web est preparado para Struts, tambin incluye un nodo Struts 1.1, en el que se agrupan los descriptores de distribucin de Struts. Consulte Vista de Struts en el panel del proyecto en la pgina 7-3 para obtener ms informacin. El nodo Directorio del mdulo del mdulo web.
Nota
Si el mdulo web se ha creado a partir de un archivo WAR, los directorios creados a partir del recopilatorio se muestran en el panel del proyecto. Los archivos de contenido web (tales como los archivos HTML, SHTML y JSP) se deben colocar en el directorio raz del mdulo web o en uno de sus subdirectorios. Los archivos de contenido web son archivos a los que se puede acceder directamente mediante el navegador web del cliente. Los recursos de Java utilizados por el mdulo web (tales como servlets o JavaBeans) deben tener sus archivos fuente en el directorio fuente del proyecto. El navegador web del cliente no puede acceder directamente a estos archivos, pero pueden ser llamados por otros componentes tales como un archivo JSP. El Asistente para servlets de JBuilder, el Asistente para JSP y el Asistente para el inicio de Web Start facilitan la creacin de mdulos web que sigan estas reglas. Asegrese de especificar un mdulo web existente cuando utilice estos asistentes. Para asegurarse de que los archivos se incluyen en el recopilatorio, compruebe que sus tipos de archivo estn seleccionados en la lista Tipos de archivo incluidos de la ficha Mdulo del cuadro de dilogo Propiedades del mdulo.
C a p tulo 3: L o s m d u l o s w e b y l o s a r c h i v o s W A R
3 -7
E l m d u l o w e b y s u s p r o p i e d a d e s
2 Pulse el botn derecho en el nodo seleccionado. 3 Seleccione Nuevo|Archivo en el men contextual. 4 Indique el nombre y tipo de archivo, y el directorio en el que se debe
aadir. Tenga en cuenta que el directorio por defecto es el directorio seleccionado en el panel del proyecto.
3-8
E l m d u l o w e b y s u s p r o p i e d a d e s
2 Pulse el botn derecho en el nodo seleccionado. 3 Seleccione Nuevo|Directorio en el men contextual. 4 Indique el nombre y directorio superior del nuevo directorio. 5 Pulse Aceptar. Se aade al directorio del mdulo un directorio vaco con el
nombre especificado, en la ubicacin indicada. Para iniciar el Asistente para JSP desde el directorio del mdulo:
2 Pulse el botn derecho en el nodo seleccionado. 3 Seleccione Nuevo|JSP en el men contextual. Se inicia el Asistente para
JSP. Si desea ms informacin, consulte El Asistente para JSP en la pgina 6-10.
Descriptores de distribucin
Cada mdulo web debe tener un directorio WEB-INF. Este directorio contiene la informacin que necesita el servidor web cuando se distribuye la aplicacin. Esta informacin tiene la forma de archivos descriptores de distribucin. Dichos archivos tienen extensiones .xml. Se muestran en el nodo Descriptores de distribucin en el panel del proyecto. En realidad, el directorio WEB-INF es un subdirectorio del directorio del mdulo del mdulo web. Se muestra bajo el nodo Directorio del mdulo del panel del proyecto. Tenga en cuenta que este directorio no puede obtener servicios de un servidor web. La presentacin de este directorio se puede ocultar en la ficha Directorios del cuadro de dilogo Propiedades de Mdulo Web. El nodo de descriptores de distribucin del mdulo web contiene siempre un archivo descriptor de distribucin llamado web.xml. Necesitan este archivo todos los servidores web habilitados para Java, y lo crea JBuilder cuando se crea el mdulo web. Si se est utilizando el marco de trabajo Struts en el mdulo web, el archivo struts-config.xml se encuentra en el nodo Descriptores de distribucin|<Struts 1.1> del mdulo web. Su servidor web tambin puede necesitar descriptores de distribucin adicionales que sean nicos para ese servidor web en particular. Estos pueden modificarse en JBuilder y se crean si se especifica su necesidad por el plug-in del servidor web actualmente configurado.
C a p tulo 3: L o s m d u l o s w e b y l o s a r c h i v o s W A R
3 -9
E l m d u l o w e b y s u s p r o p i e d a d e s
Compruebe la documentacin de su servidor web para averiguar qu descriptores de distribucin requiere. JBuilder proporciona un Editor DD de Mdulo Web que permite modificar el archivo web.xml y un Editor de configuracin de Struts que permite modificar el archivo struts-config.xml. Tambin puede modificar descriptores de distribucin especficos del servidor en JBuilder. Es necesario establecer ciertas correspondencias en el archivo web.xml para que el mdulo web funcione de la forma esperada en el IDE de JBuilder. Estas asignaciones se crean automticamente cuando se utilizan los asistentes de JBuilder para crear las partes del mdulo web. Pueden necesitarse otras asignaciones cuando se distribuya la aplicacin. Si desea ms informacin sobre los descriptores de distribucin y Editor DD de Mdulo Web, consulte el Captulo 10, Modificacin del archivo web.xml.
s s s
s
Distribuir
La ficha Mdulo
La ficha Mdulo del cuadro de dilogo Propiedades de Mdulo Web indica el nombre, la ubicacin del directorio, la ubicacin del directorio del recopilatorio WAR y los estndares seleccionados del mdulo web. Una casilla de seleccin permite indicar si se desea incluir la documentacin del proyecto en el recopilatorio. Si se activa esta casilla se puede especificar el nombre del directorio para la documentacin. La ficha Tipos de archivo incluidos contiene los tipos de archivo que se incluyen tanto para la exploracin de archivos como para la generacin del archivo WAR. Slo se incluirn los tipos de archivo que estn seleccionados, dependiendo de sus extensiones.
3-1 0
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
E l m d u l o w e b y s u s p r o p i e d a d e s
Las extensiones de archivo asociadas a cada tipo de archivo se pueden ver y modificar mediante Herramientas|Preferencias|Visualizador|Tipos de archivo. Una casilla de seleccin permite indicar si se desea comprimir el contenido del recopilatorio. Figura 3.2 Ficha Mdulo del cuadro de dilogo Propiedades de Mdulo Web
Consulte
s
Creacin de mdulos web con el Asistente para mdulos web en la pgina 3-3.
La ficha Web
La ficha Web permite configurar la raz de contexto del mdulo web. La raz de contexto es el directorio bajo el que se distribuye el mdulo en el servidor. Esta ficha tambin permite seleccionar los marcos de trabajo JSP/Servlet que se van a utilizar en el mdulo web. La ficha cuenta automticamente con cuatro marcos de trabajo que se suministran con JBuilder: Cocoon, InternetBeans Express, JSTL (Biblioteca de etiquetas estndar para pginas JavaServer) y Struts. Si utiliza el cuadro de dilogo Configurar bibliotecas para aadir marcos de trabajo definidos por el usuario, estos marcos de trabajo estn disponibles en la lista. La lista desplegable URI de inicio se utiliza para especificar el URI que se inicia al ejecutar el mdulo web. Si un mdulo web dispone de un URI de inicio especfico, se puede Ejecutar/Depurar/Optimizar web directamente desde el men contextual del nodo mdulo web del panel del proyecto. Algunos marcos de trabajo, como Cocoon, disponen de una URI de inicio
C a pt u l o 3 : L o s m d u l o s w e b y l o s a r c h i v o s W A R 3 -1 1
E l m d u l o w e b y s u s p r o p i e d a d e s
predilecta, que se establece automticamente cuando se selecciona el marco de trabajo. Esta URI de inicio predilecta se puede redefinir. Si la URI que desea no aparece en la lista desplegable, bsquela pulsando el botn de puntos suspensivos. Figura 3.3 Ficha Web del cuadro de dilogo Propiedades de Mdulo Web
Consulte
s s s s
Presentacin de documentos XML en la Gua del desarrollador de XML Captulo 13, InternetBeans Express Captulo 7, El marco de trabajo Struts en JBuilder Utilizacin del cuadro de dilogo Configurar bibliotecas para gestionar los marcos de trabajo definidos por el usuario en la pgina 6-6
La ficha Limpiar
La ficha Limpiar del cuadro de dilogo Propiedades de Mdulo Web permite aadir, modificar y eliminar los filtros que controlan los archivos y carpetas que se van a eliminar del directorio del mdulo cuando ste se genera.
3-1 2
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
E l m d u l o w e b y s u s p r o p i e d a d e s
Figura 3.4
La ficha Generar
La ficha Generar del cuadro de dilogo Propiedades de Mdulo Web contiene una lista desplegable que indica cundo se genera o se actualiza el recopilatorio web (archivo WAR). La configuracin para crear el recopilatorio corresponde a la lista desplegable Generar rel ecopilatorio web del Asistente para mdulos web. En ocasiones es conveniente desactivar la generacin del recopilatorio web durante el desarrollo, y activarla justo antes de generar el proyecto por ltima vez antes de la distribucin. La casilla de seleccin Sincronizar el directorio del mdulo con el contenido del recopilatorio indica si se actualiza el directorio del mdulo para que refleje fielmente el contenido del recopilatorio cada vez que se genera el recopilatorio web.
C a pt u l o 3 : L o s m d u l o s w e b y l o s a r c h i v o s W A R
3 -1 3
E l m d u l o w e b y s u s p r o p i e d a d e s
Figura 3.5
La ficha Contenido
La ficha Contenido del cuadro de dilogo Propiedades de Mdulo Web est vaca. Sirve para agrupar otras fichas relacionadas con el contenido del mdulo web:
s s s s
La ficha Directorios
La ficha Directorios del cuadro de dilogo Propiedades de Mdulo Web permite aadir, modificar y eliminar los filtros que excluyen archivos y directorios del directorio del mdulo web. Algunos directorios, como el subdirectorio CVS, que aparece en todos los directorios sometidos a control de versiones, no deben incluirse nunca. La ficha Directorios ofrece la posibilidad de especificar una lista de filtros para los directorios que se van a excluir. Algunos directorios estn excluidos por defecto. Por ejemplo, el directorio CVS del sistema de control de versiones CVS est excluido. Si desea incluir un directorio excluido, seleccinelo en la ficha Directorios y pulse el botn Eliminar para eliminar el filtro de exclusin que se le aplica.
3-1 4
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
E l m d u l o w e b y s u s p r o p i e d a d e s
Figura 3.6
La ficha Clases
La ficha Clases controla qu clases y recursos de Java se copian en el subdirectorio de WEB-INF/classes relativo al directorio raz del proyecto en el disco (utilizado durante el desarrollo) y al subdirectorio WEB-INF/classes del archivo WAR generado. La ficha Clases ofrece las siguientes funciones:
s s
La capacidad de especificar los archivos que se excluyen. La capacidad de especificar los filtros de inclusin y exclusin, y dnde permiten los filtros la utilizacin de comodines y recursividad. La capacidad de colocar archivos desde cualquier ubicacin en el archivo WAR.
Pueden existir filtros de inclusin y de exclusin. La sintaxis de un filtro es parecida a la de una plantilla Ant. Es un patrn de correspondencia de archivos que admite *, ** y ? como comodines.
s s s s
* - coincide con 0 o ms caracteres. ** - coincide con todos los directorios a partir de ese punto. ? - coincide con un solo carcter. ! - niega el filtro.
Todos los filtros se aplican de forma relativa, en la va de salida de archivos generados del proyecto de JBuilder. Ejemplos de filtros tpicos:
s s
**/Test*.class - Filtro para todas las clases de prueba de un proyecto. **/*BeanInfo.class - Filtro para todas las clases BeanInfo.
C a pt u l o 3 : L o s m d u l o s w e b y l o s a r c h i v o s W A R 3 -1 5
E l m d u l o w e b y s u s p r o p i e d a d e s
s s
**/*Color??.gif - Filtro para todas las imgenes BeanInfo. com/mycompany/servlet/*.class - Filtro para todas las clases del paquete com.mycompany.servlet.
En los ejemplos anteriores no se especifica si los filtros son de exclusin o de inclusin. Segn la situacin, un filtro determinado se puede utilizar para incluir o para excluir archivos. Los filtros slo funcionan correctamente si se observan las convenciones de escritura de cdigo correspondientes. Por ejemplo, el primer filtro de los ejemplos anteriores slo funcionar correctamente si todos los nombres de clases de prueba y slo los nombres de clases de prueba, empiezan con Test. El cuadro de lista de la ficha Clases recoge los filtros y archivos. Cada filtro del cuadro de lista tiene un icono junto a l que indica si se trata de un filtro de inclusin o de un filtro de exclusin. Cada archivo tiene un icono de archivo junto a l.
Nota
Si la opcin Archivo de clase Java no est seleccionada en la lista Tipos de archivo incluidos de la ficha Mdulo del cuadro de dilogo Propiedades de Mdulo Web, los filtros de esta ficha se obvian. En el caso de los archivos aadidos con el botn Aadir archivos, es posible incluir un archivo desde una ubicacin y especificar su nombre y va de acceso de destino. En otras palabras, el archivo abc/goo/abc.txt se puede escribir en el recopilatorio como bz/def.txt. En el cuadro de lista, los archivos muestran su va de acceso de destino (bz/ def.txt en el ejemplo anterior). La ayuda inmediata muestra el archivo fuente. Los archivos que coinciden con un patrn de filtro de exclusin no se incluyen nunca, aun si cumplen con un patrn de filtro de inclusin. La regla de filtros que se sigue consiste en que excluir tiene prioridad sobre incluir. Cuando se excluye un archivo no es posible incluirlo posteriormente. Por ejemplo, si se excluyen todas las clases cuyos nombres empiezan por Test, pero se incluyen las clases que cumplan con el filtro de inclusin **/*.class, las clases que empiecen por Test no se incluirn. Los archivos de contenido web no se deben incluir en la ficha Clases. El contenido web se debe colocar en el directorio del mdulo del mdulo web o en uno de sus subdirectorios. Se copia en la ubicacin correspondiente en el archivo WAR cuando ste es generado. Los tipos de archivo considerados contenido web se seleccionan en la ficha Mdulo Web del cuadro de dilogo Propiedades de Mdulo Web. Recuerde que las clases se copian en WEB-INF/classes o en sus subdirectorios. Por lo tanto, las clases que se seleccionen deben ser clases a las que pueda accederse desde el servidor, no clases a las que tenga que prestar servicio el servidor web. Por ejemplo, pueden seleccionarse las clases servlet, pero no las clases applet. Los archivos incluidos en el filtro desde dentro de la va de acceso a fuentes del proyecto se copiarn en su ubicacin correspondiente de WEB-INF/classes. Por ejemplo, /myproject/src/com/whatever/whatever.properties se copia a / WEB-INF/classes/com/whatever/whateverproperties.
3-1 6
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
E l m d u l o w e b y s u s p r o p i e d a d e s
Figura 3.7
La ficha Dependencias
La ficha Dependencias permite indicar qu se hace con las dependencias de las bibliotecas del mdulo web. Generalmente, deber incluir las bibliotecas necesarias. A diferencia de los archivos normales, los archivos JAR de bibliotecas se almacenan tal cual en el directorio WEB-INF/lib (cuando la Configuracin de biblioteca en esta pestaa es Incluir siempre todas las clases y recursos - la configuracin recomendada). Las bibliotecas se configuran por defecto como Incluir todas, excepto las bibliotecas que no necesiten incluirse en el archivo WAR (como lo biblioteca Servlet, proporcionada por el servidor web). Se deben excluir tambin todas las bibliotecas suministradas por el servidor y las que no se utilizan en el mdulo web. La exclusin de estas bibliotecas innecesarias reduce el tamao del archivo WAR y acelera la generacin del mdulo web. La ficha Dependencias del cuadro de dilogo Propiedades de Mdulo Web tiene el mismo aspecto que la ficha Dependencias de cualquier otro tipo de archivo. Si desea ms informacin, consulte el tema de ayuda en pantalla El creador de recopilatorios: determinar cmo tratar las dependencias de las bibliotecas.
C a pt u l o 3 : L o s m d u l o s w e b y l o s a r c h i v o s W A R
3 -1 7
E l m d u l o w e b y s u s p r o p i e d a d e s
Figura 3.8
La ficha Descriptor
La ficha Descriptor del cuadro de dilogo Propiedades de Mdulo Web es igual que la ficha Descriptor de cualquier otro tipo de archivo. Si desea ms informacin, consulte el tema de ayuda en pantalla Creador de recopilatorios: definicin de las opciones del descriptor de recopilatorios. Figura 3.9 Ficha Descriptor del cuadro de dilogo Propiedades de Mdulo Web
3-1 8
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
El archivo WAR
La ficha Distribucin
La ficha Distribucin slo aparece si el servidor seleccionado en la ficha Servidor del cuadro de dilogo Propiedades de proyecto cuenta con un servicio de distribucin. La ficha Distribucin contiene propiedades especficas del servidor, con lo que su contenido vara segn el servidor de aplicaciones que est utilizando. Figura 3.10 Ficha Distribucin del cuadro de dilogo Propiedades de Mdulo Web para Borland Enterprise Server
El archivo WAR
Un archivo WAR es un recopilatorio del mdulo web. La recopilacin en el archivo WAR de todos los archivos y recursos que se necesitan para el mdulo web facilita su distribucin. Asumiendo que todo est correctamente configurado y que todos los recursos necesarios se encuentran en el archivo WAR, todo lo que se necesita para la distribucin es copiar el archivo WAR en la ubicacin correcta del servidor web. Si hay un archivo WAR, aparece un nodo que lo representa debajo del nodo del mdulo web en el rbol del proyecto. Al abrir el nodo del archivo WAR, se muestran sus contenidos en el panel de estructura y tambin se muestran los visualizadores de archivo WAR en el Visualizador de aplicaciones. Los visualizadores del archivo WAR constan de las pestaas Contenido e Histrico.
C a pt u l o 3 : L o s m d u l o s w e b y l o s a r c h i v o s W A R
3 -1 9
El archivo WAR
El nodo del archivo WAR tiene un cuadro de dilogo de Propiedades, al que se accede haciendo clic con el botn derecho sobre el nodo y seleccionando Propiedades. En el cuadro de dilogo Propiedades se puede especificar si el archivo WAR se considera un recurso de Java. Esta es la misma ficha Recursos que est disponible en el cuadro de dilogo Generar propiedades de todos los tipos de archivos distintos de Java. Si desea ms informacin sobre Propiedades de recursos, consulte el apartado Recursos del tema de ayuda en pantalla Ficha Generar (Cuadro de dilogo Propiedades de proyecto). Tenga en cuenta que las propiedades ms importantes del archivo WAR se encuentran en el cuadro de dilogo Propiedades de Mdulo Web. El cuadro de dilogo Propiedades del archivo WAR puede tener tambin una ficha Distribucin, segn el servidor de aplicaciones que haya elegido para su proyecto. Si existe, la ficha Distribucin es la misma ficha Distribucin que aparece en el cuadro de dilogo Propiedades de Mdulo Web. Figura 3.12 Cuadro de dilogo Propiedades del archivo WAR
3-2 0
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
El archivo WAR
Para que JBuilder cree un archivo WAR para un mdulo web es necesario tener un nodo mdulo web en el proyecto. Este mdulo web se puede crear mediante el Asistente para mdulos web, que se encuentra disponible en la galera de objetos. Puede indicar a JBuilder que cree o actualice automticamente un archivo WAR siempre que se genere el proyecto, siempre que se genere el mdulo web, en ambos casos o en ninguno de los dos. Para cambiar la configuracin del archivo WAR del mdulo web:
1 Haga clic con el botn derecho del ratn el nodo mdulo web, en el panel
del proyecto, y seleccione Propiedades en el men.
Al generar el proyecto o el mdulo web Slo al generar el mdulo web Slo al generar el proyecto Nunca
C a pt u l o 3 : L o s m d u l o s w e b y l o s a r c h i v o s W A R
3 -2 1
El archivo WAR
El Asistente para applets no permite que se coloquen los archivos de applet dentro de un mdulo web. Por tanto, es necesario desplazar el archivo HTML del applet y los archivos de clase compilados al directorio raz del mdulo web (o a uno de sus subdirectorios). Dependiendo de a dnde se muevan los archivos de clase, quizs deba modificar el atributo codebase de la etiqueta <applet> de forma que pueda encontrarlos. Si se incluyen archivos de clase applet sueltos (sin recopilar) en un mdulo web, se debe seleccionar Archivo de clase Java como uno de los tipos de archivo incluidos en la ficha Mdulo Web del cuadro de dilogo Propiedades de Mdulo Web. De otra forma, los archivos de clase no se incluirn en el WAR. Tambin se puede poner un archivo JAR de applet en el archivo WAR. Se aplican las mismas reglas. El archivo JAR necesita estar accesible. Esto significa que debe situarse bajo el directorio del mdulo del mdulo web, o de uno de sus subdirectorios, pero no bajo el directorio WEB-INF.
3-2 2
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
Captulo
Captulo 4
Los servlets
Los servlets Java proporcionan un protocolo y un mtodo independiente de las plataformas para crear aplicaciones web sin las limitaciones de rendimiento de los programas CGI. Un servlet se ejecuta dentro de un servidor web y, al contrario que un applet, no necesita una interfaz grfica de usuario. Lo que hacen los servlets es interactuar, por medio de peticiones y respuestas, con el motor de servlets que funciona en el servidor web. Un programa cliente, que puede estar escrito en cualquier lenguaje de programacin, acceder al servidor web y efectuar una solicitud. La solicitud es procesada entonces por el motor de servlets del servidor Web, que la pasa al servlet. Entonces, el servlet, a travs del servidor web, devuelve una respuesta al cliente. En la actualidad, los servlets se utilizan con frecuencia para crear aplicaciones web interactivas. Existe una amplia variedad de servidores web creados por otras compaas con extensiones de motores de servlets: Tomcat (la implementacin de referencias de la API Servlet/JSP), iPlanet de Sun y otros. Los servidores web con motores para servlets, conocidos adems como contenedores servlet, pueden tambin integrarse con servidores de aplicaciones preparados para web. JBuilder Enterprise incluye el Borland Enterprise Server y tambin es compatible con WebLogic, WebSphere e iPlanet de Sun.
Nota
JBuilder Enterprise incorpora Tomcat como el servidor web por defecto. Una ventaja fundamental de la tecnologa servlet es la velocidad. A diferencia de los programas CGI, los servlets se cargan en la memoria una vez y se ejecutan desde la memoria despus de su carga inicial. Los servlets se generan como un hilo y son, por naturaleza, multi-hilo. Y, desde el momento en que estn basados en lenguaje Java, son independientes de la plataforma.
Captulo 4: Los servlets 4 -1
Servlets y JSP
La tecnologa JSP (JavaServer Page - Pgina de servidor Java) es una ampliacin de la tecnologa de servlets, creada especficamente para aceptar el diseo de pginas HTML y XML. La tecnologa JSP facilita la combinacin de datos de plantillas fijas o estticas y contenido dinmico. Incluso aunque los servlets sean suficientes de momento, existen buenas razones para considerar la posibilidad de utilizar la tecnologa JSP como complemento. Para obtener ms informacin sobre la creacin de las JSP. Consulte el Captulo 6, Desarrollo de Pginas JavaServer. Si desea obtener ms informacin sobre los servlets, consulte las siguientes sedes web. Las direcciones y vnculos facilitados son vlidos a la fecha de impresin de este manual. Las sedes web no pertenecen a Borland, por lo que no se puede garantizar su contenido ni su continuidad.
s
Java Servlet Technology en http://java.sun.com/products/servlet/ index.html. Java Servlet Technology: Artculo de fondo en http://java.sun.com/ products/servlet/whitepaper.html. La pgina Java Servlet Technical Resources en http://java.sun.com/ products/servlet/technical.html. La pgina Java Servlet Third-Party Resources en http://java.sun.com/ products/servlet/resources.html. El Servlet Trail del tutorial de Java en http://java.sun.com/docs/books/ tutorial/servlets/index.html.
Tambin puede consultar los siguientes tutoriales con el fin de obtener ms informacin sobre la creacin de servlets en JBuilder:
s s
Captulo 18, Tutorial: Creacin de un servlet simple. Captulo 22, Tutorial: Creacin de un servlet que actualiza un libro de visitas. Captulo 23, Tutorial: Creacin de un servlet con InternetBeans Express.
Servlets y JSP
Las tecnologas JSP y Servlets tienen distintas ventajas. Cmo decidir cul es la ms adecuada para cada situacin?
s
Los servlets son una herramienta de programacin adecuada para las funciones de aplicacin de bajo nivel que no requieren elevadas prestaciones de presentacin. Las pginas JSP constituyen una forma declarativa, centrada en las presentaciones, de enlazar contenido dinmico y lgica de programacin. Las pginas JSP son adecuadas para gestionar la representacin del cdigo HTML que generan las pginas. Estn escritas como pginas similares a las HTML, con una estructura y un contenido que no resultan ajenos a los proveedores de contenido web. Sin embargo, las pginas JSP son mucho ms verstiles que las pginas HTML convencionales. Las
4-2
pginas JSP pueden gestionar cdigo de aplicaciones mediante el uso de componentes JavaBeans, Enterprise JavaBeans (EJB) y etiquetas personalizadas. Tambin se pueden utilizar como componentes de presentaciones modulares y reutilizables, que pueden asociarse con un mecanismo de plantillas. Las pginas JSP se compilan en servlets, por lo que, en teora, se pueden escribir servlets que acepten las aplicaciones web. Sin embargo, la tecnologa JSP se ha desarrollado con el objeto de simplificar el proceso de creacin de pginas separando la presentacin del contenido. En muchas aplicaciones, la respuesta que se enva al cliente es una combinacin de datos de plantilla y datos generados dinmicamente. En estos casos resulta mucho ms fcil trabajar con pginas JSP que hacerlo todo con servlets.
Si desea obtener ms informacin acerca de la Apache Software Foundation y Tomcat, dirjase a http://jakarta.apache.org. Si desea ms informacin sobre JBuilder y los servidores web, consulte JBuilder con Tomcat en Desarrollo de aplicaciones para servidores J2EE.
Existen otros muchos servidores web que admiten los servlets de Sun y las API de JSP. Si desea obtener una lista de estos productos, consulte el tema Servers and Engines en la pgina Servlet Technology Industry Momentum de Sun, en http://java.sun.com/products/servlet/industry.html.
La API de servlet
La API de servlet est contenida en el paquete javax.servlet. Todos los servlets deben implementar, directa o indirectamente, la interfaz javax.servlet.Servlet. Esta interfaz permite al servlet ejecutarse en un motor servlet (una extensin de un navegador web). Tambin define el ciclo de vida de los servlets. La API de servlet est incrustada en muchos servidores web, incluyendo Tomcat, el servidor web por defecto suministrado con JBuilder. La siguiente tabla ofrece una lista de las clases e interfaces utilizadas con ms frecuencia en el paquete servlet y suministra una breve descripcin de cada una.
4 -3
El paquete servlet.HTTP
El paquete javax.servlet.http se utiliza para crear servlets que admiten el protocolo HTTP y la generacin de HTML. El protocolo HTTP utiliza un conjunto de mtodos de solicitudes y de respuestas basadas en texto (mtodos HTTP), que incluyen:
s s s s s s s s
La clase HttpServlet implementa estos mtodos HTTP. Para empezar, simplemente se extiende HttpServlet y se redefinen los mtodos doGet() o doPost(). Con el fin de obtener un mayor control, tambin se pueden redefinir los mtodos doPut() y doDelete(). Si se crea un servlet con el asistente para Servlets de JBuilder, se pueden seleccionar los mtodos que se quieren redefinir y JBuilder genera el esqueleto del cdigo automticamente.
Construir el servlet e inicializarlo con el mtodo init(). Gestionar las llamadas de los clientes al mtodo service(). Dejar fuera de servicio el servlet, destruyndolo con el mtodo destroy() y realiza tareas de liberacin de la memoria no utilizada.
4-4
Una vez que el servlet se ha cargado en memoria, puede residir en un sistema de archivos local, en un sistema de archivos remoto o en una red.
Servlets y multihilo
Tpicamente, los servlets son multihilo, lo que permite que un servlet sencillo gestione mltiples solicitudes de forma concurrente. Como desarrollador, debe hacer que cualquier recurso, tales como archivos, conexiones de red y variables de clase y de instancia del servlet, pueda ser gestionado mediante hilos con garanta. Si desea ms informacin sobre los hilos y su seguridad, consulte Tcnicas de hilos en Procedimientos iniciales con Java. Se puede crear un servlet con un hilo nico, utilizando la interfaz SingleThreadModel. Estas interfaz permite que un servlet responda solamente a una solicitud a la vez. Esto no suele ser prctico para los servlets. Si un servlet est restringido a un solo hilo, el servidor web coloca las solicitudes en cola e inicia otra instancia del servlet para dar respuesta a la demanda.
Destruccin de un servlet
Un motor de servlets no mantiene cargado un servlet durante un cierto perodo de tiempo especificado o durante el tiempo de vida del servidor. Los motores de servlets pueden retirar los servlets en cualquier momento. A causa de ello, se deben programar los servlets de forma que no almacenen informacin de estado. Con el fin de liberar recursos, utilice el mtodo destroy().
S e r v l e t s e s p e c f i c o s p a r a H T T P
Si su servidor web cuenta con la funcionalidad SSI, puede utilizar la etiqueta del <servlet> para preprocesar pginas web. Esta etiqueta debe estar en un archivo con una extensin .shtml. La etiqueta <servlet> informa al servidor web de que un servlet preconfigurado debera cargarse e inicializarse con el conjunto dado de parmetros de configuracin. La salida del servlet se incluye en una respuesta con formato HTML. Al igual que ocurre con la etiqueta <applet>, se pueden utilizar los atributos class y codebase para especificar las ubicaciones del servlet. Un ejemplo de una etiqueta <servlet> es como sigue: <servlet> codebase="" code="dbServlet.Servlet1.class" param1=in param2=out </servlet>
En el caso de los servlets HTTP, los datos de solicitud y respuesta se suministran como datos con el formato MIME. El servlet especifica el tipo de datos y los escribe codificados en ese formato. Eso permite que el servlet reciba datos de entrada de un tipo determinado y devuelva datos con la forma apropiada para esa solicitud.
Como parte de un sistema de introduccin y procesamiento de rdenes, que trabajan con las bases de datos de clientes, productos e inventarios. Por ejemplo, un servlet podra procesar datos, como los de una tarjeta de crdito, y enviarlos (POST) sobre HTTPS utilizando una etiqueta <form> HTML.
4-6
Distribucin de servlets
s
En conjuncin con una applet, como parte de una intranet corporativa, para seguir la trayectoria de la informacin de los empleados o de los historiales de salarios. Como parte de un sistema colaborativo (p.e., un sistema de envo de mensajes) en donde uno o varios servlets manejan solicitudes mltiples de forma concurrente. Como parte de un proceso de equilibrado de carga, en donde los servlets envan solicitudes en cadena. Como un servlet de enlace a HTML, para insertar datos formateados en una pgina web desde una consulta de base de datos o desde una bsqueda en la web, o para crear banners publicitarios con destino personalizado.
Distribucin de servlets
Los servlets pueden distribuirse autnomamente a un servidor web de produccin. Tambin pueden distribuirse como un mdulo J2EE. Un mdulo J2EE consta de uno o ms componentes J2EE del mismo tipo (web, EJB, cliente, etc.) que comparten un descriptor de distribucin. Si desea ms informacin y sugerencias sobre la distribucin, consulte el Captulo 9, Distribucin de aplicaciones web.
4 -7
4-8
Captulo
Captulo 5
En JBuilder Enterprise, puede utilizar el Asistente para servlets con el fin de crear un archivo Java que derive de javax.servlet.http.HttpServlet. El Asistente para servlets de JBuilder crea servlets que generan los siguientes tipos de contenido:
s s s s
HTML: HyperText Markup Language (Lenguaje de marcado de hipertexto). XHTML: una reformulacin de HTML 4.0 como aplicacin de XML. WML: Wireless Markup Language (Lenguaje de marcado inalmbrico). XML: eXtensible Markup Language (Lenguaje de marcado extensible).
Con el Asistente para servlets, tambin se pueden crear servlets estndar, servlets de filtro o servlets de monitor (si su servidor web admite las especificaciones Java Servlets v2.3).
C a p t u l o 5 : L o s s e r v l e t s e n J B u i l d e r
5 -1
Estas opciones estn disponibles solamente si su servidor web admite las especificaciones de Java Servlets v2.3. (Tomcat 4.x es la implementacin de referencia de estas especificaciones.) De otra forma, se crear por defecto un servlet estndar. Tabla 5.1 Opciones de tipo de Servlet Descripcin
Un servlet que no es de filtro ni monitor. La opcin Servlet estndar est disponible siempre que se selecciona el mdulo web <default> o un mdulo web con nombre. Cuando esta opcin se encuentra seleccionada como mdulo web por defecto, el nombre del servlet es por defecto el nombre de la clase simple del servlet, en minsculas (consulte el apartado Ficha Introduzca los detalles de webapp en la pgina 5-8). Si el mdulo web tiene nombre, la direccin URL del servlet (tambin en la ficha Introduzca los detalles de webapp) tiene por defecto el modelo URL: /servletname (todo en minsculas). Un servlet que acta como filtro para otro servlet o para el mdulo web. Adems del nombre, se debe seleccionar un modelo de URL para el otro servlet (que debe tener un nombre). Si est opcin est seleccionada, la ficha Introduzca los detalles de webapp, donde se da nombre al servlet y se especifica la asignacin del filtro, es la otra nica ficha disponible del asistente para servlets. Un servlet que se aade a la lista de monitores del mdulo web. Si selecciona esta opcin, la ficha Introduzca los detalles del servlet monitor es la nica disponible en el Asistente para servlets.
Tipo de servlet
Servlet estndar
Servlet de filtro
Servlet monitor
5-2
Figura 5.1
C a p t u l o 5 : L o s s e r v l e t s e n J B u i l d e r
5 -3
HTML: HyperText Markup Language (Lenguaje de marcado de hipertexto). Un lenguaje de marcas para documentos de hipertexto utilizados en Internet. HTML permite incrustar imgenes, sonidos, videos, campos de formulario y referencias a otros objetos mediante direcciones URL, as como un funciones bsicas de formato de texto. XHTML: una reformulacin de HTML 4.0 como aplicacin de XML. Las etiquetas y los atributos son casi idnticos a los de HTML, pero XHTML es ms estricto y mejor estructurado. Por ejemplo, todas las etiquetas XHTML se escriben en minsculas y todas las etiquetas de apertura deben tener una etiqueta de cierre. XHTML permite a los diseadores web evolucionar hacia una web ms modular y ampliable basada en XML, a la vez que se mantiene la compatibilidad con los navegadores HTML 4 actuales. Se aade al archivo generado .java una lnea de cdigo que indica que DOC TYPE corresponde a XHTML. Su aspecto es el siguiente: private static final String DOC_TYPE = <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n" + " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"; Se aade un texto de las mismas caractersticas en la parte superior del archivo HTML, si se ha generado.
WML: Wireless Markup Language (Lenguaje de marcado inalmbrico). Los archivos WML son archivos de texto normales con contenido XML. Debido a las restricciones de ancho de banda y capacidad de memoria de los dispositivos mviles, el contenido debe compilarse en formato binario compacto para poder suministrarlo a los dispositivos compatibles con WAP (Protocolo de aplicaciones inalmbricas). Para servlets WML, solamente se genera un archivo de clase .java. No existe la opcin de generar archivos HTML con servlets de tipo WML. El archivo de clase .java contiene una lnea de cdigo que indica que el TIPO DE DOCUMENTO es WML y el TIPO DE CONTENIDO es WAP. Tiene el siguiente aspecto: private static final String CONTENT_TYPE = "text/vns.wap.wml"; private static final String DOC_TYPE = "<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.2//EN\"\n" + " \"http://www.wapforum.org/DTD/wml12.dtd\">"; Tambin se aade cdigo que indica que la solicitud GET del servlet se debe ejecutar a peticin del servlet WML. Su aspecto es el siguiente: out.println(<?xml version=\1.0\?>); out.println(DOC_TYPE); out.println("<wml>"); out.println("<card>"); out.println("<p>The servlet has received a GET. This is the reply.</p>"); out.println("</card></wml>");
5-4
XML: eXtensible Markup Language (Lenguaje de marcado extensible). Lenguaje de marcas que permite definir las etiquetas (marcas) necesarias para identificar los datos y el texto de los documentos XML. Si desea ms informacin sobre la compatibilidad de XML en JBuilder, consulte la Introduccin de la Gua del desarrollador de XML. Para servlets XML, se genera una clase .java. La opcin para crear un archivo HTML se elimina. El archivo .java incluye cdigo para identificar el servlet como un servlet-XML. Tiene el siguiente aspecto: private static final String CONTENT_TYPE = "text/xml"; El mtodo doGet() de la versin HTML del servlet se modifica con el cdigo siguiente: out.println(<?xml version=\1.0\?>); if (DOC_TYPE != null) { out.println(DOC_TYPE); }
doPost
doPut
doDelete
C a p t u l o 5 : L o s s e r v l e t s e n J B u i l d e r
5 -5
Se pueden configurar parmetros de comprobacin en la siguiente ficha del asistente, la ficha Introduzca los parmetros de la peticin del servlet. La opcin Generar archivo HTML con el formulario y el atributo action del formulario resultante depende de las selecciones de los mtodos doGet() y doPost(): doGet()
No seleccionado Seleccionados No seleccionado Seleccionados
doPost()
No seleccionado No seleccionado Seleccionados Seleccionados
Result
Opcin Generar archivo HTML con el formulario desactivado. Valor get para el atributo action del formulario generado. Valor post. para el atributo action del formulario generado. Valor post. para el atributo action del formulario generado.
5-6
Figura 5.3
Asistente para servlets - ficha Introduzca los detalles del servlet monitor
Tipo Desc
C a p t u l o 5 : L o s s e r v l e t s e n J B u i l d e r
5 -7
El servlet del tutorial del Captulo 18, Tutorial: Creacin de un servlet simple utiliza un parmetro de tipo String para permitir la introduccin del nombre de usuario. El nombre del parmetro en el archivo HTML es UserName. La variable correspondiente, utilizada en el archivo de clase del servlet, es userName. Figura 5.4 Asistente para servlets ficha Introduzca los parmetros de la peticin del servlet
Si se ha seleccionado Servlet Estndar como tipo de servlet en la ficha Seleccione el nombre y el tipo de servlet del asistente, ste es el Paso 3. Si se ha seleccionado Servlet de filtro, ste es el Paso 2 del asistente.
5-8
Si desea ms informacin sobre la asignacin de nombres de servlet y los patrones URL, consulte Cmo los URL ejecutan los servlets en la pgina 8-10. El campo Nombre se aplica a servlets tanto estndar como de filtro. Este campo se presenta para los servlets estndar que se ejecutan tanto en el mdulo web <default> como en los mdulos web con nombre, y para los servlets de filtro. El asistente sugiere un nombre de servlet que es el mismo que el de la clase en minsculas. Se sugiere el mismo nombre para el URI, precedido por una barra (todas las URI deben comenzar con una barra). Sin embargo, puede cambiar estos nombres por otros, siempre que sean vlidos. Por ejemplo, podra tener el patrn de URL /myhtmlfile.html ejecutando el servlet llamado custlist que realmente es la clase package.subpackage.CustomerList. La entrada en el campo Nombre es el nombre utilizado para identificar al servlet en el archivo web.xml. El nombre se muestra en el nodo Servlets en el panel de estructura para el archivo web.xml. Tambin se utiliza para asignar el patrn de URL al servlet. El patrn de URL se corresponde explcitamente con un servlet mediante el nombre del mismo; no hay una asignacin implcita entre el nombre del servlet y la URL. Por ejemplo, el siguiente URL: http://localhost:8080/guestbook/formservlet genera la siguiente URI (la URI permanece despus de que el protocolo, el nombre de host y el nmero de puerto son eliminados de la URL): /guestbook/formservlet El principio de la URI se compara con todos los nombres de mdulo web conocidos. Una coincidencia hace que la parte restante de la URI se dirija a ese mdulo web o contexto en concreto.
Nota
Si no hay coincidencia de mdulo web o contexto, la URI se pasa tal cual al mdulo web por defecto. La URI es entonces comparada con todos los patrones de URL conocidos. Estos patrones se encuentran en la ficha Servlets del Editor DD de Mdulo Web. Un patrn determinado, tiene un correspondiente nombre de servlet. Ese nombre identifica al servlet, que podra ser tambin un archivo JSP, puesto que stos se compilan en servlets.
Nota
Si pulsa Finalizar antes de llegar a este paso del asistente, se crea una correspondencia de servlets por defecto (/servletname, todo en minscula).
C a p t u l o 5 : L o s s e r v l e t s e n J B u i l d e r
5 -9
Figura 5.5
Asistente para servlets ficha Introduzca los detalles del mdulo web (Servlet estndar)
5-1 0
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
Creacin de una configuracin de ejecucin en la pgina 8-2. Definicin de configuraciones de ejecucin en el captulo Ejecucin de programas en Java de Creacin de aplicaciones con JBuilder. Asistente para Servlets ficha Definir configuracin de servlet
Figura 5.7
Para abrir un servlet desde una ventana del navegador, escriba la URL en el campo de direccin del navegador. Para abrir un servlet desde una pgina HTML, utilice la URL del servlet en una etiqueta HTML.
C a p t u l o 5 : L o s s e r v l e t s e n J B u i l d e r
5 -1 1
http://localhost:8080/servlet/Servlet1 (que se ejecuta en el ordenador local). http://www.borland.com/servlet/Servlet1 (ejecucin desde su URL) http://127.0.0.1/servlet/Servlet1 (que se ejecuta desde esta direccin IP).
Nota
Si se omite el nmero de puerto, el protocolo HTTP escoge por defecto el puerto 80.La primera URL del ejemplo anterior se usara en el IDE si se ha configurado como puerto de configuracin de ejecucin el 80 y no se est ejecutando ya un servidor web en este puerto. Los otros ejemplos se utilizaran en situaciones reales, despus de que la aplicacin web haya sido distribuida en un servidor web. Las direcciones URL de servlets pueden contener consultas para las peticiones HTTP GET. Por ejemplo, el servlet del Captulo 18, Tutorial: Creacin de un servlet simple, se puede ejecutar introduciendo la siguiente URL para el servlet: http://localhost:8080/servlet/simpleservlet.Servlet1?userName=Mary simpleservlet.Servlet1 es el nombre de clase completo. El ? indica que una cadena de consulta se aade a la URL. userName=Mary es el nombre y el valor del parmetro. Si simpleservlet.Servlet1 se asigna al patrn de URL /firstservlet, debera escribir: http://localhost:8080/firstservlet?userName=Mary Si desea ms informacin sobre la forma en que se ejecutan los servlets, consulte Cmo los URL ejecutan los servlets en la pgina 8-10.
5-1 2
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
Internacionalizacin de servlets
Ejemplos de URL de servlets en etiquetas HTML Descripcin <form action="simpleservlet/servlet1 method="post"> <meta http-equiv="refresh" content="4; url=simpleservlet/servlet1">
Nota
Tenga en cuenta que se puede substituir el patrn de URL por el nombre completo de la clase del servlet.
Internacionalizacin de servlets
Los servlets plantean un interesante problema de internacionalizacin. Puesto que el servlet enva al cliente cdigo fuente HTML, si ese cdigo HTML contiene caracteres no disponibles en el juego de caracteres que admite el servidor sobre el que se ejecuta el servlet, podra suceder que el visualizador del cliente fuese incapaz de leerlos. Por ejemplo, si el sistema de codificacin utilizado en el servidor es ISO-8859-1, pero el cdigo HTML generado por el servlet contiene caracteres de doble byte, esos caracteres no aparecern correctamente en el visualizador del cliente, incluso aunque se haya configurado correctamente para visualizarlos. Especificando un tipo de codificacin en el servlet, podemos situar el servlet en cualquier servidor, sin necesidad de conocer el tipo de codificacin que dicho servidor utiliza. Los servlets pueden responder tambin a los datos introducidos por el cliente, y generar cdigo HTML en un determinado idioma. He aqu un ejemplo que muestra cmo especificar el tipo de codificacin dentro del servlet. En el cdigo fuente Java generado por el Asistente para servlets, el mtodo doPost() contiene la siguiente lnea: PrintWriter out = response.getWriter(); Esta lnea puede sustituirse por lo siguiente: OutputStreamWriter writer = new OutputStreamWriter( response.getOutputStream(), "encoding"); PrintWriter out = new PrintWriter(writer);
C a p t u l o 5 : L o s s e r v l e t s e n J B u i l d e r
5 -1 3
El segundo argumento del constructor OutputStreamWriter es una cadena que representa el tipo de codificacin deseado. Esta cadena puede residir en un recurso, estar codificada directamente en el programa, o definirse mediante una variable. Una llamada a System.getProperty("file encoding") devuelve una cadena que representa el tipo de codificacin utilizado por el sistema. Si en la llamada al constructor OutputStreamWriter slo se especifica el primer argumento, se emplear el tipo de codificacin actual.
5-1 4
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
Captulo
Captulo 6
La tecnologa de Pginas JavaServer (JSP) permite a los programadores y diseadores de web desarrollar rpidamente y mantener con facilidad el contenido de pginas web dinmicas y ricas en informacin, que aprovechan los sistemas empresariales existentes. La tecnologa JSP, que forma parte de la familia Java, permite desarrollar con rapidez aplicaciones web que se ejecutan en cualquier sistema informtico. En teora, la tecnologa de Pginas JavaServer separa la interfaz de usuario de la generacin de los contenidos, lo que permite cambiar el diseo general de la pgina sin alterar el contenido dinmico subyacente. En la prctica, se necesita una pequea planificacin y algunos estndares de codificacin para asegurarse de que el HTML se diferencie claramente del cdigo Java en la JSP, ya que ambos residen en el mismo archivo. Los diseadores web que manejan la parte de HTML debern tener una mnima idea de qu etiquetas se refieren al cdigo Java incrustado, con el fin de evitar problemas a la hora de disear la IU. La tecnologa de Pginas JavaServer utiliza etiquetas estilo XML y scriptlets escritos en el lenguaje de programacin Java, para encapsular el cdigo que genera el contenido de la pgina. Adems, el cdigo de la aplicacin puede encontrarse en recursos situados en el servidor (como la arquitectura de componentes JavaBeans) a los que accede la pgina mediante estas etiquetas y scriptlets. Devuelve cualquier etiqueta de formato (HTML o XML) directamente a la pgina de respuesta. Al separar la lgica de la pgina de su diseo y al aceptar un diseo reutilizable basado en componentes, la tecnologa JSP agiliza y facilita ms que nunca la creacin de aplicaciones web.
C a p t u l o 6 : D e s a r r o l l o d e P g i n a s J a v a S e r v e r 6 -1
D e s a r r o l l o d e Pg i n a s J a v a S e r v e r
La tecnologa JSP es una extensin de la API para servlets Java. La tecnologa JSP suministra esencialmente una forma simplificada de escribir servlets. Los servlets son mdulos de servidor que se ejecutan en cualquier sistema informtico, escritos al 100% en Java, que encajan directamente en el entorno de servidor web y se pueden utilizar para ampliar sus funciones con un mnimo de gastos y mantenimiento. A diferencia de otros lenguajes de guin, los servlets no implican consideraciones o modificaciones especficas con la plataforma. Juntos, la tecnologa JSP y los servlets proporcionan una atractiva alternativa a otros tipos de guin/programacin de web dinmica. La tecnologa JSP y los servlets ofrecen independencia de plataforma, prestaciones mejoradas, separacin entre lgica y presentacin, facilidad de administracin, capacidad de ampliacin en la empresa y, lo ms importante, facilidad de uso. El sistema JSP se parece mucho a las ASP (pginas del servidor Active) de Microsoft. La principal diferencia entre las JSP y las ASP es que los objetos manejados en el primero de los sistemas son JavaBeans, que son independientes de plataforma. ASP maneja objetos COM, por lo que depende completamente de las plataformas Microsoft. Todo lo que se necesita para una JSP es una pgina basada en la tecnologa JSP. Las pginas JSP incluyen etiquetas, declaraciones y en ocasiones scriptlets propios de JSP, en combinacin con contenidos estticos (HTML o XML). Una pgina JSP tiene como extensin .jsp; esto indica al servidor web que el motor compatible con tecnologa JSP procesar elementos en esta pgina. Una JSP opcionalmente tambin puede utilizar una o ms JavaBeans en archivos.java independientes. Cuando se compila una JSP mediante el motor de JSP en el servidor web, se convierte en un servlet. Como desarrollador, habitualmente no ver el cdigo del servlet generado. Esto significa que cuando se compilan JSP en JBuilder IDE, se pueden ver mensajes de error que se refieren directamente al servlet generado y slo indirectamente al cdigo de la JSP. Recuerde que si tiene mensajes de error cuando compile su JSP, podran referirse a lneas de cdigo del servlet generado. Ser mas fcil identificar los problema en su JSP si tiene una clara nocin de cmo las JSP se traducen en servlets. Para conseguirlo, se necesita conocer la API JSP. Cuando JBuilder compila las JSP, traslada las ubicaciones del servlet generado de nuevo a las ubicaciones de la JSP originaria. Lo que significa que hacer clic en un error en el panel de estructura o en la vista de mensajes, le llevar directamente a la ubicacin correspondiente de la JSP. Cuando el servidor web compila la JSP, no obstante, no realiza esta traslacin. Cuando vea un seguimiento de la pila en el navegador o en Vista web, o en la salida del servidor web, el nombre de archivo y los nmeros de lnea no estn traducidos. Las JSP estn evolucionando de tal forma que ya no contienen nada de cdigo Java y slo utilizan bibliotecas de etiquetas. Por ejemplo, la JavaServer Pages Standard Tag Library (Biblioteca de etiquetas estndar para pginas JavaServer, JSTL) cuenta con etiquetas para condiciones y bucles, que sustituyen al cdigo Java. El marco de trabajo Struts tambin
6-2
Etiquetas JSP
separa el cdigo Java del HTML. Para obtener ms informacin sobre Struts, consulte el Captulo 7, El marco de trabajo Struts en JBuilder. El Captulo 19, Tutorial: Creacin de una JSP mediante el Asistente para JSP, muestra cmo crear una JSP utilizando el Asistente para JSP como punto de partida. Si desea visitar otras pginas que contienen ms informacin sobre la tecnologa de pginas JavaServer, consulte Recursos adicionales de JSP en la pgina 6-17.
Etiquetas JSP
Una JSP incluye habitualmente numerosas etiquetas especializadas que contienen cdigo Java o fragmentos de cdigo Java. Esta es una lista de algunas de las etiquetas JSP ms importantes: Tabla 6.1 Etiquetas JSP habituales Descripcin
Etiqueta Scriptlet. Contiene un fragmento de cdigo, que contiene una o ms lneas de cdigo que pueden aparecer normalmente dentro del cuerpo de un mtodo en una aplicacin Java. No se necesita declarar ningn mtodo, ya que estos fragmentos de cdigo se convierten en parte del mtodo service() del servlet cuando se compila la JSP. Declaracin de mtodos o de variables. Cuando se declara un mtodo en esta etiqueta, el mtodo completo debe estar contenido en la etiqueta. Se compila en una declaracin de mtodo o variable en el servlet. Comentario. Este es un comentario de estilo de JSP que no se pasa al navegador cliente. (Tambin se pueden usar comentarios HTML, pero estos pasan al navegador cliente.) Expresin. Contiene una expresin vlida de Java. El resultado se presenta en ese punto de la pgina. Directiva page. Especifica atributos de la pgina JSP. Directivas como sta y como la directiva taglib deben estar en las primeras lneas de la JSP. Uno de los atributos ms comunes que se especifican en la directiva page es una sentencia de importacin. Ejemplo: <%@ page
C a p t u l o 6 : D e s a r r o l l o d e P g i n a s J a v a S e r v e r
6 -3
La especificacin JSP incluye etiquetas estndares para la utilizacin y manipulacin de beans. La etiqueta useBean crea una instancia de una clase de JavaBeans especfica. Si la instancia ya existe, se recupera. Si no existe, se crea. Las etiquetas setProperty y getProperty permiten manipular propiedades del bean determinado. stas y otras etiquetas se describen ms detalladamente en la especificacin JSP y la gua del usuario, que se encuentra en http://java.sun.com/products/jsp/techinfo.html. Es importante tener en cuenta que la mayora del cdigo Java contenido en las etiquetas de la JSP se convierte en parte del mtodo service() del servlet cuando la JSP se compila en un servlet. Esto no incluye el cdigo contenido en las etiquetas de declaracin, que se convierten en declaraciones de mtodos o de variables por derecho propio. Se llama al mtodo service() cada vez que el cliente hace un GET o un POST.
Struts El marco de trabajo Struts ofrece un concepto de diseo de software basado en Modelo 2 o Controlador Modelo-Vista. JSTL (Biblioteca de etiquetas estndar para pginas JavaServer): JSTL proporciona un modo estndar de llevar a cabo las tareas de codificacin ms habituales mediante sencillas etiquetas. Puede encontrar ms informacin en http://java.sun.com/products/jsp/jstl. InternetBeans Express - InternetBeans Express es una biblioteca de componentes Borland que facilita la creacin de JSP y servlets enlazados a datos.
6-4
JSP en JBuilder
Consulte
s
Las bibliotecas de etiquetas JSP y los marcos de trabajo en JBuilder en la pgina 6-5. Captulo 7, El marco de trabajo Struts en JBuilder. Captulo 13, InternetBeans Express.
s s
JSP en JBuilder
JBuilder ofrece un completo sistema de desarrollo para JSP. A continuacin se incluye una lista de las funciones de desarrollo de JSP de JBuilder.
s
Compatibilidad con los marcos de trabajo y las bibliotecas de etiquetas JSP. JSP TagInsight para completar etiquetas especficas de JSP. Depuracin del archivo JSP. Depuracin remota de JSP. Ejecucin y comprobacin de JSP desde el entorno de desarrollo de JBuilder en cualquier motor de servlets compatible con JSP para el que hay disponible un plug-in de servidor. Un Asistente para JSP para crear una JSP que pueda admitir uno o ms marcos de trabajo.
s s s s
Nota
El cuadro de dilogo Configurar bibliotecas permite gestionar los marcos de trabajo y las bibliotecas de etiquetas definidas por el usuario. El Asistente para mdulos web permite seleccionar uno o varios marcos de trabajo con el fin de utilizarlos en el mdulo web. El asistente aade las bibliotecas del marco de trabajo seleccionado al mdulo web, aade las bibliotecas de etiquetas necesarias, aade las entradas requeridas al archivo web.xml y copia los JAR del marco de trabajo a WEB-INF/lib. Tambin es posible aadir los nodos dependientes al panel del proyecto e, incluso, aadir archivos de configuracin si se necesitan. Todo esto contribuye a garantizar que el marco de trabajo se distribuye correctamente y que se puede utilizar al ejecutar el mdulo web en el IDE de JBuilder. El Asistente para JSP permite seleccionar una o ms bibliotecas de etiquetas con el fin de utilizarlas en la JSP que genera el asistente. El asistente aade las directivas page y taglib adecuadas a la JSP generada.
C a p t u l o 6 : D e s a r r o l l o d e P g i n a s J a v a S e r v e r
6 -5
JSP en JBuilder
Consulte
s
Creacin de mdulos web con el Asistente para mdulos web en la pgina 3-3. Creacin de una JSP mediante el Asistente para JSP en la pgina 6-11. Utilizacin del cuadro de dilogo Configurar bibliotecas para gestionar los marcos de trabajo definidos por el usuario en la pgina 6-6. TagInsight en Introduccin a JBuilder.
s s
Utilizacin del cuadro de dilogo Configurar bibliotecas para gestionar los marcos de trabajo definidos por el usuario
Cocoon es una funcin de JBuilder Enterprise.
La pestaa Marco de trabajo del cuadro de dilogo Configurar bibliotecas (Herramientas|Configurar bibliotecas) permite configurar las bibliotecas de etiquetas JSP definidad por el usuario con el fin de utilizarlos con las JSP en JBuilder. Un marco de trabajo consta de una biblioteca de etiquetas y elementos especficos de taglib contenidos en un archivo JAR. Los siguientes marcos de trabajo se suministran con JBuilder, y no es necesario que se configuren:
s s s s
Estos marcos de trabajo se encuentran disponibles directamente en los asistentes adecuados. Por ejemplo, si selecciona el Asistente para JSP, los marcos de trabajo InternetBeans, JSTL y Struts estn disponibles en la lista Bibliotecas de etiqueta, de la ficha Introducir detalles del archivo JSP del asistente. Las bibliotecas de etiquetas definidas por el usuario tambin estn disponibles en el Asistente para mdulos web y en el Asistente para JSP si la biblioteca de etiquetas est configurada correctamente mediante el cuadro de dilogo Configurar bibliotecas.
6-6
JSP en JBuilder
4 Pulse Aadir para aadir los archivos JAR que contienen la biblioteca de
etiquetas. Busque cada archivo JAR, seleccinelo y pulse Aceptar.
C a p t u l o 6 : D e s a r r o l l o d e P g i n a s J a v a S e r v e r
6 -7
JSP en JBuilder
11 Pulse Aceptar otra vez, con el fin de cerrar el cuadro de dilogo Configurar
bibliotecas.
Nota
Si modifica una definicin de biblioteca, se arriesga a daar algn proyecto que utilice esa biblioteca. Para modificar las propiedades de una biblioteca de etiquetas en un marco de trabajo:
6-8
JSP en JBuilder
3 Pulse sobre la pestaa Marco de trabajo. 4 En la pestaa Bibliotecas de etiquetas JSP, seleccione la definicin de
biblioteca de etiquetas que desee modificar.
Nota
Si no aparece la pestaa Biblioteca de etiquetas JSP, significa que el marco de trabajo seleccionado no contiene bibliotecas de etiquetas JSP o que no se pueden modificar.
6 Cambie el Archivo TLD, Nombre, Prefijo, URI o Ubicacin y pulse Aceptar. 7 Pulse de nuevo Aceptar para guardar los cambios y cerrar el cuadro de
dilogo Configurar bibliotecas.
Nota
3 Pulse sobre la pestaa Marco de trabajo. 4 En la pestaa Bibliotecas de etiquetas JSP, seleccione la definicin de
biblioteca de etiquetas que desee eliminar.
Nota
Si no aparece la pestaa Biblioteca de etiquetas JSP, significa que el marco de trabajo seleccionado no contiene bibliotecas de etiquetas JSP o que no se pueden modificar.
5 Pulse Eliminar. 6 Si desea eliminar toda la biblioteca, elija la biblioteca a la izquierda del
cuadro y pulse Borrar en la parte inferior izquierda.
C a p t u l o 6 : D e s a r r o l l o d e P g i n a s J a v a S e r v e r
6 -9
JSP en JBuilder
Una JSP. Una JSP incluye etiquetas especficas de la tecnologa JSP, declaraciones y posiblemente scriptlets, junto a otras etiquetas estticas (HTML o XML). El archivo JSP tiene la extensin .jsp. Este archivo se crea siempre con el asistente para JSP. Un archivo Java. Este archivo es optativo y lo puede crear el asistente activando Generar bean de ejemplo. El archivo Java contiene un JavaBean que el archivo JSP utiliza.
6-1 0
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
JSP en JBuilder
s
Una pgina JSP de errores. El asistente para Pginas JavaServer puede crear optativamente una pgina de error que muestra los errores de tiempo de ejecucin, de una manera til y ordenada.
En el Asistente para JSP se puede especificar a qu mdulo web pertenece la JSP, si se debe configurar la JSP para utilizar una o varias de las bibliotecas de etiquetas disponibles, y si la JSP utiliza JavaBeans. Puede tambin crear una configuracin de ejecucin para su JSP.
Consulte
s s
Asistente para JSP en la ayuda en pantalla. Captulo 19, Tutorial: Creacin de una JSP mediante el Asistente para JSP.
2 Seleccione Pgina JavaServer. Pulse Aceptar. 3 Seleccione el mdulo web que contendr la nueva JSP. Si en el proyecto
slo hay un mdulo web, la lista desplegable Mdulo Web est desactivada. Cuando se pulsa el botn Nuevo se inicia el Asistente para mdulos web.
4 Defina un nombre para la JSP. Tenga en cuenta que puede crear una JSP
en un subdirectorio del mdulo web si escribe el nombre del directorio con una barra delante.
Si est marcado Generar bean de ejemplo, el asistente crea un JavaBean de ejemplo que puede utilizar la JSP. Si se marca esta opcin, se aade un paso al asistente. Si se marca Generar pgina de error, el asistente crea una pgina de error que muestra los errores de ejecucin de un modo til y ordenado. Si se marca esta opcin, se aade un paso al asistente.
Pulse Siguiente para pasar al siguiente paso. Tambin puede pulsar Finalizar para evitar los pasos restantes, cerrar el asistente y crear la JSP.
6 Seleccione el color de fondo para la JSP. 7 Marque Generar formulario de envo si desea que el Asistente para JSP
genere una etiqueta HTML <form> en el archivo JSP.
C a pt u l o 6 : D e s a r r o l l o d e P g i n a s J a v a S e r v e r
6 -1 1
JSP en JBuilder
asistente aade las directivas apropiadas page y taglib para las bibliotecas de etiquetas seleccionadas en la JSP creada. Las bibliotecas de etiquetas para los marcos de trabajo InternetBeans Express, Struts y JSTL estn disponibles automticamente. Tambin estn disponibles todas las bibliotecas de etiquetas definidas por el usuario que haya aadido en el cuadro de dilogo Configurar bibliotecas. Cuando termine de seleccionar bibliotecas de etiquetas, pulse Siguiente para dirigirse al siguiente paso. Tambin puede pulsar Finalizar para evitar los pasos restantes, cerrar el asistente y crear la JSP.
10 Utilice los botones Aadir Bean y Eliminar Bean con el fin de determinar los
JavaBeans que desea que utilice la JSP. Si ha marcado Generar Bean de ejemplo en el primer paso del asistente, el bean de ejemplo ya se encuentra en este paso. El asistente genera una etiqueta jsp:useBean para cada JavaBean que especifique. Puede modificar el ID y el mbito de los beans. El ID debe ser un nombre de variable Java vlido. No puede especificar un ID duplicado o en blanco. Los valores disponibles para mbito son Pgina, Solicitud, Sesin y Aplicacin. Cuando termine de especificar los JavaBeans, pulse Siguiente para dirigirse al siguiente paso. Tambin puede pulsar Finalizar para evitar los pasos restantes, cerrar el asistente y crear la JSP.
6-1 2
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
JSP en JBuilder
Consulte
s s
Asistente para JSP en la ayuda en pantalla. Captulo 19, Tutorial: Creacin de una JSP mediante el Asistente para JSP. Utilizacin del cuadro de dilogo Configurar bibliotecas para gestionar los marcos de trabajo definidos por el usuario en la pgina 6-6. Las bibliotecas de etiquetas JSP y los marcos de trabajo en JBuilder en la pgina 6-5. El marco de trabajo Struts en JBuilder en la pgina 7-1. Captulo 13, InternetBeans Express.
s s
1 Seleccione Proyecto|Propiedades de proyecto. 2 Seleccione la ficha Generar. 3 Seleccione Comprobar errores en JSP durante la generacin. 4 Pulse Aceptar.
Puede configurar esta propiedad por cada archivo JSP de su proyecto mediante el men contextual de las JSP en el panel del proyecto. Esto le permite excluir determinados archivos JSP de la compilacin. Por ejemplo, es probable que las JSP cuya finalidad es la de incluirse en otras JSP no se compilen correctamente por s solas, por lo que se deben excluir esos archivos. Para compilar su proyecto, incluidas las JSP configuradas para compilarse en la generacin, seleccione Proyecto|Ejecutar Make del proyecto o Proyecto| Generar el proyecto. Si desea ms informacin sobre la compilacin de las pginas JSP, consulte Compilacin de servlets o JSP en la pgina 8-15.
C a pt u l o 6 : D e s a r r o l l o d e P g i n a s J a v a S e r v e r
JSP en JBuilder
Servidor
Borland Enterprise Server AppServer Edition 5.2.1 (basado en Tomcat 4.1) Weblogic 6,1 SP 5 Weblogic 7.0 SP 4 Weblogic 8.1 SP 0/SP 1 WebSphere 4.0.6 AE WebSphere 4.0.6 AES WebSphere 5.0.2 JBoss 3x+ iPlanet 6.0/6.5 Tomcat 3.3.1 autnomo Tomcat 4.0.6 autnomo Tomcat 4.1.27 autnomo
Importante
Tomcat 4.1 y Jetty (utilizado por JBoss) no admiten la depuracin del cdigo fuente JSP, ya que ambos utilizan Jasper. Para corregir este problema, haga lo siguiente:
6-1 4
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
JSP en JBuilder
El nombre del archivo en el mensaje de error puede ser el nombre de la JSP generada o el nombre de un archivo de clase de una de las bibliotecas de servidor, Servlet o JSP.
JSP en JBuilder
ejecutando directamente la JSP, y no desde un recopilatorio, slo tiene que realizar un cambio en el archivo y guardarlo. El servidor detectar que la JSP ha cambiado y volver a compilarla, conservando los puntos de interrupcin y de observacin. En el caso de otros servidores, puede que sea necesario que la JSP se vuelva a recopilar y distribuir.
6-1 6
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
Es posible obtener una descripcin de la sintaxis JSP en formato HTML en http://java.sun.com/products/jsp/tags/tags.html. En http://java.sun.com/products/jsp/technical.html puede encontrar una tarjeta de sintaxis de JSP en formato PDF, que se puede abrir con Adobe Acrobat Reader. Esta pgina contiene tambin otros recursos tcnicos sobre la tecnologa JSP. Consulte las FAQs sobre las JSP en java.sun.com. Dirija el navegador a http://java.sun.com/products/jsp/faq.html. La actual especificacin JSP se puede leer en el sitio web java.sun.com, en http://java.sun.com/products/jsp/download.html. GNUJSP es una implementacin gratuita de JavaServer Pages de Sun. Si desea ms informacin sobre el compilador GNUJSP, visite http:// klomp.org/gnujsp. Puede encontrar un servidor de lista sobre las JSP en JSP-INTEREST@JAVA.SUN.COM. Para poder suscribirse a la lista de correo, enve un mensaje a listserv@java.sun.com con el siguiente contenido: subscribe jsp-interest Nombre completo o busque informacin en el sitio web java.sun.com.
C a pt u l o 6 : D e s a r r o l l o d e P g i n a s J a v a S e r v e r
6 -1 7
6-1 8
Captulo
Captulo 7
El marco de trabajo de cdigo abierto Struts se basa en el concepto de diseo de software Modelo 2 o Controlador Modelo-Vista. El marco de trabajo Modelo 2 evolucion a partir del diseo de Modelo 1, que inclua tecnologa Pginas JavaServer. Esta tecnologa ofreca grandes avances a partir de servlets sencillos, mientras que la presentacin HTML se codificaba mediante extensas sentencias out.println en mtodos doGet() y doPut(). Las JSP ofrecan un modo de incluir HTML en cdigo Java y viceversa. Sin embargo, estas JSP son difciles de leer y de mantener. Es necesario que tanto diseadores como desarrolladores trabajen en el mismo conjunto de archivos fuente. El marco de trabajo Struts, desarrollado inicialmente en 2001, combina lo mejor de los servlets y las JSP. Este marco de trabajo consiste en un paradigma de diseo de tres niveles: el Controlador, el Modelo y la vista Modelo 2. Struts incorpora su propio componente Controlador y se integra con otras tecnologas con el fin de proporcionar el Modelo y la Vista. Si desea obtener ms informacin, consulte The Jakarta Project: Struts en http:// jakarta.apache.org/struts/index.html. Esta pgina contiene enlaces a la Struts Users Guide, a los artculos Struts, a programas de ejemplo y a los tutoriales. Struts 1.1 se instala en la carpeta <jbuilder>/thirdparty. Por defecto, el archivo descriptor de distribucin de Struts se llama struts-config.xml. Las ubicaciones de los archivos se recogen en el parmetro config para el ActionServlet de Struts del archivo web.xml. Se puede dar al archivo de configuracin de Struts 1.1 cualquier nombre vlido, y puede haber varios archivos descriptores de distribucin. Tenga en cuenta que los archivos
C a pt u l o 7 : E l m a r c o d e t r a b a j o S t r u t s e n J B u i l d e r 7 -1
descriptores de distribucin deben estar en el directorio WEB-INF o en uno de sus subdirectorios. Los asistentes para Struts (Asistente para Action, Asistente para ActionForm y Asistente para JSP a partir de ActionForm) permiten elegir el archivo descriptor de distribucin que se utiliza.
Nota
Si ya hay un proyecto Struts 1.0 y desea continuar usando Struts 1.0, cree una biblioteca Struts 1.0.2 (Herramientas|Configurar bibliotecas), abra el proyecto Struts 1.0 en JBuilder e incluya en l la nueva biblioteca (Propiedades de proyecto|Vas de acceso|Bibliotecas necesarias|Aadir). Una vez creada esta biblioteca, aparece una opcin Struts 1.0 en el Asistente para mdulos web y en el Asistente para JSP. Tenga en cuenta que puede utilizar Struts 1.1 para mdulos web Struts 1.0; Struts 1.1 es compatible con las versiones anteriores. Tanto Struts 1.0 como Struts 1.1 utilizan un archivo struts.jar. Para la distribucin, este archivo se copia en el directorio WEB-INF/lib. En teora, para admitir las dos versiones de Struts en la misma aplicacin web, se puede cambiar el nombre de uno de los archivos JAR del directorio WEB-INF/lib. Sin embargo, esto no es recomendable. JBuilder puede detectar qu versin de Struts est en uso y mostrar el nmero de versin en el panel del proyecto en forma de carpeta. Los asistentes preparados para Struts tambin pueden detectar posibles conflictos entre ambas versiones y evitarlos.
Vista en el Panel del proyecto Adicin de descriptores de distribucin Struts al mdulo web Registro de descriptores de distribucin Struts Aceptacin del marco de trabajo Struts Asistente para mdulos web Asistente para JSP Asistente para Action Asistente para ActionForm Asistente para JSP a partir de ActionForm Asistente para conversin de Struts Editor de configuracin de Struts El Editor de configuracin de Tiles Diseadores Struts
Mientras se crea una aplicacin web preparada para Struts con las herramientas y asistentes de JBuilder, se va implementando el marco de trabajo Struts. ste actualiza el archivo web.xml, crea los archivos descriptores de distribucin struts-config.xml y tiles-def.xml y los copia en el directorio
7-2
WEB-INF. JBuilder tambin copia los archivos TLD Struts en el directorio WEB-INF, y aade mapeos TLD al archivo web.xml. Adems, aade la biblioteca Struts al proyecto e incluye automticamente todas las dependencias del mdulo web.
JBuilder admite numerosas subaplicaciones para Struts 1.1. Por ejemplo, si el mdulo web incluye una subaplicacin llamada cart que contiene dos acciones, add.do y empty.do, en Directorio del mdulo se muestra una subcarpeta cart con las dos acciones. Los elementos de Tiles agrupados en subaplicaciones tambin se muestran en una subcarpeta de Directorio del mdulo. Por ejemplo, las definiciones de Tiles cart.list y cart.item se muestran en la subcarpeta cart.
C a pt u l o 7 : E l m a r c o d e t r a b a j o S t r u t s e n J B u i l d e r
7 -3
Esta ficha del asistente slo aade un archivo de configuracin de cada tipo al mdulo web que se est creando. Se pueden aadir manualmente otros archivos descriptores de distribucin al directorio WEB-INF del mdulo web en el directorio del proyecto. Una vez aadidos los archivos, es necesario registrarlos, tal y como se describe en el siguiente apartado. (Struts 1.0 slo admite un archivo struts-config.xml.)
Cuando se registra un archivo es necesario que apunte hacia un archivo descriptor de distribucin ya creado con un DTD vlido. Este cuadro de dilogo no se puede utilizar para crear archivos DTD.
7-4
1 Haga clic con el botn derecho del ratn en la carpeta Struts del nodo
mdulo web, en el panel del proyecto, y seleccione Propiedades. Se muestra el cuadro de dilogo Propiedades de Struts. (Si se est utilizando Struts 1.0, slo aparece la mitad superior de este cuadro de dilogo.)
C a pt u l o 7 : E l m a r c o d e t r a b a j o S t r u t s e n J B u i l d e r
7 -5
Tiles es una funcin de Struts 1.1. Para registrar un archivo tiles-def.xml en un archivo descriptor de distribucin de Struts, pulse el botn Aadir, en la mitad inferior del cuadro de dilogo Propiedades de Struts. JBuilder abre el cuadro de dilogo Seleccione archivo de configuracin de Tiles, en el que se puede elegir el archivo de configuracin que se desea aadir.
7 Pulse Aceptar despus de seleccionar un archivo. 8 En el cuadro de dilogo Propiedades de Struts, pulse el botn Volver a
examinar los archivos descriptores para que JBuilder vuelva a examinar el archivo struts-config.xml. Pulse Aceptar para cerrar el cuadro de dilogo y guardar el archivo de configuracin. Si se observa el cdigo fuente de struts-config.xml, se ve que se ha aadido el nuevo archivo de configuracin de Tiles.
7-6
Struts JSTL InternetBeans Express Cocoon (Cocoon es una funcin de JBuilder Enterprise)
En el siguiente cuadro se muestra el marco de trabajo Struts que aparece en la pestaa del cuadro de dilogo Configurar bibliotecas. Figura 7.2 Marco de trabajo Struts en Configurar bibliotecas
Observe cmo aparecen las bibliotecas de etiquetas Struts en la pestaa Bibliotecas de etiquetas JSP de la pestaa Marco de trabajo.
s
Si desea ms informacin sobre bibliotecas en JBuilder y el cuadro de dilogo Configurar bibliotecas, consulte Las bibliotecas en Creacin de aplicaciones con JBuilder. Si desea ms informacin sobre las JSP y las bibliotecas de etiquetas, consulte Las bibliotecas de etiquetas JSP y los marcos de trabajo en JBuilder en la pgina 6-5.
C a pt u l o 7 : E l m a r c o d e t r a b a j o S t r u t s e n J B u i l d e r
7 -7
Nota
Se puede utilizar ms de un marco de trabajo en una aplicacin web. Por ejemplo, es posible utilizar Cocoon, Struts y JSTL. Si se selecciona el marco de trabajo Struts, JBuilder aade correspondencias al archivo web.xml. Los archivos *.tld por defecto se copian en el directorio WEB-INF y sus correspondencias se aaden al archivo web.xml. JBuilder crea el archivo struts-config.xml y lo muestra en el nodo de Struts del mdulo web. En el disco, se encuentra en el directorio WEB-INF. Los archivos de configuracin de Tiles y Validation tambin se colocan en la carpeta WEB-INF del mdulo web. En el panel del proyecto aparecen en el nodo Struts.
Sugerencia
En el caso de Struts 1.1 se pueden crear tantos archivos descriptores de distribucin como se desee para un determinado mdulo web. Sin embargo, slo se puede aadir uno a un mdulo web mediante el Asistente para mdulos web. Los dems se aaden al proyecto manualmente; hay que colocarlos en el directorio WEB-INF del mdulo web, en el disco, y a continuacin registrarlos en el archivo struts-config.xml. Si desea ms informacin, consulte Adicin de descriptores de distribucin Struts al mdulo web en la pgina 7-4 y Registro de descriptores de distribucin Struts en la pgina 7-4.
7-8
Una vez creada la aplicacin web, se pueden cambiar las propiedades del nodo, incluida la seleccin del marco de trabajo. Para ello, haga clic con el botn derecho del ratn en el panel del proyecto y seleccione Propiedades. El marco de trabajo se puede cambiar en el nodo Web del cuadro de dilogo Propiedades de Mdulo web.
Importante
Para generar una aplicacin web, lo primero que se ha de hacer es crear un mdulo web. Si desea ms informacin sobre los pasos necesarios para crear una aplicacin web de Struts, consulte Creacin de una aplicacin web preparada para Struts en JBuilder en la pgina 7-19.
Las bibliotecas de etiquetas se seleccionan marcando la casilla junto a la que desee utilizar. Puede elegir cualquier biblioteca de etiquetas, no es necesario que la que elija est ya preparada para la aplicacin web.
Importante
Si desea ms informacin sobre los pasos necesarios para crear una aplicacin web de Struts, consulte Creacin de una aplicacin web preparada para Struts en JBuilder en la pgina 7-19.
C a pt u l o 7 : E l m a r c o d e t r a b a j o S t r u t s e n J B u i l d e r
7 -9
7-1 0
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
C a pt u l o 7 : E l m a r c o d e t r a b a j o S t r u t s e n J B u i l d e r
7 -1 1
Nota
Si el nombre de la clase ActionForm que seleccione ya existe y es una ActionForm vlida, se le solicita que importe los campos existentes de ActionForm. Esto resulta de gran utilidad para poder ampliar un formulario ya existente o para generar un formulario que ocupa varias JSP. Si elige no importar estos campos, el archivo original no se elimina, pero todos los mtodos de obtencin y definicin sern suprimidos y sustituidos por los campos de la lista final. Se conservan los dems mtodos adicionales. Si se eliminaran los campos, aparecera un mensaje de advertencia recordndole que tiene que reparar el mtodo validate(). Despus de introducir todos los campos, el asistente genera la ActionForm y la registra en el archivo struts-config.xml seleccionado.
7-1 2
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
C a pt u l o 7 : E l m a r c o d e t r a b a j o S t r u t s e n J B u i l d e r
7 -1 3
Figura 7.10 Ficha Mdulo web, JSP y ActionForm Asistente para JSP a partir de ActionForm
7-1 4
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
Cambia el nombre de archivos .html por archivos .jsp si es necesario. Permite seleccionar las etiquetas convertibles Struts que se convierten realmente. Lee y analiza el HTML ya creado e identifica las etiquetas. Sustituye las etiquetas adecuadas por etiquetas Struts. Incluye las importaciones que requiera Struts. Escribe el archivo final, conservando al mximo la estructura y el contenido originales.
s s s s
Advertencia
El archivo que crea el Asistente para conversin de Struts sustituye a su archivo original. Sin embargo, puede utilizar la vista del histrico de JBuilder para recuperarlo. El Asistente para conversin a Struts se encuentra disponible en el nodo Web de la galera de objetos. Tambin est disponible desde el men contextual
C a pt u l o 7 : E l m a r c o d e t r a b a j o S t r u t s e n J B u i l d e r
7 -1 5
del editor cuando se abre una JSP o archivo HTML. Si abre el asistente desde el men contextual, el archivo a convertir se recoge en la lista Archivos JSP y HTML para su conversin en Struts, de la primera ficha del asistente.
7-1 6
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
Figura 7.14 Ficha Etiquetas que se han de convertir Asistente para conversin a Struts
C a pt u l o 7 : E l m a r c o d e t r a b a j o S t r u t s e n J B u i l d e r
7 -1 7
Si desea ms informacin sobre el Editor de configuracin de Struts, consulte el Captulo 11, Modificacin del archivo struts-config.xml. Se proporcionan diseadores de arrastre para los elementos <form-beans> y <action> del archivo de configuracin de Struts. Estos diseadores visuales permiten manipular elementos de la aplicacin web. Los diagramas muestran JSP, Form Beans, actions, forwards y exceptions, y permiten mover, aadir y eliminar elementos. Si desea ms informacin sobre los diseadores de Struts, consulte el Captulo 12, Los diseadores de Struts.
7-1 8
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
Tiles es una funcin de Struts 1.1. El Editor de configuracin de Tiles permite modificar el archivo tiles-def.xml. Este archivo es un descriptor de distribucin de la capa Tiles, o de presentacin, de la aplicacin. Debe encontrarse en el directorio WEB-INF o en uno de sus subdirectorios. (Tenga en cuenta que Struts 1.1 es compatible con varios archivos descriptores de distribucin. Al descriptor de distribucin de Tiles se le puede asignar cualquier nombre de archivo, pero el tipo de archivo debe ser .xml.) Si desea ms informacin, consulte Modificacin del archivo tiles-def.xml en la pgina 11-34. Tambin existe un diseador visual para el archivo tiles-def.xml. Consulte el Captulo 12, Los diseadores de Struts, para obtener ms informacin. Si el editor tiene el foco, se puede pulsar F1 para obtener ayuda sensible al contexto.
1 Cree un proyecto y active un servidor. 2 Utilice el Asistente para mdulos web (Archivo|Nuevo|Web|Mdulo Web
(WAR)) para crear el mdulo web preparado para Struts:
C a pt u l o 7 : E l m a r c o d e t r a b a j o S t r u t s e n J B u i l d e r
7 -1 9
C r e a c i n d e u n a a p l i c a c i n w e b p r e p a r a d a p a r a S t r u t s e n J B u i l d e r
b En la ficha Modificar los detalles del archivo JSP, elija el color de fondo
deseado. No genere un formulario de envo. Desplcese por la lista Bibliotecas de etiqueta hasta que aparezcan las bibliotecas de etiquetas Struts. Seleccione las bibliotecas de etiquetas Struts que vaya a utilizar con esta JSP:
s
struts-beans: etiquetas para mostrar datos a partir de JavaBeans, como los devueltos por una consulta a una base de datos. struts-html: etiquetas para sustituir la mayora de los elementos HTML. struts-logic: etiquetas para realizar iteraciones y procesamiento condicional de datos de vista, como la presentacin de la informacin de una base de datos en formato de tabla. struts-template: etiquetas para importar fragmentos de cdigo a pginas JSP; por ejemplo, el logotipo y cabecera de una empresa que aparecen en todas las pginas de una sede web. struts-tiles: etiquetas que combinan tiles, los componentes de presentacin, en una vista final compuesta. struts-nested: etiquetas que permiten utilizar beans anidados.
7-2 0
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
Nota
Si no utiliza etiquetas Struts en la JSP, puede utilizar el Asistente para conversin a Struts para convertir las etiquetas HTML de la JSP a Struts.
C a pt u l o 7 : E l m a r c o d e t r a b a j o S t r u t s e n J B u i l d e r
7 -2 1
C r e a c i n d e u n a a p l i c a c i n w e b p r e p a r a d a p a r a S t r u t s e n J B u i l d e r
7-2 2
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
4 Pulse Finalizar para cerrar el asistente y crear el proyecto. 5 Seleccione Proyecto|Proppiedades de proyecto|Servidor para abrir el nodo
Servidor, en el que se selecciona un servidor para el proyecto. Seleccione Tomcat 4.0 en la lista desplegable Servidor nico para todos los servicios del proyecto, tal como se muestra en la siguiente imagen:
C a pt u l o 7 : E l m a r c o d e t r a b a j o S t r u t s e n J B u i l d e r
7 -2 3
C r e a c i n d e u n a a p l i c a c i n w e b p r e p a r a d a p a r a S t r u t s e n J B u i l d e r
7-2 4
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
11 Pulse Finalizar para crear el mdulo web. El nodo mdulo web, WebModule1
aparece en el panel del proyecto. Ample el nodo para ver los nodos Descriptores de distribucin y Directorio del mdulo. Observe que los elementos relacionados con Struts, como las acciones y las definiciones, se agrupan en la carpeta Directorio del mdulo.
Para ejecutar el proyecto en JBuilder es necesario crear una configuracin de ejecucin. Para ello:
C r e a c i n d e u n a a p l i c a c i n w e b p r e p a r a d a p a r a S t r u t s e n J B u i l d e r
3 Escriba RunBlankProject en el campo Nombre. 4 Seleccione Servidor en la lista desplegable Tipo. 5 Elija el servicio JSP/Servlet en la lista Categora de la parte izquierda del
cuadro de dilogo.
7-2 6
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
Nota
Pueden aparecer mensajes informativos de Tomcat con texto en rojo. Estos mensajes se pueden obviar. Los mensajes que se muestran se guardan en el archivo application.properties, y los llaman las directivas de JSP del archivo welcome.jsp. Este proyecto se puede utilizar como punto de partida para una aplicacin web Struts.
C a pt u l o 7 : E l m a r c o d e t r a b a j o S t r u t s e n J B u i l d e r
7 -2 7
7-2 8
Captulo
Captulo 8
JBuilder proporciona comandos en el men contextual del panel del proyecto que facilitan la ejecucin y depuracin de servlets y JSP. Ejecutar web ejecuta su servlet o JSP mediante la configuracin de ejecucin del servidor seleccionado. Depurar web depura la JSP o los servlets mediante la configuracin de ejecucin del servidor seleccionado con opciones de depuracin, permitiendo la ejecucin paso a paso y la verificacin del cdigo de forma sencilla. Optimizar web ejecuta el servidor con un optimizador/ perfilador como OptimizeIt (necesita tener uno instalado). Los comandos web muestran las configuraciones de ejecucin disponibles en el proyecto. Mediante la seleccin de Ejecutar web o Depurar web se ejecuta o se depura el servlet o la JSP en su contexto de mdulo web. Si el archivo JSP, HTML o SHTML no est en un mdulo web, no es posible ejecutarlo ni depurarlo en web y en el men contextual no aparecen los comandos Ejecutar web y Depurar web. Para obtener ms informacin sobre los mdulos de pginas web, consulte El mdulo web y sus propiedades en la pgina 3-7.
Nota
Si se establece un URI de inicio para un mdulo web (en el Asistente para mdulos web), se puede ejecutar la el mdulo desde esa ubicacin, desde el men contextual del nodo del mdulo web. De esta forma, si la aplicacin tiene una punto de inicio obvio, se puede ejecutar, depurar y optimizar sin necesidad de profundizar en el contenido web. Cuando se crea un servlet o una JSP utilizando el Asistente para servlets o JSP de JBuilder, los comandos Ejecutar web y Depurar web se activan automticamente.
C a pt u l o 8 : L a s a p l i c a c i o n e s w e b e n I D E d e J B u i l d e r
8 -1
C r e a c i n d e u n a c o n f i g u r a c i n d e e j e c u c i n
Importante
Las applets no pueden ejecutarse o depurarse. Esto se debe a que no tienen una URL o un contexto web en el que ejecutarse. Adems, las applets se ejecutan en el navegador de un cliente, en lugar de un servidor. Habitualmente, un applet se ejecuta en appletviewer, de Sun, o en AppletTestbed, de JBuilder. Si desea ms informacin, consulte El Appletestbed de JBuilder y el appletviewer de Sun en la pgina 14-20. Antes de que pueda ejecutar su applet, servlet o JSP, necesita crear una configuracin de ejecucin. Para los servlets no creados con el asistente, tambin necesita configurar propiedades de ejecucin. Despus, una vez compile su servlet o JSP, ya podr ejecutarlo.
Cuando crea una configuracin de ejecucin del applet con el asistente, el ejecutor de applet se activa. El applet se ejecuta en el visualizador de applets
8-2
C r e a c i n d e u n a c o n f i g u r a c i n d e e j e c u c i n
de JBuilder, AppletTestbed, mediante el archivo de clase de applet. (Observe que no puede Ejecutar web o Depurar web un applet porque no inicia un servidor para ejecutarse, se ejecuta en un navegador. Adems, las applets no cuentan con un contexto web en el que ejecutarse.) Si desea ms informacin, consulte Creacin de una configuracin de ejecucin en la pgina 8-2. Cuando crea una configuracin de ejecucin de servlet con el asistente, el ejecutor de servidor se activa. El servidor seleccionado en el nodo Propiedades de proyecto|Servidor se convierte en el servidor web activo. El URI que se debe ejecutar se toma de la entrada del campo Patrn de URL de la Ficha Introduzca los detalles de webappIntroduzca los detalles de webapp del Asistente para servlets y desde el mdulo web del servlet. Si desea ms informacin, consulte Creacin de una configuracin de ejecucin del servidor en la pgina 8-5. Cuando crea una configuracin de ejecucin de JSP con el asistente, el ejecutor de servidor se activa. El servidor seleccionado en la ficha Servidor de Propiedades de Proyecto se convierte en el servidor web activo. El URI que se debe ejecutar se toma del mdulo web y del nombre de archivo JSP. Si desea ms informacin, consulte Inicio del servidor web en la pgina 8-17.
C a pt u l o 8 : L a s a p l i c a c i o n e s w e b e n I D E d e J B u i l d e r
8 -3
C r e a c i n d e u n a c o n f i g u r a c i n d e e j e c u c i n
3 Introduzca el nombre de la configuracin en el campo Nombre. 4 Elija el tipo de generacin que desee ejecutar antes de iniciar. Si desea ms informacin, consulte Tipos de generacin en el captulo Creacin de aplicaciones con JBuilder. 5 Seleccione Applet en la lista desplegable Tipo. 6 Elija Clase principal con el fin de ejecutar el applet en AppletTestbed de
JBuilder. Cuando se crea un applet mediante el Asistente para applets, ste fija la clase principal automticamente. La clase seleccionada debe contener un mtodo init(). Busque la clase principal pulsando el botn con puntos suspensivos (...) y seleccione la clase en el cuadro de dilogo Seleccionar clase principal del proyecto.
Si ejecuta el applet desde la pgina HTML, no necesita declarar parmetros, porque ya estn configurados en la pgina HTML.
8-4
C r e a c i n d e u n a c o n f i g u r a c i n d e e j e c u c i n
AppletTestbed, de JBuilder. Si desea ms informacin, consulte El Appletestbed de JBuilder y el appletviewer de Sun en la pgina 14-20. Si desea obtener informacin sobre las configuraciones de ejecucin, consulte Definicin de las configuraciones de ejecucin en el captulo Ejecucin de programas en Java de Creacin de aplicaciones con JBuilder.
Antes de configurar el servidor, es necesario que verifique que hay un servidor activado para su proyecto. Para ello:
Si la opcin Servidor nico para todos los servicios del proyecto est activada, compruebe que en la lista desplegable se ha seleccionado el nombre de un servidor. Asegrese de que el servidor seleccionado admite el servicio JSP/Servlet. La casilla de seleccin de ese servicio debe activarse en la lista Servicios. Si el servidor no admite el servicio JSP/Servlet, ese servicio no estar disponible. Si est seleccionada la opcin Servicios modulares de distintos servidores, seleccione el servicio JSP/Servlet en la lista Servicios. Elija un servidor en la lista desplegable de la parte derecha de la ficha y asegrese de que no est seleccionado <Ninguno>. Observe que el servidor seleccionado puede permitir que los servicios estn desactivados durante la ejecucin. Por ejemplo, Borland Enterprise Server AppServer Edition 5.2.1 lo permite. Asegrese de que el servicio JSP/Servlet no ha sido deshabilitado en la configuracin de ejecucin, puesto que si es as, los comandos web no estarn disponibles.
C a pt u l o 8 : L a s a p l i c a c i o n e s w e b e n I D E d e J B u i l d e r 8 -5
Nota
C r e a c i n d e u n a c o n f i g u r a c i n d e e j e c u c i n
Si cuenta con dos servidores diferentes en el mismo proyecto, necesitar dos configuraciones diferentes de ejecucin, una para cada servidor. Para crear una configuracin de ejecucin del servidor:
3 Introduzca el nombre de la configuracin en el campo Nombre. 4 Elija el tipo de generacin que desee ejecutar antes de iniciar. Si desea ms informacin, consulte Tipos de generacin en el captulo Desarrollo de aplicaciones para servidores J2EE. 5 Seleccione Servidor en la lista desplegable Tipo.
8-6
C r e a c i n d e u n a c o n f i g u r a c i n d e e j e c u c i n
7 Para elegir el servlet o la JSP que se desea iniciar, pulse el botn puntos
suspensivos (...) a la derecha del campo URI de inicio. Se presenta el cuadro de dilogo Escriba o seleccione el URI que se va a lanzar. El servlet o JSP se ejecuta a travs de un URI, de modo que la atencin cambie a la vista de web al utilizar el comando Ejecutar web.
C a pt u l o 8 : L a s a p l i c a c i o n e s w e b e n I D E d e J B u i l d e r
8 -7
C r e a c i n d e u n a c o n f i g u r a c i n d e e j e c u c i n
Es posible introducir directamente el URI (Universal Resource Identifier Identificador universal de recursos) en el campo de texto URI de la parte superior del cuadro de dilogo o seleccionar el mdulo web y el URI en los rboles de la parte inferior del cuadro de dilogo:
Descripcin
Todos los archivos de tipo HTML del mdulo web seleccionado. Todos los valores de modelo de URL que no contienen comodines. Permite que un usuario llame a un servlet o a una pgina JSP por su nombre. Este se introdujo en los campos Nombre/ Patrn de URL del Asistente para servlets ficha Introduzca los detalles de webapp. Todas las clases en el proyecto abierto; no obstante, se asume que las clases presentadas son servlets y se ejecutan utilizando el invocador de servlets del servidor Web.
Servlet mapeo
/selectedwebmodule/login.jsp /selectedwebmodule/form
o bien
/selectedwebmodule/table
Servlet Clase
/selectedwebmodule/servlet/ com.test.MyServlet
8-8
C r e a c i n d e u n a c o n f i g u r a c i n d e e j e c u c i n
El URI se aade al hostname:port durante la ejecucin, por ejemplo: http://localhost:8080/selectedwebmodule/hello.html http://localhost:8080/selectedwebmodule/login.jsp http://localhost:8080/selectedwebmodule/form http://localhost:8080/selectedwebmodule/table http://localhost:8080/selectedwebmodule/servlet/com.test.MyServlet
C a pt u l o 8 : L a s a p l i c a c i o n e s w e b e n I D E d e J B u i l d e r
8 -9
C r e a c i n d e u n a c o n f i g u r a c i n d e e j e c u c i n
se cierre de manera adecuada. Esta opcin funciona junto con las opciones de Vista web del nodo Web del cuadro de dilogo Herramientas| Preferencias cuando un proceso ajeno a la web utiliza el puerto. Consulte Configuracin del IDE para ejecutar/depurar web en la pgina 8-14 para obtener ms informacin.
Nota
Esta opcin no est disponible si se utiliza JBuilder Developer con el contenedor web de Borland Enterprise Server AppServer Edition 5.2.1. Si el contenedor web est configurado para el uso en JBuilder Developer, se lee el puerto de Tomcat para el servicio JSP/Servlet y no se puede cambiar. Para crear una configuracin de ejecucin con opciones de depuracin:
2 Si desea obtener informacin sobre las opciones, consulte Configuracin de opciones de depuracin en Creacin de aplicaciones con JBuilderDepuracin de programas en JBUilder.
Cuando termine, pulse Aceptar para cerrar el cuadro de dilogo Nueva configuracin de ejecucin Pulse Aceptar de nuevo para cerrar el cuadro de dilogo Configuraciones de ejecucin y guardar la configuracin de ejecucin.
8-1 0
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
C r e a c i n d e u n a c o n f i g u r a c i n d e e j e c u c i n
nombres se asocian con los directorios raz de los mdulos web. Para obtener ms informacin sobre mdulos web, consulte Los mdulos web en la pgina 3-1. Si coincide, la primera parte de la va de acceso a URI de solicitud se convierte en la va de acceso de contexto. La parte restante de la va de acceso, que empieza con la barra, se convierte en la va de acceso a la URL a asignar. Si no hay coincidencia, la va de acceso de contexto es una cadena vaca y la va completa de acceso a URI de solicitud se considera la va de acceso a la URL que se asignar. Por ejemplo, en un proyecto con un solo mdulo web denominado myprojectwebmodule, la va de acceso a URI de solicitud /myprojectwebmodule/ subpackage/somename.jsp se evaluara como sigue:
s s
La va de acceso de contexto sera /myprojectwebmodule. La va de acceso a la URL que se debe asignar sera /subpackage/ somename.jsp.
No obstante, la va de acceso a URI de solicitud /test/subpackage/somename.jsp no contendra ninguna va de acceso de contexto en la evaluacin, dado que el nico mdulo web existente es myprojectwebmodule. En este caso, la va de acceso de contexto estara vaca y la va de acceso a la URL a asignar sera el URI completo: /test/subpackage/somename.jsp. Advierta que la configuracin del contexto se hace de forma especfica para el servidor. Sin embargo, la coincidencia de la va de acceso a la URL que se debe asignar se realiza por medio de las entradas que establecen la correspondencia entre servlet y cada descriptor de distribucin de mdulo web estndar del contexto, el archivo web.xml: cada correspondencia de servlet tiene dos partes: un patrn de URL y un nombre de servlet. Existen tres tipos especiales de patrones de URL: Tabla 8.2 Patrones de URL Descripcin
Comienza con / y acaba con /* Empieza con *. Slo incluye /
Tipo de modelo
Asignacin de la va de acceso Asignacin de extensin Asignacin por defecto
Nota
Hay tres rboles en la parte inferior del cuadro de dilogo URI de inicio que se corresponden aproximadamente con los tres tipos diferentes de asignaciones. Si desea obtener detalles ms concretos sobre el funcionamiento de estas correspondencias en el cuadro de dilogo URI de inicio, consulte Creacin de una configuracin de ejecucin en la pgina 8-2. Las dems cadenas de patrn de URL se utilizan solamente para coincidencias exactas. Cuando se busca la coincidencia de la va de acceso a la URL que se asigna, primero se intenta una coincidencia exacta. Por ejemplo, si el mdulo web somewebmodule incluye un patrn de URL /test/ jspname.jsp, se utilizara el servlet correspondiente.
C a p t u l o 8 : L a s a p l i c a c i o n e s w e b e n I D E d e J B u i l d e r
8 -1 1
C r e a c i n d e u n a c o n f i g u r a c i n d e e j e c u c i n
Si no hay coincidencia exacta, se intenta una coincidencia de la va de acceso, empezando por la va de acceso ms larga. En el contexto por defecto, el patrn de URL /test/* sera la primera coincidencia. Si no hay coincidencia de la va de acceso, entonces se intenta una coincidencia de la extensin. El patrn de URL *.jsp coincidira en ambos casos con las dos vas de acceso a la URI de solicitud siguientes: /testwebmodule/subpackage/jspname.jsp y /myprojectwebmodule/anyfolder/ myjsp.jsp. Finalmente, si no hay coincidencia en la extensin, se utiliza el servlet asignado a / (el servlet por defecto). La mayora de los servidores web ya tienen algunas asignaciones por defecto, efectuadas de nuevo de forma especfica para el servidor. Por ejemplo, *.jsp puede ser asignado a un servlet:
1 Toma lo que sigue a /servlet/ como un nombre de clase. 2 Trata de ejecutar esa clase como un servlet.
El servlet por defecto (el que est asignado al patrn de URL /):
3 Lo enva al visualizador.
Cuando se crea un servlet estndar con el Asistente para servlets, no hay la ms mnima necesidad de crear una correspondencia. Por ejemplo, con el nombre myproject.MyServlet, el Asistente para servlets:
C o n f i g u r a c i n d e p r o p i e d a d e s d e e j e c u c i n
Cuando ejecuta un archivo servlet .java (o .class), se utiliza el invocador del servlet si no se encuentra un patrn de URL exacto para esa clase de servlet. En el ejemplo anterior, una ejecucin web con el mdulo web test ejecutara / test/myservlet/myproject.MyServlet.
1 Haga clic con el botn derecho del ratn en el archivo .java en el panel del
proyecto.
C o n f i g u r a c i n d e l I D E p a r a e j e c u t a r / d e p u r a r w e b
La opcin Buscar puerto disponible no se encuentra disponible si se utiliza JBuilder Developer con el contenedor web de Borland Enterprise Server AppServer Edition 5.2.1.
s
La opcin Ejecutar en proceso separado y usar vista web inicia siempre un nuevo proceso de servidor y utiliza la vista web para abrir la URL correspondiente. Si la opcin Buscar puerto disponible se encuentra
8-1 4
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
desactivada y ya se est ejecutando un servidor, la apertura falla porque no es posible ejecutar dos servidores en el mismo puerto.
s
La opcin Utilizar vista web con el proceso si es posible comprueba si se est ejecutando un servidor. Si es as, se formula y se solicita al servidor la direccin URL adecuada. JBuilder cambia a Ver web y solicita el URL, de forma que permite ver la pgina sin necesidad de escribir la direccin URL. Si JBuilder no ha iniciado an un servidor, se inicia otro proceso y se utiliza Ver web, como ocurre con la opcin Ejecutar en proceso separado y usar vista web. sta es la opcin por defecto. La opcin No usar vista web, ejecutar en proceso separado no utiliza nunca la vista web incorporada. Se debe utilizar esta opcin si Ver web no puede gestionar la pgina porque contiene, por ejemplo, hojas de estilo o cdigo JavaScript. Cuando se utiliza esta opcin, JBuilder inicia el servidor y se formula la direccin URL adecuada. No solicita la URL y cambia a Ver web, sino que se puede cambiar a I.E. o Netscape y pegar la direccin en el campo Direccin URL. Normalmente, esta opcin se utiliza junto con Copiar URL de depuracin o ejecucin web al portapapeles, de forma que resulta fcil pegar la direccin URL en el campo Ubicacin.
C a p t u l o 8 : L a s a p l i c a c i o n e s w e b e n I D E d e J B u i l d e r
8 -1 5
E j e c u c i n web de un s e r v l e t o u n a J S P
Se puede configurar esta propiedad para los archivos JSP individuales del proyecto, de manera que se puedan excluir algunos archivos de la compilacin. Por ejemplo, es probable que las JSP cuya finalidad es la de incluirse en otras JSP no se compilen correctamente por s solas, por lo que se deben excluir esos archivos.
En JBuilder Developer slo se puede marcar como destino del proyecto el contenedor web de Borland Enterprise Server AppServer Edition 5.2.1. Para ello, slo es necesario seleccionar Borland Enterprise Server AppServer Edition 5.2.1 en el nodo Servidor del cuadro de dilogo Propiedades de proyecto.
8-1 6
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
Para ejecutar una aplicacin web es necesario crear una configuracin de ejecucin con el tipo de servidor seleccionado como ejecutor actual. Ese servidor debe admitir el servicio JSP/Servlet que se recoge en el nodo Propiedades de proyecto|Servidor. Si desea crear una configuracin de ejecucin, consulte Creacin de una configuracin de ejecucin en la pgina 8-2.
Nota
Las applets no pueden ejecutarse o depurarse. Esto se debe a que no tienen una URL o un contexto web en el que ejecutarse. Adems, las applets se ejecutan en el navegador de un cliente, en lugar de un servidor. Habitualmente, un applet se ejecuta en appletviewer, de Sun, o en AppletTestbed, de JBuilder. Si desea ms informacin, consulte El Appletestbed de JBuilder y el appletviewer de Sun en la pgina 14-20.
La configuracin de ejecucin (si desea ms informacin, consulte Creacin de una configuracin de ejecucin en la pgina 8-2). Las opciones configuradas en el nodo Web del cuadro de dilogo Herramientas|Preferencias (si desea ms informacin, consulte Configuracin del IDE para ejecutar/depurar web en la pgina 8-14).
Los mensajes se registran en la pestaa Servidor web, mostrada en el panel de mensajes al final del Visualizador de aplicaciones. Los comandos HTTP y los valores de los parmetros se envan a este panel. El nombre de la pestaa reflejar el del servidor web, por ejemplo, Tomcat en el caso del servidor web Tomcat.
Nota
Cuando ejecute un servlet o JSP utilizando el servidor web iPlanet, ver dos nuevas pestaas en el panel de mensajes. Una es para la fase de preparacin de iPlanet y muestra la lnea de comando utilizada para configurar el servidor web. La otra es para la salida del propio servidor. Ambas pestaas se llaman iPlanet. A continuacin, se muestra un ejemplo de salida del panel de mensajes del servidor web Tomcat: Figura 8.1 Mensajes Tomcat
C a p t u l o 8 : L a s a p l i c a c i o n e s w e b e n I D E d e J B u i l d e r
8 -1 7
E j e c u c i n web de un s e r v l e t o u n a J S P
Cuando se inicia la Ejecucin web, aparecen dos nuevas pestaas en el panel de contenido: Vista web y Ver cdigo fuente web. Haga clic en la pestaa para abrir Vista web o Ver cdigo fuente web.
Ver web
La salida con formato puede verse en el panel Ver web del panel de contenido. La URL generada aparece en el campo Ubicacin, en la parte superior de la ficha Vista web.
Importante
El navegador utilizado en el panel de vista web no es un navegador web con todas las funciones. La vista web muestra el servlet despus de que haya sido procesado por el motor de servlets. Puede haber algn retraso entre el momento en que se modifica el archivo de servlet o JSP y el momento en que se muestra ese cambio en Ver web. Con el fin de ver los cambios ms recientes, pulse el botn Actualizar, en la parte superior de la Vista web. El panel Ver web es simplemente un navegador y no tiene relacin con otras funciones de JBuilder. Por ejemplo, puede ver su salida formateada en un navegador externo a JBuilder. Las opciones de la ficha Web del cuadro de dilogo Preferencias agiliza el uso reiterado de esta funcin. Consulte Configuracin del IDE para ejecutar/depurar web en la pgina 8-14 para obtener ms informacin. A continuacin aparece la salida de la vista web de un servlet que se ejecuta en Tomcat: Figura 8.2 Salida de Vista web
8-1 8
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
La primera vez que se pulsa el botn Terminar el programa, simplemente enva un comando al servidor para que se apague. Concretamente, si se intentan depurar los manejadores de sucesos del ciclo de vida del mdulo web, se realiza una llamada a los mtodos Servlet.destroy() y ServletContextListener.contextDestroyed(). Si no est depurando, el servidor, por lo general, se apaga por s solo (Tomcat lo hace en unos segundos; a otros servidores les lleva ms tiempo). En cualquier caso, si se pulsa el botn Terminar programa una segunda vez, el proceso que est realizando el servidor se termina inmediatamente.
C a p t u l o 8 : L a s a p l i c a c i o n e s w e b e n I D E d e J B u i l d e r
8 -1 9
JBuilder proporciona la posibilidad de depuracin del cdigo fuente para las JSP. Esto permite efectuar directamente un seguimiento del cdigo de la JSP, dado que para detectar los errores no se necesita efectuar un seguimiento del servlet en el que se compila la JSP ni tratar de hacer coincidir los nmeros de lnea. Tenga en cuenta que Tomcat 4.1 no admite la depuracin de cdigo fuente de pginas JSP. (Esto se puede solucionar si se copian los archivos jasper-compiler.jar y jasper-runtime.jar del directorio <jbuilder>/thirdparty/ jakarta-tomcat-4.0.6-LE-jdk14/lib al directorio <jbuilder>/thirdparty/ jakarta-tomcat-4.1.27-LE-jdk14/common/lib. El comando Depurar web presenta el depurador en el panel de servidor web. Los mensajes tanto del servidor como del depurador se escriben en la vista Consola del depurador. A continuacin se muestra un ejemplo de depuracin web de una JSP que se ejecuta en Tomcat 4.0: Figura 8.4 Depuracin web
Nota
8-2 0
Gu a d e l d e s a r r o l l a d o r d e a p l i c a c i o n e s w e b
D e p u r a c i n w e b d e l s e r v l e t o d e l a J S P
Depurar pginas JSP en la pgina 6-14. Depuracin de programas en Java Creacin de aplicaciones con JBuilder. Tutorial de compilacin, ejecucin y depuracin en Creacin de aplicaciones con JBuilder. Depuracin remota en Creacin de aplicaciones con JBuilder.
C a p t u l o 8 : L a s a p l i c a c i o n e s w e b e n I D E d e J B u i l d e r
8 -2 1
8-2 2
Captulo
Captulo 9
La distribucin de una aplicacin web es el proceso de trasladar los mdulos web al lugar adecuado del servidor web y realizar cualquier otro paso necesario con el fin de que el servidor reconozca correctamente la aplicacin. Los distintos servidores web requieren pasos diferentes para la correcta distribucin de la aplicacin web. Deber consultar la documentacin de su servidor web con el fin de informarse sobre aspectos especficos de ese servidor.
Aspectos generales
Los siguientes apartados analizan algunos temas a tener en cuenta cuando se distribuye a servidores web.
Archivos recopilatorios
La agrupacin de los archivos del mdulo web en un recopilatorio puede simplificar la distribucin. Algunos servidores requieren que un mdulo web est empaquetado en un archivo WAR (Web Archive o recopilatorio web). Los archivos WAR organizan en la jerarqua correcta los archivos necesarios para el mdulo web. Entonces se puede copiar el archivo recopilatorio en la ubicacin apropiada del servidor web. Esto elimina la necesidad de copiar cada archivo individualmente y asegura que son copiados en la ubicacin adecuada. Un archivo WAR es un recopilatorio web. Puede contener la totalidad del mdulo web en una estructura apropiada, lo que facilita la copia de la
C a p t u l o 9 : D i s t r i b u c i n d e a p l i c a c i o n e s w e b
9 -1
Aspectos generales
estructura en el servidor web. Los archivos WAR se estudian con ms detalle en el Captulo 3, Los mdulos web y los archivos WAR. Si la aplicacin web contiene applets, debera colocarlos en un archivo JAR. Si desea ms informacin sobre el uso de los archivos JAR para la recopilacin de applets, consulte el Captulo 14, Las applets. El mdulo web, el archivo WAR o el archivo JAR tambin pueden empaquetarse en un archivo EAR. Consulte la ayuda en pantalla del Asistente para EAR.
Descriptores de distribucin
Los descriptores de distribucin son archivos XML que contienen informacin sobre el mdulo web. Esta informacin es imprescindible para el servidor web. Probablemente se utilizarn uno o ms descriptores de distribucin si la aplicacin web contiene servlets o JSP. Compruebe la documentacin de su servidor con el fin de obtener ms informacin acerca de qu descriptores de distribucin requiere.
Applets
Consulte Distribucin de las applets en la pgina 14-13 si desea ms informacin sobre la distribucin de las applets.
Servlets
La distribucin de servlets puede ser delicada, ya que si no se hace correctamente, el servidor web podra fallar en el reconocimiento de su servlet. Con el fin de simplificar la distribucin, debera incluir el servlet en un archivo WAR. Esto hace posible reunir todos los archivos y recursos necesarios para el servlet en una jerarqua correctamente organizada antes de la distribucin. Entonces todo lo que necesita es distribuir el archivo WAR en el servidor web. Al margen del servidor web, la distribucin satisfactoria del servlet requiere que cierta informacin est presente en el descriptor de distribucin web.xml. Su servidor web podra tener tambin exigencias adicionales. Como mnimo, antes de distribuir un servlet estndar, necesita especificar lo siguiente en un elemento servlet del archivo web.xml:
s s
servlet-name: un nombre para el servlet. servlet-class: el nombre completo de la clase del servlet.
Cada servlet estndar debe especificar tambin una asignacin de servlets en el web.xml. En un elemento de asignacin de servlets tiene que especificar lo siguiente:
s s
servlet-name: el nombre utilizado en la etiqueta del servlet. url-pattern: el patrn de URL al cual est direccionado el servlet.
9-2
Aspectos generales
Los servlets de filtro y los servlets de monitor requieren diferentes etiquetas. Consulte los apartados Ficha Filtros y Ficha Monitores en el Editor DD de Mdulo Web si desea ms informacin sobre las etiquetas requeridas en estos tipos de servlet. Si para generar el servlet utiliza el Asistente para servlets de JBuilder, el asistente insertar la informacin requerida por el servlet en el web.xml. Esto es verdad para un servlet estndar, uno de filtro o uno monitor. Los servlets deben compilarse antes de ser distribuidos en el servidor web.
JSP
Las JSP se distribuyen ms fcilmente que los servlets. Debera incluirlas en un archivo WAR y as facilitar aun ms la distribucin. Las JSP son asignadas por un servidor web de la misma manera que los archivos HTML; el servidor reconoce la extensin del archivo. El servidor web tambin gestiona la compilacin. Recuerde, el servidor web compila las JSP en servlets antes de su ejecucin. Algunas JSP utilizan bibliotecas de etiquetas JSP. Esta bibliotecas tambin deben distribuirse en el servidor web, que necesita saber cmo encontrarlas. Por esta razn, si tiene una JSP que utilice una biblioteca de etiquetas, su descriptor de distribucin web.xml necesitar un elemento taglib que indique qu biblioteca de etiquetas hay que utilizar y dnde puede encontrarse. La siguiente informacin se encuentra en el elemento taglib:
s
taglib-uri: el URI usado en la JSP para identificar la biblioteca de etiquetas Coincide con la directiva taglib (<%@ taglib uri="whatever" prefix="whatever">) de la JSP. tablib-location: la ubicacin real de la biblioteca de etiquetas.
Si utiliza el Asistente para JSP de JBuilder con el fin de crear una JSP que utilice una de las bibliotecas de etiquetas reconocidas por el asistente, la informacin de la biblioteca de etiquetas se aade al archivo web.xml.
C a p t u l o 9 : D i s t r i b u c i n d e a p l i c a c i o n e s w e b
9 -3
M o d i f i c a c i n d e l d e s c r i p t o r d e d i s t r i b u c i n
Los descriptores de distribucin son archivos XML que contienen la informacin sobre el mdulo web necesaria para el servidor web. Todos los servidores web aptos para Java esperan un descriptor de distribucin estndar llamado web.xml. Si se utiliza el marco de trabajo Struts en el mdulo web, tambin se requiere el descriptor de distribucin llamado struts-config.xml. Algunos otros marcos de trabajo requieren sus propios descriptores de distribucin. Algunos servidores pueden tener tambin descriptores de distribucin especficos de fabricante, que utilizan adems de web.xml. Por ejemplo, BEA WebLogic utiliza weblogic.xml. Consulte la documentacin de su servidor e infrmese de los archivos descriptores que utiliza. Tomcat, el servidor web que viene con JBuilder, necesita solamente web.xml. JBuilder proporciona un editor de descriptor de distribucin para web.xml. Se llama Editor DD de Mdulo Web. Este proporciona una interfaz grfica de usuario para editar la informacin ms comnmente utilizada en el archivo web.xml. Cuando se abre el archivo web.xml en el IDE de JBuilder, su contenido se presenta en el panel de estructura, y el panel de contenido muestra el Editor DD de Mdulo Web y el editor de cdigo fuente. El archivo web.xml se puede modificar en el Editor DD de Mdulo Web o en el editor de cdigo fuente. Los cambios efectuados en el Editor DD de Mdulo Web se reflejan en el cdigo fuente, y los cambios efectuados en el cdigo fuente se reflejan en el Editor DD de Mdulo Web.
Precaucin
Si se introducen comentarios en el archivo web.xml por medio del editor de cdigo fuente, se borrarn si el archivo se abre posteriormente en el Editor DD de Mdulo Web. JBuilder tambin proporciona el Editor de configuracin de Struts para modificar el descriptor de distribucin struts-config.xml que requiere el marco de trabajo Struts.
Tambin se pueden editar los descriptores de distribucin especficos de un fabricante en el IDE de JBuilder. JBuilder reconoce y muestra el archivo descriptor de distribucin en el proyecto si el correspondiente plugin del servidor est configurado apropiadamente. Los fabricantes que ofrecen plugins para otros servidores web se empean en suministrar editores de interfaz grfica de usuario para sus descriptores de distribucin especficos. Por ejemplo, el plug-in Sybase proporciona un editor GUI para el archivo sybase-easerver-config.xml.
9-4
Si el fabricante no proporciona un editor de interfaz grfica de usuario para sus descriptores de distribucin, existe la posibilidad de editar el cdigo fuente de los descriptores con el editor de cdigo fuente XML de JBuilder. Para hacerlo, abra el descriptor de distribucin especfico del fabricante y pulse la pestaa Fuente en el panel de contenido. Cuando se abre un descriptor de distribucin especfico de un fabricante en el IDE de JBuilder, su contenido se muestra en el panel de estructura, y el panel de contenido presenta el editor de cdigo fuente y la vista Histrico, junto con cualquier editor de interfaz de usuario propio del fabricante que pueda aportar el plugin del servidor web.
C a p t u l o 9 : D i s t r i b u c i n d e a p l i c a c i o n e s w e b
9 -5
9-6
Captulo
Captulo 10
El Editor DD de Mdulo Web se activa cuando se hace doble clic en el nodo mdulo web del panel del proyecto. El Editor DD de Mdulo Web resulta til para modificar el archivo web.xml. Cuando este editor est activo, el panel de estructura muestra un esquema del contenido del archivo web.xml. Cuando se hace doble clic en los distintos nodos del panel de estructura se muestran diversas fichas del editor. El nodo Aplicaciones Web principal cuenta con 16 nodos descendientes, algunos de los cuales tambin tienen descendientes. A continuacin se muestra una lista de los nodos descendientes del nodo Aplicaciones Web:
s s s s s s s s s s s s s
Parmetros de contexto Referencias EJB Referencias locales del EJB Entradas de entorno Pginas de error Filtros Mapeo de filtros Monitores Mapeos MIME Referencias del entorno de recursos Referencias de recurso Restricciones de seguridad Servlets
C a pt u l o 1 0 : M o d i f i c a c i n d e l a r c h i v o w e b . x m l
1 0 -1
Men c o n t e x t u a l d e l E d i t o r D D d e M d u l o W e b
s s s
Estos nodos contiene etiquetas que se pueden modificar en el Editor DD de Mdulo Web. El Editor DD de Mdulo Web abarca todas las etiquetas de descriptores de distribucin del web.xml de la especificacin Servlet 2.3. Tambin puede modificar el cdigo fuente del archivo web.xml.
Precaucin
Si se introducen comentarios en el archivo web.xml por medio del editor de cdigo fuente, se borrarn si el archivo se abre posteriormente en el Editor DD de Mdulo Web. Las etiquetas contenidas en cada uno de los nodos del Editor DD de Mdulo Web se explican en los siguientes apartados.
10-2
Nombre en pantalla
Icono pequeo
Mtodo de autenticacin
Nombre de reino Pgina de conexin Pgina de errores Archivos del proyecto Welcome
C a pt u l o 1 0 : M o d i f i c a c i n d e l a r c h i v o w e b . x m l
1 0 -3
F i c h a P a r metros de c o n t e x t o
10-4
C a pt u l o 1 0 : M o d i f i c a c i n d e l a r c h i v o w e b . x m l
1 0 -5
10-6
Ficha Filtros
Ficha Filtros
La ficha Filtros contiene una lista de nombres en pantalla de filtros y los botones Aadir, Modificar, Eliminar, Desplazar arriba y Desplazar abajo, que permiten gestionarlos. El orden de los filtros es importante ya que es el orden en el cual se aplicarn. Esta ficha permite cambiar el orden en el cual se aplican los filtros. El botn Aadir crea un filtro y aade un nodo descendiente al panel de estructura. Tambin aade un nodo Parmetros de inicializacin como descendiente del nuevo filtro. Para modificar un filtro, seleccione su nombre en pantalla y pulse Modificar, o bien, haga doble clic en l. De esta forma se abre otra ficha llamada Filtro: <nombre en pantalla>. La informacin que se presenta en la ficha Filtro es la siguiente: Tabla 10.2 Elemento
Nombre Clase del filtro Nombre en pantalla Descripcin Icono grande
Icono pequeo
C a pt u l o 1 0 : M o d i f i c a c i n d e l a r c h i v o w e b . x m l
1 0 -7
Cada filtro individual se lista en el panel de estructura como un nodo dependiente separado del nodo Filtros. El nombre de filtro se presenta en el rbol. Si desea borrar un filtro, haga clic con el botn derecho del ratn en su nodo y seleccione Eliminar en el men contextual. Cuando se borra un filtro, este cambio se extiende a todas las partes relacionadas del descriptor de distribucin.
Parmetros de inicializacin
Cada nodo de filtro del panel de estructura tiene un nodo descendiente para los parmetros de inicializacin. Haga doble clic en el nodo Parmetros de inicializacin para gestionarlos. La ficha Parmetros de inicializacin contiene una lista de nombres en pantalla de parmetros de inicializacin y los botones Aadir, Modificar, Eliminar, Desplazar arriba y Desplazar abajo, que permiten gestionarlos. El botn Aadir crea un parmetro de inicializacin y aade un nodo descendiente al panel de estructura. Para modificar un parmetro de inicializacin, seleccione su nombre en pantalla y pulse Modificar, o bien, haga doble clic en l. De esta forma se abre otra ficha llamada Parmetro de inicializacin: <nombre en pantalla>. La ficha Parmetro de inicializacin permite modificar el nombre, el valor y la descripcin del parmetro. Figura 10.8 Nodo Parmetro de inicializacin en el Editor DD de Mdulo Web
10-8
Ficha Monitores
La ficha Mapeo de filtros permite asignar los filtros (por filter-name) a un patrn de URL o a un nombre de servlet (pero no a ambos). La informacin que se presenta en la ficha Mapeo de filtros es la siguiente: Tabla 10.3 Elemento
Nombre de Filtro Patrn de URL
Nombre de Servlet
Si para crear un servlet de filtro utiliza el Asistente para servlets de JBuilder, el asistente aadir automticamente la asignacin de filtro necesaria. Figura 10.9 Ficha Mapeo de filtro del Editor DD de Mdulo Web
Ficha Monitores
La ficha Monitores contiene una lista de nombres en pantalla de monitores y los botones Aadir, Modificar, Eliminar, Desplazar arriba y Desplazar abajo, que permiten gestionarlos. El orden de los monitores es importante ya que es el orden en el cual se aplicarn. La ficha Monitores permite cambiar el orden en el cual se aplican. El botn Aadir crea un monitor y aade un nodo descendiente al panel de estructura. Para modificar un monitor, seleccione su nombre en pantalla y pulse Modificar, o bien, haga doble clic en l. De esta forma se abre otra ficha llamada Monitor: <nombre en pantalla>. La ficha Monitor permite modificar la clase del monitor. La informacin de la ficha Monitor es necesaria cuando se distribuye un servlet monitor. Si se utiliza el Asistente para servlets de JBuilder para crear un servlet monitor, su clase se aade automticamente al archivo web.xml.
C a pt u l o 1 0 : M o d i f i c a c i n d e l a r c h i v o w e b . x m l
1 0 -9
txt texto/plano html - texto/html xml - texto/xml pdf - aplicacin/pdf zip - aplicacin/x-zip-comprimida jpeg - imagen/jpeg gif - imagen/gif
El botn Aadir crea un mapeo MIME y aade un nodo descendiente al panel de estructura. Para modificar un mapeo MIME, seleccione su nombre en pantalla y pulse Modificar, o bien, haga doble clic en l. De esta forma se abre otra ficha llamada Mapeo MIME: <nombre en pantalla>. La ficha Mapeo MIME permite asignar una extensin al tipo de MIME. Figura 10.11 Ficha Mapeo MIME en el Editor DD de Mdulo Web
10-1 0
C a pt u l o 1 0 : M o d i f i c a c i n d e l a r c h i v o w e b . x m l
1 0 -1 1
10-1 2
C a pt u l o 1 0 : M o d i f i c a c i n d e l a r c h i v o w e b . x m l
1 0 -1 3
Ficha Servlets
Cuando se abre un nodo de coleccin de recursos web, el Editor DD de Mdulo Web contiene la informacin de identificacin de la coleccin: Tabla 10.4 Elemento
Nombre en pantalla Descripcin Mtodos HTTP
Patrones de URL
Ficha Servlets
La ficha Servlets contiene una lista de nombres en pantalla de servlets junto con los botones Aadir, Modificar, Eliminar, Desplazar arriba y Desplazar abajo, que permiten gestionarlos. El botn Aadir crea un servlet y aade un nodo descendiente al panel de estructura. Tambin aade al servlet dos nodos descendientes llamados Parmetros de inicializacin y Referencias de competencia de seguridad.
10-1 4 Gua del desarrollador de aplicaciones web
Ficha Servlets
Para modificar un servlet, seleccione su nombre en pantalla y pulse Modificar, o bien, haga doble clic en l. De esta forma se abre otra ficha llamada Servlet: <nombre en pantalla>. Si se han definido servlets, se encontrarn nodos dependientes que representan servlets individuales debajo del nodo de la ficha Servlets en el panel de estructura. El nombre de servlet se presenta en el rbol. Si desea borrar un servlet, haga clic con el botn derecho del ratn en su nodo y seleccione Eliminar en el men contextual. Si se borra un servlet, este cambio se extiende a todas las partes relacionadas del descriptor de distribucin. Por ejemplo, la eliminacin de un servlet tambin produce la eliminacin de sus asignaciones de URL y de los filtros. Recuerde que tambin se pueden asignar patrones de URL a JSP. Esto significa que un nodo de un servlet individual en el panel de estructura puede representar una JSP o un servlet. Cuando se abre un nodo de un servlet, el Editor DD de Mdulo Web presenta una ficha para l. Esta ficha contiene informacin de identificacin del servlet: Tabla 10.5 Elemento
Nombre Clase del servlet
Archivo JSP
Cargar al iniciar
Ejecutar como nombre de competencia Ejecutar como descripcin Nombre en pantalla Descripcin Icono grande
Icono pequeo
C a pt u l o 1 0 : M o d i f i c a c i n d e l a r c h i v o w e b . x m l
1 0 -1 5
Ficha Servlets
Parmetros de inicializacin
Cada nodo de servlet del panel de estructura tiene un nodo descendiente para los parmetros de inicializacin. Haga doble clic en el nodo Parmetros de inicializacin para gestionarlos. La ficha Parmetros de inicializacin contiene una lista de nombres en pantalla de parmetros de inicializacin y los botones Aadir, Modificar, Eliminar, Desplazar arriba y Desplazar abajo, que permiten gestionarlos. El botn Aadir crea un parmetro de inicializacin y aade un nodo descendiente al panel de estructura. Para modificar un parmetro de inicializacin, seleccione su nombre en pantalla y pulse Modificar, o bien, haga doble clic en l. De esta forma se abre otra ficha llamada Parmetro de inicializacin: <nombre en pantalla>. Es igual que la ficha Parmetros de inicializacin de los filtros.
El botn Aadir crea una referencia de competencia de seguridad y aade un nodo descendiente al panel de estructura. Para modificar una referencia de competencia de seguridad, seleccione su nombre en pantalla y pulse Modificar, o bien, haga doble clic en l. De esta forma se abre otra ficha llamada Referencia de competencia de seguridad: <nombre en pantalla>. La ficha Referencia de competencia de seguridad contiene cambios de nombre para competencias de seguridad. Esta ficha se utiliza para asignar un nombre alternativo codificado en el servlet a los nombres de competencias reales en el descriptor de distribucin mediante la modificacin del nombre, el enlace y la descripcin. Figura 10.17 Ficha Referencia de competencia de seguridad del Editor DD de Mdulo Web
C a pt u l o 1 0 : M o d i f i c a c i n d e l a r c h i v o w e b . x m l
1 0 -1 7
10-1 8
Captulo
Captulo 11
El archivo struts-config.xml es el descriptor de distribucin de una aplicacin web preparada para Struts. Debe ser acorde con un formato especfico, tal y como se describe en la Document Type Definition (Definicin de tipo de documento, DTD), que se mantiene en http://jakarta.apache.org/struts/dtds/ struts-config_1_1.dtd. Si desea ms informacin sobre los principales elementos de la DTD, consulte The Struts Configuration File en Struts Users Guide, en http://jakarta.apache.org/struts/userGuide. Puede modificar el archivo struts-config.xml en el Editor de configuracin de Struts o en el editor de fuentes. Los cambios efectuados en el Editor de configuracin de Struts se reflejarn en el cdigo fuente y viceversa. Si introduce comentarios en el archivo struts-config.xml utilizando el editor de cdigo fuente, se borrarn si posteriormente abre el archivo en el Editor de configuracin de Struts. Algunos elementos del archivo struts-config.xml se pueden disear con un diseador visual. Consulte el Captulo 12, Los diseadores de Struts, para obtener ms informacin.
Importante
Si utiliza los asistentes de JBuilder para crear los fragmentos de su aplicacin web Struts, puede que no necesite modificar el archivo struts-config.xml. Mientras utiliza JBuilder para crear las piezas de su aplicacin web, el archivo del descriptor de distribucin web.xml se actualiza automticamente para Struts. Si desea ms informacin, consulte el Captulo 7, El marco de trabajo Struts en JBuilder.
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -1
Nota
11-2
Configuracin de propiedades
La mayora de las fichas del Editor de configuracin de Struts permiten configurar propiedades para elementos individuales. Se pueden configurar propiedades form, set, forwards y exceptions.
s
Las propiedades form se definen para elementos <form-bean>. Un elemento <form-property> describe una propiedad JavaBean que se puede utilizar para configurar una instancia de un DynaActionForm o de una de sus subclases. Utilice nicamente este elemento si el atributo type del elemento contenedor <form-bean> es org.apache.struts.action.DynaActionForm o una de sus subclases. Si se utiliza una subclase DynaActionForm personalizada, se debe asignar al atributo dynamic del elemento contenedor <form-bean> el valor true. Este elemento se incorpora a partir de Struts 1.1. Las propiedades set se pueden crear para todos los elemento de la DTD de Struts. Un elemento <set-property> especifica el nombre del mtodo y el valor inicial de una propiedad de configuracin JavaBean adicional. Si se crea una instancia del objeto que representa al elemento en cuestin, se llama al mtodo de acceso de la propiedad indicada y se pasa el valor indicado. El elemento <set-property> resulta til cuando se utiliza una subclase personalizada con elementos <data-source>, <forward>, <action> o <plug-in>. La subclase se puede pasar aunque se necesiten otras propiedades para configurar el objeto sin cambiar el modo en que se analiza el archivo struts-config.xml.
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -3
F i c h a F u e n t e s d e d a t o s ( E d i t o r d e c o n f i g u r a c in d e S t r u t s )
s
Las propiedades forwards se pueden configurar para un elemento <action-mapping>. Un elemento <forward> especifica la va de acceso relativa al mdulo del servlet o de otro recurso que vaya a procesar esta peticin. Las propiedades exception se pueden configurar para un elemento <action-mapping>. Un elemento <exception> especifica la excepcin que gestiona esta peticin.
Para manipular elementos <set-property>, seleccione la pestaa Propiedades Set. En algunas fichas del Editor de configuracin de Struts, las propiedades se crean y se modifican en la pestaa General.
s
Pulse Aadir para aadir una propiedad Set. La propiedad se aade automticamente con la propiedad por defecto property y el valor value. Para modificar una propiedad Set, seleccinela y pulse Modificar. Aparece el cuadro de dilogo Modificar set property, en el que se pueden cambiar la propiedad y el valor. Para eliminar una propiedad Set, seleccinela y pulse Eliminar.
Pulse Aadir para aadir una propiedad. Las propiedades se aaden automticamente con un nombre y un valor por defecto. Seleccione una propiedad y pulse Modificar para modificarla. Aparece la pestaa General de la pestaa correspondiente, en la que se puede modificar la propiedad. Para eliminar una propiedad, seleccinela y pulse Eliminar.
11-4
type="com.borland.datastore.jdbc.DataStoreDriver"> <set-property property="description" value= "Sample JDataStore Configuration" /> <set-property property="maxCount" value="4"/> <set-property property="minCount" value="2"/> <set-property property="password" value="mypasssword"/> <set-property property="url" value="jdbc:borland:dslocal: C:/JBuilder/samples/webmodules/datastores/guestbook.jds" /> <set-property property="user" value="myusername"/> </data-source> </data-sources> Para que se abra la ficha Visin general de Fuentes de datos del Editor de configuracin de Struts, seleccione el nodo Fuentes de datos en el panel de estructura. La ficha Visin general de fuentes de datos muestra los elementos <data_source>. Esta ficha se utiliza para aadir y eliminar elementos.
s
Si desea aadir un <data-source>, pulse el botn Aadir. El elemento nuevo se aade con el nombre por defecto dataSource. Para modificar un elemento recin aadido o ya presente, seleccinelo y pulse Modificar. Para eliminar un elemento, seleccinelo y pulse Eliminar.
La ficha General de Fuentes de datos se utiliza para modificar los atributos de los elementos <data-source>. La ficha General tiene este aspecto:
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -5
F i c h a F u e n t e s d e d a t o s ( E d i t o r d e c o n f i g u r a c in d e S t r u t s )
type className
autoCommit
El estado de confirmacin automtica de transacciones por defecto de una conexin nueva. Desaconsejado en Struts 1.1. El estado de slo lectura por defecto de una conexin nueva. Desaconsejado en Struts 1.1.
Slo lectura
readOnly
11-6
Tabla 11.1
Propiedad
Atributos de Fuente de datos (continuacin) Nombre del atributo property-name, por ejemplo, loginTimeout, maxCount, minCount, password, readonly, url y user. Observe que password, readonly, url y user son necesarios.
El valor de la propiedad, como por ejemplo, true, false, un nombre de usuario o contrasea o la direccin URL de la fuente de datos.
Descripcin
Nombre de la propiedad JavaBeans a cuyo mtodo de definicin se llama.
Valor
Representacin en cadena del valor que se asignar a esta propiedad, despus de realizar la conversin adecuada.
Descripcin
Abre la ficha General de Fuentes de datos del editor, en la que se aade un elemento <data-source>. Elimina el elemento seleccionado.
Eliminar
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -7
F i c h a F o r m B e a n s ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
Si desea aadir un <form-bean>, pulse el botn Aadir. El elemento nuevo se aade con el nombre por defecto formBean. Para modificar un elemento, seleccinelo y pulse Modificar. El elemento se puede modificar mediante el diseador visual disponible en la ficha Diseador de Form Bean o introduciendo valores en los campos de la ficha General. Para eliminar un elemento, seleccinelo y pulse Eliminar.
Se puede utilizar el diseador de arrastre de la ficha Diseador de Form Bean. Se pueden introducir valores en los campos de la ficha General.
11-8
Ficha General
La ficha General de Form Bean se utiliza para configurar los atributos de un elemento <form-bean>. La ficha General, disponible en la pestaa General cuando se modifica un elemento, tiene el siguiente aspecto: Figura 11.4 Ficha General de Form Bean
En la siguiente tabla se describen los atributos de la ficha. Tabla 11.3 Atributos de Form Bean Nombre del atributo name type className Descripcin
Identificador nico del bean, que se usa para referirse a l en las correspondencias Action. Nombre completo de la clase Java de la clase de implementacin que se utiliza o genera. Nombre completo de la clase Java de la clase de implementacin ActionFormBean que se utiliza. Toma por defecto el valor configurado como el parmetro de inicializacin formBean del servlet del controlador Struts. El nombre de la propiedad JavaBean descrita por este elemento. Nombre completo de la clase Java del campo subyacente a esta propiedad, seguido de forma optativa de [], para indicar que el campo est indexado.
Nombre
name
Tipo
type
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -9
F i c h a F o r m B e a n s ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
Tabla 11.3
Tamao
size
Nombre de clase
className
Definir propiedades
Propiedad Valor
propertyName propertyValue
Descripcin
Nombre en pantalla
display-name
Descripcin
description
Icono grande
large-icon
Icono pequeo
small-icon
11-1 0
Descripcin
Abre la ficha General de Form Bean, en la que se aade un elemento <form-bean>. Abre el Asistente para ActionForm, en el que se crea una clase ActionForm. Elimina el elemento seleccionado.
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -1 1
F i c h a F o r m B e a n s ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
Valor inicial
initial
Tamao
size
Bean de configuracin
className
Propiedad Valor
propertyName propertyValue
11-1 2
F i c h a E x c e p c i o n e s g l o b a l e s ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
Si desea aadir un elemento <global-exception>, pulse el botn Aadir. El elemento nuevo se aade con el nombre por defecto exception. Para modificar un elemento recin aadido o ya presente, seleccinelo y pulse Modificar. Para eliminar un elemento, seleccinelo y pulse Eliminar.
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -1 3
F i c h a E x c e p c i o n e s g l o b a l e s ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
La ficha General de Excepciones globales se utiliza para modificar los atributos de un elemento <global-exceptions>. La ficha General tiene este aspecto: Figura 11.7 Ficha General de Excepciones globales
11-1 4
F i c h a E x c e p c i o n e s g l o b a l e s ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
En la siguiente tabla se describen los atributos de la ficha. Tabla 11.6 Atributos de excepciones globales Nombre del campo
Clase Exception Va de acceso Manejador
Nombre de la pestaa
N/P
Descripcin
Nombre completo de la clase Java del tipo de excepcin que se registra con este manejador. URI relativa al mdulo para el recurso que completa la solicitud/respuesta si tiene lugar esta excepcin. Nombre completo de la clase Java para este manejador de excepciones, por ejemplo, org.apache.struts.action.ExceptionHandler. La clave que se utiliza con el conjunto de recursos de mensajes de este manejador que recuperar la plantilla de mensajes de error para esta excepcin. El contexto (request o session) que se utiliza para acceder al objeto org.apache.struts.action.ActionError para esta excepcin. Atributo de contexto del servlet para el conjunto de recursos de mensajes asociado con este manejador. El atributo por defecto es el valor especificado por la constante de cadena declarada en org.apache.struts.Globals.MESSAGES_KEY. A partir de Struts 1.1. El bean de configuracin de este objeto Exception. Si se especifica, el objeto debe ser una subclase del bean de configuracin por defecto. A partir de Struts 1.1. Nombre de la propiedad JavaBeans a cuyo mtodo de definicin se llama. Representacin en cadena del valor que se asignar a esta propiedad, despus de realizar la conversin adecuada. Contiene una breve descripcin (una lnea) del elemento, adecuado para utilizar en herramientas GUI. Contiene un texto descriptivo (un prrafo) sobre el elemento, adecuado para utilizar en herramientas GUI. Especifica la ubicacin, relativa al archivo de configuracin Struts, de un recurso que contiene una imagen de un icono grande (32x32 pxeles), adecuada para utilizarla en herramientas GUI. Especifica la ubicacin, relativa al archivo de configuracin Struts, de un recurso que contiene una imagen de icono pequeo (16x16 pxeles), adecuada para utilizar en herramientas GUI.
Clave
key
mbito
scope
Conjunto
bundle
className
propertyName propertyValue
Descripcin
Icono pequeo
small-icon
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -1 5
F i c h a R e e n v o s g l o b a l e s ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
Eliminar
Un elemento <global-forwards> con un nombre en concreto se puede modificar de forma local si se define un elemento <forward> con el mismo nombre dentro de un elemento <action>. Esta es la apariencia de una entrada de ejemplo en struts-config.xml: <global-forwards> <forward name="logon" path="/logon.jsp" redirect="false"/> </global-forwards> Para abrir la ficha Visin general de Reenvos globales del Editor de configuracin de Struts, seleccione el nodo Reenvos globales en el panel de estructura. La ficha Visin general de Reenvos globales muestra los elementos <forward>. Esta ficha se utiliza para aadir y eliminar elementos.
s
Si desea aadir un elemento <forward>, pulse el botn Aadir. El elemento nuevo se aade con el nombre por defecto /forward. Para modificar un elemento recin aadido o ya presente, seleccinelo y pulse Modificar. Para eliminar un elemento, seleccinelo y pulse Eliminar.
11-1 6
F i c h a R e e n v o s g l o b a l e s ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
La ficha General de Reenvo se utiliza para configurar los atributos de un elemento. La ficha General tiene este aspecto: Figura 11.9 Ficha General
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -1 7
F i c h a R e e n v o s g l o b a l e s ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
En la siguiente tabla se describen los atributos de la ficha: Tabla 11.8 Atributos de Reenvo Nombre del campo
Nombre
Nombre de la pestaa
N/P
Descripcin
Identificador nico de forward, utilizado para referirse a l en las clases action de una aplicacin. La va de acceso relativa al contexto del recurso relacionado. Si el atributo de la va de acceso en una aplicacin modular comienza con una barra diagonal (/) y se considera relativa a toda la aplicacin web y no slo al mdulo, asigne el valor true o yes a este campo. A partir de Struts 1.1. Asgnele el valor true si se utiliza sendRedirect() para reenviar este recurso, o false si se utiliza RequestDispatcher.forward(). Nombre completo de la clase Java de la clase de implementacin ActionForward que se utiliza. Toma por defecto el valor configurado como el parmetro de inicializacin forward del servlet del controlador Struts. Nombre de la propiedad JavaBeans a cuyo mtodo de definicin se llama. Representacin en cadena del valor que se asignar a esta propiedad, despus de realizar la conversin adecuada. Contiene una breve descripcin (una lnea) del elemento, adecuado para utilizar en herramientas GUI. Contiene un texto descriptivo (un prrafo) sobre el elemento, adecuado para utilizar en herramientas GUI. Especifica la ubicacin, relativa al archivo de configuracin Struts, de un recurso que contiene una imagen de un icono grande (32x32 pxeles), adecuada para utilizarla en herramientas GUI. Especifica la ubicacin, relativa al archivo de configuracin Struts, de un recurso que contiene una imagen de icono pequeo (16x16 pxeles), adecuada para utilizar en herramientas GUI.
path contextRelative
Desviar
redirect
Bean de configuracin
className
Definir propiedades
Propiedad Valor
propertyName propertyValue
Descripcin
Nombre en pantalla
display-name
Descripcin
description
Icono grande
large-icon
Icono pequeo
small-icon
11-1 8
Descripcin
Abre la ficha General, en la que se aade un elemento <global-forward>. Elimina el elemento seleccionado.
Eliminar
Si desea aadir un elemento <action>, pulse el botn Aadir. El elemento nuevo se aade con el nombre por defecto /action. Para modificar un elemento recin aadido o ya presente, seleccinelo y pulse Modificar. Para eliminar un elemento, seleccinelo y pulse Eliminar.
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -1 9
F i c h a A c t i o n ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
Se puede utilizar el diseador de arrastre de la ficha Diseador de Action. Se pueden introducir valores en los campos de la ficha General.
11-2 0
Ficha General
La ficha General de Action se utiliza para configurar los atributos de un elemento. La ficha General tiene este aspecto: Figura 11.11 Ficha General de Action
En la siguiente tabla se describen los atributos de la ficha: Tabla 11.10 Atributos de Action Nombre de la Nombre del campo pestaa
N/P Va de acceso
Descripcin
La va de acceso relativa al contexto de la solicitud enviada, que comienza con una barra diagonal (/), sin la extensin de archivo si se utiliza la correspondencia de extensiones. Nombre completo de la clase Java de la clase Action que se utiliza para procesar las solicitudes de esta correspondencia. Si se selecciona este campo, los campos Reenvo e Incluir no estn disponibles.
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -2 1
F i c h a A c t i o n ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
Tabla 11.10 Atributos de Action (continuacin) Nombre de la pestaa Nombre del campo
Adelante
Descripcin
Va de acceso relativa al contexto del recurso servlet o JSP que procesa esta solicitud, en lugar de instanciar y llamar a la clase Action especificada en el campo Clase de implementacin. Si se selecciona este campo, los campos Clase de implementacin e Incluir no estn disponibles. Va de acceso relativa al contexto del recurso servlet o JSP que procesa esta solicitud, en lugar de instanciar y llamar a la clase Action especificada en el campo Clase de implementacin. Si se selecciona este campo, los campos Clase de implementacin y Reenvo no estn disponibles. Nombre completo de la clase Java de la clase de implementacin ActionMapping que se utiliza. Toma por defecto el valor configurado como parmetro de inicializacin mapping en el servlet del controlador Struts. Un parmetro de configuracin general que se puede utilizar para pasar informacin adicional a la Action seleccionada por esta correspondencia. Se establece en true o yes si esta accin se configura por defecto para esta aplicacin, con el fin de gestionar todas las solicitudes que ninguna otra accin gestiona. Slo se puede definir una accin por defecto dentro de una aplicacin. Una lista delimitada por comas de los nombres de competencias de seguridad que tienen acceso a este objeto ActionMapping. A partir de Struts 1.1. Nombre del form bean, si lo hay, asociado con esta accin. Prefijo utilizado para realizar correspondencias entre nombres de parmetros de solicitud y nombres de propiedades form bean, si los hay. Es optativo si se utiliza el campo Form Bean; si no, no est disponible. Identificador del mbito (request o session) en el que se accede al form bean, si lo hay. Es optativo si se utiliza el campo Form Bean; si no, no est disponible. Va de acceso relativa al contexto del formulario de entrada al que se devuelve el control si se encuentra un error de validacin. Es necesario si se utiliza el campo Form Bean y el bean de entrada devuelve errores de validacin. Es optativo si se utiliza el campo Form Bean y el bean de entrada no devuelve errores de validacin. No se admite si no se utiliza el campo Form Bean.
Incluir
include
Bean de configuracin
className
Parmetro
parameter
unknown
Competencias
competencias
name prefix
mbito
scope
Entrada
input
11-2 2
Tabla 11.10 Atributos de Action (continuacin) Nombre de la pestaa Nombre del campo
Atributo
Descripcin
Nombre del atributo de mbito de peticin o mbito de sesin bajo el que se accede a este form bean, si es distinto del nombre que aparece en el campo Form Bean. Es optativo si se utiliza el campo Form Bean; si no, no est disponible. Se utiliza para asociar nombres de parmetros de peticiones con nombres de propiedades de form bean, si los hay. Es optativo si se utiliza el campo Form Bean; si no, no est disponible. Se configura en true o yes si se llama al mtodo validate() del form bean antes de llamar a esta accin; se configura en false o no si no se desea realizar la validacin. Nombre de la propiedad JavaBeans a cuyo mtodo de definicin se llama. a esta propiedad, despus de realizar la conversin adecuada.
Sufijo
suffix
Validar
validate
Definir propiedades
Propiedad Valor
propertyName
Reenvos
Va de acceso
path
Nombre
name
Excepciones
Clave
key
Icono grande
large-icon
Icono pequeo
small-icon
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -2 3
11-2 4
F i c h a C o n t r o l a d o r ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
En la siguiente tabla se describen los atributos de la ficha: Tabla 11.12 Atributos de Controlador Nombre de la pestaa
N/P
Descripcin
El nombre completo de clase Java de la subclase RequestProcessor que se utiliza con este mdulo. Por defecto es
org.apache.struts.action.RequestProcessor.
Definir propiedades Propiedad Valor
propertyName propertyValue
Nombre de la propiedad JavaBeans a cuyo mtodo de definicin se llama. Representacin en cadena del valor que se asignar a esta propiedad, despus de realizar la conversin adecuada. El tamao del bfer de entrada que se utiliza al procesar las cargas de archivos. El tamao por defecto es 4096 KB. Nombre completo de clase Java de la subclase ControllerConfig para este objeto de controlador. Si se especifica, el objeto debe ser una subclase de
Configuracin avanzada
bufferSize
Bean de configuracin
className
org.apache.struts.config.ControllerConfig.
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -2 5
Tabla 11.12 Atributos de Controlador (continuacin) Nombre de la pestaa Nombre del campo
Contenido Tipo
Descripcin
Tipo de contenido por defecto y codificacin optativa de caracteres que se establece en cada respuesta. Puede redefinirse por Action, JSP u otro recurso al que se reenve la peticin. Por defecto es text/html. Nivel de detalle de depuracin para este mdulo. Por defecto est configurado en 0. En el caso de Struts 1.1 se ha desaconsejado. Configure el nivel de detalle de seguimiento en su implementacin de seguimiento subyacente. Patrn de sustitucin que define cmo se mapea el atributo page de un elemento forward a una direccin URL relativa al contexto cuando empieza con una barra y la propiedad contextRelative tiene el valor false. Este valor puede consistir en cualquier combinacin de lo siguiente: s - $M: sustituido por el prefijo del mdulo de este mdulo. s - $P: sustituido por el atributo path del elemento forward seleccionado. s - "$$": hace que se represente un signo de dlar. s - $x: donde x es cualquier carcter no definido anteriormente. s Espacio en blanco: reservado para uso futuro. Si no se especifica, el valor por defecto es $M$P. A partir de Struts 1.1. Asgnele el valor true o yes si desea que el atributo input de los elementos action sea el nombre de un ActionForward global o local, que se utiliza para calcular la direccin URL final. Asgnele el valor false (por defecto) para tratar el parmetro input de un elemento action como una va relativa al mdulo de acceso al objeto de recursos que se utiliza como formulario de entrada. A partir de Struts 1.1. Asigne el valor true o yes si desea que un objeto Locale se almacene en la sesin del usuario si todava no est presente. Por defecto est configurado en true. El tamao mximo (en bytes) de un archivo para que se acepte como una carga de archivo. Se puede expresar como un nmero seguido de la letra K, M o G, que representan kilobytes, megabytes o gigabytes respectivamente. El tamao por defecto es de 250M.
Depurar
depurar
Adelante modelos
forwardPattern
Reenvo de entrada
inputForward
Idioma
11-2 6
F i c h a C o n t r o l a d o r ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
Tabla 11.12 Atributos de Controlador (continuacin) Nombre de la pestaa Nombre del campo
Tamao mximo de memoria de archivo
Descripcin
El tamao mximo (en bytes) de un archivo cuyo contenido se mantiene en la memoria despus de la carga. Los archivos de tamao superior se guardan en un soporte de almacenamiento alternativo, que normalmente es un disco duro. Se puede expresar como un nmero seguido de la letra K, M o G, que representan kilobytes, megabytes o gigabytes respectivamente. El tamao por defecto es de 256 K. El nombre completo de clase Java de la clase del manejador de peticiones multiparte que se utiliza con este mdulo. Por defecto es
Clase multiparte
multipartClass
Nocache
nocache
Patrn de pgina
pagePattern
Patrn de sustitucin que define cmo se establece la correspondencia entre el atributo page de las etiquetas personalizadas y una direccin URL relativa al contexto del recurso correspondiente. Este valor puede consistir en cualquier combinacin de lo siguiente: s - $M: sustituido por el prefijo del mdulo de este mdulo. s - $M: sustituido por el prefijo del mdulo de este mdulo. s - "$$": hace que se represente un signo de dlar. s - $x: donde x es cualquier carcter no definido anteriormente. s Espacio en blanco: reservado para uso futuro. Si no se especifica, el valor por defecto es $M$P. Directorio temporal de trabajo que se utiliza al procesar cargas de archivos. El directorio por defecto es el que suministra el contenedor de servlets.
tempDir
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -2 7
F i c h a R e c u r s o s d e m e n s a j e s ( E d i t o r d e c o n f i g u r a c in d e S t r u t s )
Pulse Aadir para aadir una propiedad Set. La propiedad se aade automticamente con la propiedad por defecto property y el valor value. Para modificar una propiedad Set, seleccinela y pulse Modificar. Aparece el cuadro de dilogo Modificar set property, en el que se pueden cambiar la propiedad y el valor. Para eliminar una propiedad Set, seleccinela y pulse Eliminar.
Si desea aadir un elemento <message-resources>, pulse el botn Aadir. El elemento nuevo se aade con el nombre por defecto parameter. Para modificar un elemento recin aadido o ya presente, seleccinelo y pulse Modificar. Para eliminar un elemento, seleccinelo y pulse Eliminar.
11-2 8
La ficha General de Recursos de mensajes se utiliza para configurar los atributos de un elemento. La ficha General tiene este aspecto: Figura 11.14 Ficha General de Recursos de mensajes
F i c h a R e c u r s o s d e m e n s a j e s ( E d i t o r d e c o n f i g u r a c in d e S t r u t s )
Descripcin
Parmetro de configuracin que se pasa al mtodo createResources del objeto de factora. Atributo del contexto del servlet en el que se almacena este conjunto de recursos de mensajes. El atributo por defecto es el valor que especifica la constante de cadena en Globals.MESSAGES_KEY. El prefijo del mdulo de la aplicacin, si lo hay, se aade a la clave, org.apache.struts.Globals.MESSAGES_KEY. Nota: El prefijo del mdulo de la aplicacin incluye la barra inicial, con lo que el conjunto de recursos de mensajes por defecto para un mdulo de nombre test se almacena en org.apache.struts.action.MESSAGE/test. El bean de configuracin para este objeto de recursos de mensajes. Si se especifica, el objeto debe ser una subclase del bean de configuracin por defecto,
Bean de configuracin
className
org.apache.struts.config.MessageResourcesConfi g.
Factora
factory
Nombre completo de clase Java de la subclase MessageResourcesFactory que se utiliza para este objeto de recursos de mensajes. Por defecto es
Null
null
org.apache.struts.util.PropertyMessageResource sFactory. Asigne el valor true o yes para que devuelva una
cadena nula para claves de mensajes desconocidas, o false o no para que devuelva un mensaje con el valor de clave errneo.
Definir propiedades
Propiedad Valor
propertyName propertyValue
Nombre de la propiedad JavaBeans a cuyo mtodo de definicin se llama. Representacin en cadena del valor que se asignar a esta propiedad, despus de realizar la conversin adecuada.
11-3 0
F i c h a P l u g I n s ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
Comando de men
Aadir recursos de mensajes
Descripcin
Abre la ficha General de Recursos de mensajes, en la que se aade un elemento <message-resources>. Elimina el elemento seleccionado.
Eliminar
Si desea aadir un elemento <plug-in>, pulse el botn Aadir. El elemento nuevo se aade con el nombre por defecto org.apache.struts.Plugin. Para modificar un elemento recin aadido o ya presente, seleccinelo y pulse Modificar. Para eliminar un elemento, seleccinelo y pulse Eliminar.
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -3 1
F i c h a P l u g I n s ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
La ficha General de Plug Ins se utiliza para configurar los atributos de un elemento. La ficha General tiene este aspecto: Figura 11.16 Ficha General de Plug In
11-3 2
F i c h a P l u g I n s ( E d i t o r d e c o n f i g u r a c i n d e S t r u t s )
En la siguiente tabla se describen los atributos de la ficha: Tabla 11.15 Atributos de Plug Ins Nombre del campo
Clase de implementacin de Plug-In
Descripcin
Nombre completo de clase Java de la clase plug-in; debe implementar
org.apache.struts.action.PlugI n.
Propiedad
propertyName
Nombre de la propiedad JavaBeans a cuyo mtodo de definicin se llama. Representacin en cadena del valor que se asignar a esta propiedad, despus de realizar la conversin adecuada.
Valor
propertyValue
Comando de men
Aadir Plug In Aadir Plug In Tiles
Descripcin
Abre la ficha General de Plug In, en la que se aade un elemento <plug-in>. Abre la ficha General de Plug In, con el valor de Clase de implementacin de plug-in establecido en
org.apache.struts.tiles.TilesPlugi n.
Nodo Plug In Aadir Plug In Validator Abre la ficha General de Plug In, con el valor de Clase de implementacin de plug-in establecido en
org.apache.struts.validator.Valida torPlugIn.
Elemento Plug In Eliminar Elimina el elemento seleccionado.
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -3 3
M o d i f i c a c i n d e l a r c h i v o t i l e s - d e f . x m l
ste es el aspecto de una entrada de ejemplo de tiles-def.xml: <definition name=welcomeLayout page=/layouts/myLayout.jsp> <put name=title value=Hello World /> <put name=header value=/tiles/header.jsp /> <put name=footer value=/tiles/footer.jsp /> <put name=menuvalue=/tiles/menu.jsp /> <put name=body value=/tiles/helloBody.jsp /> </definition> Para aadir un archivo tiles-def.xml a la aplicacin web, seleccione la opcin Tiles al elegir el marco de trabajo Struts 1.1 en la ficha Configurar parmetros del mdulo web del Asistente para mdulos web. Tambin se pueden aadir archivos Tiles directamente en la carpeta /WEB-INF del mdulo web. Si desea obtener ms informacin, consulte Adicin de descriptores de distribucin Struts al mdulo web en la pgina 7-4 y Registro de descriptores de distribucin Struts en la pgina 7-4.
Importante
Si se utiliza una capa Tiles, tambin se debe utilizar la clase org.apache.struts.tiles.TilesPlugin como elemento plug-in en el archivo struts-config.xml.
Si desea aadir un elemento <definition>, pulse el botn Aadir. El elemento se aade con el nombre por defecto definition. Para modificar un elemento recin aadido o ya presente, seleccinelo y pulse Modificar.
11-3 4
Se puede utilizar el diseador de arrastre de la ficha Diseador de Tiles. Se pueden introducir valores en los campos de la ficha General.
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -3 5
M o d i f i c a c i n d e l a r c h i v o t i l e s - d e f . x m l
Ficha General
La ficha General de Tiles se utiliza para configurar los atributos de un elemento. La ficha General tiene este aspecto: Figura 11.18 Ficha General de Tiles
En la siguiente tabla se describen los atributos de la ficha: Tabla 11.17 Atributos de Definition de Tiles Nombre de la pestaa
N/P
Descripcin
El identificador irrepetible de este elemento definition. La va de acceso relativa al contexto al recurso utilizado como piezas (tiles) para insertar. Estas piezas se insertan, y aparece un contexto de tiles con los atributos adecuados. Nombre de una definicin que se utiliza como antecesora de sta. Todos los atributos del antecesor estn disponibles para la nueva definicin. Cualquier atributo heredado del antecesor se puede sobrecargar mediante un nuevo valor.
Ampla
extends
11-3 6
Tabla 11.17 Atributos de Definition de Tiles (continuacin) Nombre de la pestaa Nombre del campo
Competencia
Descripcin
El nombre de la competencia de seguridad que tiene acceso a este objeto definition. La definicin se inserta nicamente si se admite el nombre de la competencia. El nombre completo de clase Java de la subclase del controlador al que se llama inmediatamente antes de insertar las piezas (tiles). Slo se debe especificar controllerClass o controllerUrl. La va de acceso relativa al contexto para el recurso que se utiliza como controlador, al que se llama inmediatamente antes de insertar las piezas (tiles). Slo se debe especificar controllerClass o controllerUrl. Igual que path. Igual que path. Para que sea compatible con la biblioteca de etiquetas de la plantilla. El identificador irrepetible de este elemento put. El valor asociado con este atributo de tiles. El valor debe especificarse con este atributo de etiqueta, o en el cuerpo de la etiqueta. El tipo del valor. Puede ser: string, page, template o definition. Por defecto, no se asocia ningn tipo con un valor. Si se asocia un tipo, se utiliza como recomendacin para procesar el valor cuando el atributo se utiliza en las piezas (tiles) insertadas.
controllerClass
N/P
controllerUrl
Escriba
type
Contenido Directo Pestaa Put Lists Pestaa Descripcin Nombre Nombre en pantalla
Igual que value. Para que sea compatible con la biblioteca de etiquetas de la plantilla. Igual que type=string.. Para que sea compatible con la biblioteca de etiquetas de la plantilla. El identificador irrepetible de este elemento putList. Contiene una breve descripcin (una lnea) del elemento, adecuado para utilizar en herramientas GUI. Contiene un texto descriptivo (un prrafo) sobre el elemento, adecuado para utilizar en herramientas GUI. Especifica la ubicacin, relativa al archivo de configuracin Struts, de un recurso que contiene una imagen de un icono grande (32x32 pxeles), adecuada para utilizarla en herramientas GUI. Especifica la ubicacin, relativa al archivo de configuracin Struts, de un recurso que contiene una imagen de icono pequeo (16x16 pxeles), adecuada para utilizar en herramientas GUI.
Descripcin
description
Icono grande
large-icon
Icono pequeo
small-icon
C a p t u l o 1 1 : M o d i f i c a c i n d e l a r c h i v o s t r u t s - c o n f i g . x m l
1 1 -3 7
M o d i f i c a c i n d e l a r c h i v o t i l e s - d e f . x m l
Para aadir un elemento Put, pulse el botn Aadir de la pestaa Put, seleccinelo y pulse Modificar. Aparece la ficha General de Put, en la que se pueden cambiar los atributos del elemento put. Estos atributos son los mismos que los que aparecen en la pestaa Put. Para modificar un elemento, seleccinelo en el panel de estructura y pulse Modificar. Para aadir un elemento Put List, pulse el botn Aadir de la pestaa Put List, seleccinela y pulse Modificar. Se abre la ficha General de Put List, en la que se pueden aadir elementos. El cuadro de dilogo Nuevo elemento PutList se utiliza para aadir elementos. Para modificar un elemento, seleccinelo en el panel de estructura y pulse Modificar.
Si desea aadir un atributo de propiedad, pulse el botn Aadir. Se aade automticamente una propiedad con el valor por defecto name. Para modificar un atributo de una propiedad, haga clic en el atributo al que desea asignar un nuevo valor. Tambin se puede pulsar el botn Modificar para ver los atributos como campo en una nueva ficha, en la que se pueden cambiar los propiedades y el valor. Para eliminar una propiedad, seleccinela y pulse Borrar.
Comando de men
Aadir Definition Aadir Put Aadir Put List Eliminar
Descripcin
Abre la ficha General de Definition, en la que se aaden elementos <definition>. Aade un elemento put. Aade un elemento putList. Elimina el elemento seleccionado.
11-3 8
Captulo
Captulo 12
Los diseadores de Struts permiten disear de forma visual los elementos de los mdulos web de Struts. Estos diseadores permiten manipular los elementos Action, Form Beans y Tiles con el mtodo de arrastrar y soltar. Si se hace clic en un elemento en el diseador, se abre un inspector en el que se pueden definir las propiedades del elemento. Los diseadores visuales proporcionan vistas por defecto para los elementos de un mdulo web de Struts. Tambin se pueden introducir datos en los campos del Editor de configuracin de Struts. Para acceder a las fichas del editor, haga clic en la pestaa General de la parte superior del editor, junto a la pestaa Diseador. Si desea ms informacin, consulte el Captulo 11, Modificacin del archivo struts-config.xml.
C a p t u l o 1 2 : L o s d i s e a d o r e s d e S t r u t s
1 2 -1
Los diseadores visuales de Struts proporcionan una completa superficie de diseo que permite arrastrar los elementos y definir rpidamente sus atributos. La siguiente ilustracin muestra el Diseador de Action: Figura 12.1 Diseador de Action
Los diseadores de Struts tienen el mismo conjunto de funciones, entre las que se incluyen:
s
Sustitutos: indican el tipo de elemento que se puede colocar en la superficie de diseo. Los sustitutos se representan mediante lneas punteadas. Si se coloca un elemento en el sustituto y aparece en la superficie de diseo, dejando el sustituto intacto, se puede aadir otro elemento de ese tipo.
Lneas y flechas: representan el flujo de la aplicacin. Una lnea continua con una flecha que apunta a la derecha indica que el elemento de la izquierda o de encima de otro elemento est asociado de algn modo con el elemento que tiene a la derecha o debajo, por ejemplo, un recurso de entrada, un destino de reenvo o una Action. Iconos de elementos: indican el tipo de elemento. Foco (un solo clic): resalta en rojo el elemento seleccionado. Men contextual (clic con el botn derecho): muestra opciones para los elementos seleccionados.
s s s
12-2
El Inspector
s
Inspector (clic con el botn izquierdo): configura los atributos del elemento seleccionado.
Cambio de diseador (doble clic): pasa el foco al diseador del elemento <action> o <form-bean> seleccionado. Ayuda en pantalla (F1): muestra ayuda sensible al contexto para el Diseador.
El Inspector
Haga clic en cualquier elemento <action> o <form-bean>, en el diseador, para resaltarlo en rojo y abrir un inspector:
El inspector se utiliza para configurar los atributos del elemento. La superficie de diseo vara segn el elemento que se seleccione en el inspector. Por ejemplo, si se est diseando un elemento Action y se utiliza el inspector para asignar el valor Reenvo a Tipo de Action, se actualiza la presentacin para mostrar la nueva relacin. Para salir del inspector, haga clic en un espacio vaco del diseador.
C a p t u l o 1 2 : L o s d i s e a d o r e s d e S t r u t s
1 2 -3
El men contextual
El men contextual
Haga clic con el botn derecho en cualquier elemento, en un diseador, para que se abra un men contextual. El men contextual se utiliza para ver la clase de implementacin del elemento, aadir y eliminar reenvos, excepciones, propiedades de Form y Propiedades de Action Form, y promocionar una excepcin o un reenvo como elemento global.
Nota
12-4
D i s e a d o r d e Ac t i o n
Diseador de Action
En el modelo Struts, una clase Action define la accin que se va a ejecutar. Por ejemplo, si un usuario pulsa el botn Enviar en un formulario, ese formulario puede apuntar a una accin llamada action.do. Esta accin se dirige al ActionServlet, que busca el elemento Action en el archivo descriptor de distribucin XML. Los datos del formulario se colocan en el FormBean definido en el elemento Action. A continuacin, la accin ejecuta el mtodo execute() (Struts 1.1) o el mtodo perform() (Struts 1.0). El Diseador de Action de JBuilder permite disear los elementos <action> de los mdulos web de Struts. El diseador representa el elemento Action, las JSP que hacen referencia a l, el Form Bean asociado y los elementos Forward y Exception. Para definir el Form Bean utilizado por la Action, arrstrelo del panel de estructura al Form Bean actual o al sustituto del Form Bean. Para definir el destino de reenvo, arrastre un elemento Action del panel de estructura o el Directorio del mdulo del mdulo web al panel del proyecto. Tambin se puede definir arrastrando y colocando JSP, HTML u otros nodos de recursos, como una definicin de Tiles, del nodo Directorio del mdulo del mdulo web al panel del proyecto. El Diseador de Action se puede abrir de varios modos:
s
Cree una clase Action mediante el Asistente para Action. Active la opcin Abrir el Diseador de Action en la primera ficha del asistente. Haga clic con el botn derecho del ratn en el nodo Actions del panel de estructura, en el archivo struts-config.xml, y seleccione Aadir Action. En la ficha Visin general de Action del Editor de configuracin de Struts, pulse Aadir. Escriba el nombre de la Action, seleccinelo y pulse Modificar. Haga doble clic en una Action, en el panel de estructura, en el archivo struts-config.xml. Haga doble clic en una Action en el panel del proyecto.
El Diseador de Action crea un diagrama del elemento <action> seleccionado. Contiene sustitutos para Form Beans, archivos de entrada (JSP o HTML), Forwars y Exceptions. Cuando se hace clic en un elemento Action, Forward o Form Bean se abre un inspector en el que se configuran los atributos del elemento. El diseador muestra iconos de ErrorInsight que facilitan la correccin de los errores de codificacin. Tambin se puede hacer doble clic en un Form Bean o en otra Action para cambiar el foco y disear de forma visual el elemento. La siguiente ilustracin muestra el Diseador de Action del elemento /Welcome de una versin modificada del proyecto Blank de Struts. Observe cmo las lneas y las flechas forman un diagrama del flujo de la aplicacin El cuadro de
C a p t u l o 1 2 : L o s d i s e a d o r e s d e S t r u t s
1 2 -5
Diseador de Action
lneas punteadas indica un sustituto. Los iconos representan Actions, Form Beans y archivos JSP.
En la siguiente tabla se explican los iconos que se utilizan en el Diseador de Action. Tabla 12.1 Icono Iconos del Diseador de Action Descripcin
El elemento Action. El Form Bean que utiliza esta Action. Un recurso de entrada o de reenvo, como un archivo JSP o HTML. Una Definition de Tiles, que a menudo es el destino de un reenvo. Un error. Haga clic para que se abran las opciones de ErrorInsight.
1 Haga doble clic en el nodo Actions del panel de estructura. 2 Haga doble clic en el elemento <action> que desea disear. Se abre el
Diseador de Action. Aparece un sustituto para el elemento <form bean>:
3 Seleccione el Form Bean que desea utilizar en el nodo Form Beans del
panel de estructura.
12-6
D i s e a d o r d e Ac t i o n
Haga clic en el Form Bean aadido para abrir el inspector y configurar los atributos.
1 Haga doble clic en el nodo Actions del panel de estructura. 2 Haga doble clic en el elemento <action> que desea disear. Se abre el
Diseador de Action. Aparece un sustituto para el elemento <adelante>:
C a p t u l o 1 2 : L o s d i s e a d o r e s d e S t r u t s
1 2 -7
Diseador de Action
Haga clic en el destino de reenvo recin aadido para abrir el inspector y configurar los atributos.
Nota
Tambin se puede hacer clic con el botn derecho del ratn en el elemento Action, en la superficie de diseo, y seleccionar Aadir reenvo para aadir el destino de reenvo.
1 Haga doble clic en el nodo Actions del panel de estructura. 2 Haga doble clic en el elemento <action> que desea disear. Se abre el
Diseador de Action. Aparece un sustituto para el elemento <entrada>:
12-8
D i s e a d o r d e Ac t i o n
El Inspector de Action
El inspector de Action permite configurar los atributos del elemento action. Cuando se hace clic en el elemento se abre el siguiente inspector:
En la siguiente tabla se explican los atributos de los elementos: Tabla 12.2 Campo
Va de acceso
Clase de implementacin
Adelante
Incluir
C a p t u l o 1 2 : L o s d i s e a d o r e s d e S t r u t s
1 2 -9
Bean de configuracin
Parmetro
Cree un Form Bean mediante el Asistente para ActionForm. Active la opcin Abrir el diseador de form bean en la primera ficha del asistente. Haga clic con el botn derecho del ratn en el nodo Form Beans del panel de estructura, en el archivo struts-config.xml, y seleccione Aadir Form Bean. En la ficha Visin general de Form Beans del Editor de configuracin de Struts, pulse Aadir. Escriba el nombre del Form Bean, seleccinelo y pulse Modificar. Haga doble clic en un Form Bean, en el panel de estructura, para el archivo struts-config.xml.
El Diseador de Form Bean crea un diagrama del elemento <form-bean> seleccionado. Contiene un sustituto para Action. Cuando se hace clic en un elemento Form Bean o Action se abre un inspector en el que se configuran los
12-1 0 Gua del desarrollador de aplicaciones web
atributos del elemento. El diseador muestra iconos de ErrorInsight que facilitan la correccin de los errores de codificacin. Tambin se puede hacer doble clic en una Action o en otro Form Bean para cambiar el foco y disear de forma visual el elemento. La siguiente ilustracin muestra el Diseador de Form Bean del elemento <form-bean> de un proyecto sencillo de Struts. Observe cmo las lneas y las flechas forman un diagrama del flujo de la aplicacin El cuadro de lneas punteadas indica un sustituto. Los iconos representan Form Beans y Actions.
En la siguiente tabla se explican los iconos que se utilizan en el Diseador de Form Bean. Tabla 12.3 Icono Iconos del Diseador de Form Bean Descripcin
El elemento Form Bean. La Action que utiliza este Form Bean. Un error. Haga clic para que se abran las opciones de ErrorInsight.
Normalmente se aade un Form Bean a una Action mediante el Diseador de Action. Esto se debe a que el Form Bean slo contiene datos. Las acciones determinan los datos que se pasan y el Form Bean que se utiliza. Si desea ms informacin, consulte Adicin de un Form Bean a una Action en la pgina 12-6. El elemento Action proporciona la lgica empresarial del Form Bean, y ste contiene los datos de entrada. La accin especifica el Form Bean que se utiliza. Para especificar el Form Bean que se debe utilizar con una Action:
1 Haga doble clic en el nodo Form Beans, en el panel de estructura. 2 Haga doble clic en el elemento <form-bean> que desea disear. Se abre el
Diseador de Form Bean. Aparece un sustituto para el elemento <action>.
C a p t u l o 1 2 : L o s d i s e a d o r e s d e S t r u t s
1 2 -1 1
Los FormBean implementados amplan la clase ActionForm. (Esto es lo que crea el Asistente para Action Form.) El Diseador de Form Bean permite aadir, eliminar y renombrar las propiedades del archivo de clase ActionForm. Se puede considerar una versin bidireccional del Asistente para Action Form. Para crear este tipo de Form Bean, utilice el Asistente para Action Form o seleccione la clase ActionForm en el inspector al crear el Form Bean. En el caso de los DynaBeans, las propiedades del archivo .java no se modifican. Todas las definiciones de propiedades se escriben directamente en el archivo XML. Para crear una propiedad de este tipo, seleccione DynaActionForm o una de sus subclases en el inspector al crear el Form Bean.
Nota
Las propiedades se definen del mismo modo para ambos mtodos, aunque la implementacin difiere. Para aadir una propiedad Action Form (FormBean):
1 Haga clic con el botn derecho del ratn en el elemento Form Bean y
seleccione Aadir propiedad ActionForm.
2 Haga clic en la propiedad aadida (el nombre por defecto es property) para
abrir el inspector.
12-1 2 Gua del desarrollador de aplicaciones web
Diseador de Tiles
Diseador de Tiles
Nota
Tiles es una funcin de Struts 1.1. Struts 1.1 proporciona una biblioteca de plantillas llamada Tiles, que permite construir vistas combinando varias capas de presentacin, que normalmente son fragmentos de archivos JSP. Por ejemplo, un fragmento de una JSP puede mostrar el encabezado, otro puede mostrar el pie, y otro, el cuerpo de la vista. Tiles genera la funcin include de JSP para proporcionar un marco de trabajo para ensamblar pginas de presentacin a partir de las partes que las componen. Una definition de Tiles permite especificar un diseo como pgina de plantilla o como JavaBean. El archivo tiles-def.xml se utiliza para declarar elementos definition para la presentacin. El Diseador de Tiles permite disear de forma visual el archivo tiles-def.xml. El Diseador de Tiles se puede abrir de varios modos:
s
Haga doble clic en el archivo tiles-def.xml, en el panel del proyecto. Haga clic con el botn derecho del ratn en el nodo, en el panel de estructura, y seleccione Aadir Definition. En la ficha Visin general de Tiles del Editor de configuracin de Struts, pulse Aadir. Escriba el nombre de la Definition, seleccinelo y pulse Modificar. Haga doble clic en una definicin, en el panel de estructura, para el archivo tiles-def.xml.
C a p t u l o 1 2 : L o s d i s e a d o r e s d e S t r u t s
1 2 -1 3
Diseador de Tiles
El Diseador de Tiles crea un diagrama del elemento <definition> seleccionado. Contiene sustitutos para las definiciones del superior y los Puts. Cuando se hace clic en un elemento Definition se abre un inspector en el que se pueden definir los atributos del elemento. Cuando se hace doble clic en un elemento Put se abre el Editor de configuracin de Struts basado en formularios, en el que se pueden introducir los atributos. Si el Put apunta a una JSP, cuando se hace doble clic se abre la JSP en el editor de cdigo fuente, donde se puede modificar el archivo. La siguiente ilustracin muestra el Diseador de Definition. Observe que los valores de los distintos Puts apuntan a fragmentos de JSP que se ensamblan para formar una pgina completa.
En la siguiente tabla se explican los iconos que se utilizan en el Diseador de Tiles. Tabla 12.5 Icono Iconos del Diseador de Tiles Descripcin
Una Definition. Un Put. Una Put List.
12-1 4
Diseador de Tiles
1 Haga doble clic en el archivo tiles-def.xml, en el panel del proyecto. 2 Haga doble clic en el elemento <definition> que desea disear. Se abre el
Diseador de Tiles. Aparece un sustituto para el elemento <parent-definition>:
Nota
Los Puts que se heredan de la definicin del superior aparecen en gris en la superficie de diseo. Aparecen en cursiva en la lista de Puts del elemento Definition, tal como se muestra anteriormente. Haga clic en la definicin del superior recin aadida para abrir el inspector y configurar los atributos.
C a p t u l o 1 2 : L o s d i s e a d o r e s d e S t r u t s
1 2 -1 5
Diseador de Tiles
El inspector de Tiles
El inspector de Tiles permite definir los atributos del elemento <definition>. Cuando se hace clic en el elemento se abre el siguiente inspector:
Ampla
Competencia
12-1 6
Diseador de Tiles
Tabla 12.6
Clase del controlador
Pgina Plantilla
C a p t u l o 1 2 : L o s d i s e a d o r e s d e S t r u t s
1 2 -1 7
12-1 8
Captulo
Captulo 13
InternetBeans Express
La tecnologa InternetBeans Express se integra en la tecnologa servlet y JSP para ofrecer un valor aadido a sus aplicaciones y simplificar las tareas de desarrollo de servlet y JSP. InternetBeans Express es un conjunto de componentes y extensiones de etiquetas de pginas JavaServer (JSP) utilizado para la generacin de presentaciones y la interaccin con aplicaciones web. Toma pginas estticas de plantilla, inserta contenido dinmico desde un modelo dinmico de datos y lo presenta al cliente; a continuacin, escribe en el modelo los datos que enva el cliente. Esto facilita la creacin de servlets y JSP enlazados a datos. Por ejemplo, se pueden utilizar componentes InternetBeans Express con el fin de crear un servlet que proporcione un formulario de registro para usuarios nuevos, para entrar en una pgina web o una pgina JSP que muestre el resultado de una bsqueda en una tabla. InternetBeans Express contiene soporte incorporado para DataExpress DataSets y DataModules. Tambin puede utilizarse con modelos genricos de datos y EJB. Las clases e interfaces se pueden dividir en tres categoras:
s
Los InternetBeans son componentes que se encargan directamente de la generacin dinmica de marcas y la gestin de semntica de solicitud y respuesta HTTP. Los manejadores de etiquetas JSP, que llaman internamente a InternetBeans, y la infraestructura en la que se basan. Estos son utilizados por las extensiones de etiquetas de JSP en la biblioteca de etiquetas InternetBeans. Aceptacin de modelo de datos.
Tambin existe una biblioteca de etiquetas JSP que contiene extensiones de etiquetas JSP cuyo fin es admitir InternetBeans en una JSP.
1 3 -1
IxControl
IxTable
IxImage
Representa una imagen que simplemente se muestra o se utiliza como un enlace. Si se quiere utilizar una imagen para enviar un formulario, utilice IxImageButton. Representa un enlace. Si se necesita reescribir una URL, IxLink puede manejarla automticamente efectuando una llamada interna al mtodo HttpServletResponse.encodeURL(). Sustituye el contenido de slo lectura por un atributo ID, probablemente <span>, pero podra ser cualquier otro tipo de elemento. Para los controles de un formulario, utilice IxControl. Representa una casilla de seleccin. XHTML: <input type="checkbox" />
IxLink
IxSpan
IxCheckBox
IxComboBox
IxHidden
13-2
D e s c r i p c i n g e n e r a l d e l a s c l a s e s d e I n t e r n e t B e a n s E x p r e s s
Tabla 13.1
IxListBox
IxPassword
IxPushButton
IxRadioButton
IxSubmitButton
Representa un botn de envo en un formulario. XHTML: <input type="submit" /> Si el botn que coincide con este componente fue el botn que envi el formulario, se activar el evento submitPerformed() deIxSubmitButton. Representa un rea de texto. XHTML: <textarea>
IxTextArea
IxTextField
1 3 -3
U t i l i z a c i n d e I n t e r n e t B e a n s E x p r e s s c o n s e r v l e t s
Anlisis de pginas
A diferencia del analizador de XML, que es estricto, el de HTML es flexible. En concreto, los elementos de HTML (etiquetas) y los nombres de atributos no distinguen entre maysculas y minsculas. Sin embargo, XHTML distingue entre maysculas y minsculas, y los nombres estndar estn en minscula por definicin. Para acelerar el proceso, los nombres de elementos y atributos HTML se convierten a minscula, la norma de XHTML para almacenamiento. Al buscar atributos, se debe utilizar la minscula. Cuando se emparejan los componentes InternetBeans Express con los controles HTML de la pgina, las propiedades definidas en el componente InternetBeans Express tienen preferencia. Cuando se asignan las propiedades en el diseador, debe pensar si quiere redefinir realmente un
13-4
atributo de HTML determinado, asignando su propiedad correspondiente en el componente. Por ejemplo, si la pgina web contiene una textarea de un tamao determinado, no es conveniente redefinirlo cuando se genere automticamente el control.
Generacin de tablas
La presentacin de datos en una tabla con un formato determinado es una tarea muy habitual y compleja. Por ejemplo, las filas pueden tener determinadas agrupaciones de celdas y colores alternos. El diseador de pginas web slo necesita proporcionar suficientes filas de ejemplo para presentar el aspecto de la tabla (si hay colores alternos, son dos filas). Cuando el componente IxTable genera la tabla real, este aspecto se repite automticamente. Los visualizadores de celdas se pueden definir por clases, o asignar a cada columna su propio IxTableCellRenderer con el fin de permitir la personalizacin del contenido; por ejemplo, los valores negativos se pueden presentar en rojo (preferiblemente mediante la definicin de hojas de estilo en cascada (CSS) adecuadas en lugar de cambiar el color desde el cdigo). Si desea leer un tutorial sobre el uso de InternetBeans en un servlet, consulte el Captulo 23, Tutorial: Creacin de un servlet con InternetBeans Express.
1 3 -5
U t i l i z a c i n d e I n t e r n e t B e a n s E x p r e s s c o n J S P
Recuerde que las directivas tales como la taglib y la page deben ser siempre las primeras lneas de su JSP. El Asistente para JSP de JBuilder inserta una directiva taglib y una directiva page si se selecciona la biblioteca de etiquetas internetbeans en el paso Modificar los detalles del archivo JSP del asistente. El Asistente para JSP tambin completa el resto de pasos necesarios para configurar la JSP para que utilice InternetBeans Express. Estos pasos son:
1 Aade la biblioteca InternetBeans Express a su proyecto. 2 Asigna la configuracin Incluir todas a las dependencias del mdulo web
para las bibliotecas InternetBeans Express, dbSwing y DataExpress. Esto quiere decir que los archivos jar necesarios se copian al directorio WEB-INF/ lib del mdulo web cuando se compila el proyecto.
Este es un ejemplo del aspecto que tiene una etiqueta de InternetBeans cuando se utiliza en su JSP: <ix:database id=database1 driver="com.borland.datastore.jdbc.DataStoreDriver" url="jdbc:borland:dslocal:..\\guestbook\\guestbook.jds" username="user"> </ix:database>
13-6
Este ejemplo utiliza la etiqueta database. Si realmente estuviera utilizando la etiqueta database en una JSP, en la mayora de los casos ser conveniente anidar otras etiquetas dentro de esta etiqueta, como la etiqueta query. Esto no es necesario, pero hace que el cdigo de la JSP sea ms legible.
Nota
El prefijo ix puede ser cualquier texto. Todo depende del prefijo que se haya indicado en la directiva taglib. El Asistente para JSP utiliza el prefijo ix para la biblioteca de etiquetas internetbeans. Si desea seguir un tutorial sobre este tema, consulte el Captulo 20, Tutorial: Creacin de una JSP con InternetBeans Express.
Nombre de la etiqueta
id - texto usado para identificar esta base de datos. driver - propiedad controlador de la base
de datos.
s s
url - propiedad url de la base de datos. username - el nombre de usario para la base de datos. password - la contrasea para la base de datos. id - texto usado para identificar esta consulta. database - identifica la base de datos a la que pertenece esta consulta. Esta no es necesaria ya que se infiere si la etiqueta query est anidada dentro de la etiqueta database. Si la etiqueta query no est anidada dentro de la etiqueta database, es necesario especificar este atributo. statement - la sentencia de SQL ejecutada por esta consulta.
query
Define un
QueryDataSet de
DataExpress
s
control
id - texto usado para identificar este control. tupleModel - el tupleModel para este control. dataSet - identifica el conjunto de datos (consulta) al cual est conectado el control. No es posible tener ambos pero se necesita el dataSet o el tupleModel. columnName - identifica el columnName al cual est conectado el control.
1 3 -7
U t i l i z a c i n d e I n t e r n e t B e a n s E x p r e s s c o n J S P
Tabla 13.2
Atributos
s
id - texto usado para identificar esta imagen. tupleModel - el tupleModel para este control. dataSet - identifica el conjunto de datos (consulta) al cual est conectada esta imagen. No es posible tener ambos pero se necesita el dataSet o el tupleModel. columnName - identifica el columnName al cual est conectada esta imagen. id - texto usado para identificar este botn de envo. methodName - nombre del mtodo que se ejecutar cuando se presione este botn. id - texto usado para identificar esta tabla dataSet - identifica el conjunto de datos
(consulta) al cual est conectada esta tabla. tableModel - el nombre del modelo de datos para esta tabla. Se necesita bien el dataSet o bien el tableModel, pero no es posible tener ambos.
submit
Define una
IxSubmitButton de
InternetBeans Express
s
table
s s
Slo hay seis etiquetas en la biblioteca de etiquetas de InternetBeans Express, aunque hay diecisiete componentes de InternetBeans. Esto puede considerarse una gran limitacin, si bien realmente no lo es. La etiqueta control se direcciona hacia una IxControl, que delega en todos las otras InternetBeans especficas de controles. Las nicas InternetBeans que no estn comprendidas en la biblioteca de etiquetas son IxSpan e IxLink. Ninguna de ellas resulta til en una JSP, ya que podra realizar lo mismo de forma sencilla, mediante su propio scriptlet de expresiones JSP. Por supuesto, tambin es posible usar InternetBeans directamente, al igual que cualquier otra clase bean o Java. Es mucho ms conveniente utilizar la biblioteca de etiquetas, que adems realiza algunas tareas adicionales (como mantener el estado de la sesin de entrada de datos).
Formato de internetbeans.tld
Es til saber que siempre se puede ver el cdigo fuente del archivo internetbeans.tld en busca de sugerencias acerca del uso de las diferentes etiquetas. Para hacer esto, bralo en el editor de JBuilder. Este archivo no puede (ni debe) modificarse. El archivo internetbeans.tld se encuentra disponible en internetbeans.jar. No necesita poder ver los contenidos de dicho archivo para utilizar sus etiquetas
13-8
en su JSP, pero si desea verlo en el editor, necesita ese paso adicional de incorporacin al proyecto. Para ello:
Si no aparece el directorio WEB-INF/lib, abra el cuadro de dilogo Propiedades de Mdulo Web (seleccione Propiedades en el men contextual del nodo del mdulo web) y active Sincronizar el directorio del mdulo con el contenido del recopilatorio en la ficha Generar. Vuelva a generar el proyecto.
1 3 -9
U t i l i z a c i n d e I n t e r n e t B e a n s E x p r e s s c o n J S P
La etiqueta <attribute> describe un atributo para una etiqueta de InternetBeans. Hay una etiqueta <attribute> para cada atributo. Pueden ser consideradas como las propiedades del componente. Ver estas propiedades anidadas dentro de la etiqueta <attribute>. Cada propiedad tiene un nombre, un valor booleano, que indica si es o no una propiedad necesaria y un valor booleano que indica si su valor puede asignarse o no mediante una expresin de java. El nombre se encuentra dentro de la etiqueta <name>, la etiqueta <required> indica si se requiere o no la propiedad y la etiqueta <rtexprvalue> indica si la propiedad puede asignarse o no mediante una expresin de java. Aquellas propiedades que se pueden asignar mediante una expresin requieren un valor literal.
13-1 0
Captulo
Captulo 14
Las applets
Si ya ha intentado escribir applets y distribuirlas en un sitio web, habr notado que, en comparacin con otras aplicaciones, el trabajo con applets requiere solucionar otro tipo de errores para que funcionen. Es en la distribucin y las pruebas de las applets fuera del IDE donde suelen aparecer las dificultades, y si no ha solucionado algunos errores bsicos, el applet no funcionar adecuadamente. Para conseguirlo, hay que saber cmo funcionan las applets y cmo encajar las partes, especialmente en el momento de distribuirlas y cargarlas en un sitio web externo.
Consulte
s s
Tutorial: Creacin de un applet en Introduccin a JBuilder. El Java tutorial en Writing Applets en http://java.sun.com/docs/books/ tutorial/applet/index.html. El sitio web de Sun en http://java.sun.com/applets/index.html. Las preguntas ms frecuentes de Java en http://www.afu.com/javafaq.html. Charlie Calverts Java Madness, Part II: Applets en http://homepages.borland.com/ccalvert/JavaCourse/index.htm. La pgina web Curmudgeon de Rich Wilkman, en http://formlessvoid.com/ jc/. Pgina web de John Moore, Applet design and deployment, en http:// www.microps.com/mps/p_appletdesign.html .
s s s
C a p t u l o 1 4 : L a s a p p l e t s
1 4 -1
La <etiqueta> applet
Todo lo que necesita saber un applet durante la ejecucin queda determinado por el contenido de la etiqueta <applet> del archivo HTML del applet. Los atributos de la etiqueta le indican qu clase ejecutar, qu recopilatorios (si procede) debe buscar para las clases y la ubicacin de estos recopilatorios y/ o clases. A diferencia de las aplicaciones Java, que utilizan una variable de entorno llamada CLASSPATH para buscar clases, las applets utilizan solamente el atributo codebase en la etiqueta <applet> para especificar dnde buscar las clases necesarias para el applet. La clave para ejecutar un applet consiste precisamente en su capacidad para encontrar las clases que necesita.
La <etiqueta> applet
width = 400 height = 300 vspace = 0 hspace = 0 > <param name = "param1" value = "xyz"> </applet>
archive
code (necesario) Nombre completo de la clase applet que contiene el mtodo init(). Por ejemplo, si la clase Applet1.class forma parte de un paquete llamado test, entonces code sera code="test.Applet1.class". name (optativo) Una cadena que describe el applet. Esta cadena se lee en la
barra de estado del navegador.
width/height
(necesario)
Define el tamao en pxeles asignado al applet en el navegador. Esta informacin tambin se pasa al gestor de diseo del applet.
C a p t u l o 1 4 : L a s a p p l e t s
1 4 -3
La <etiqueta> applet
hspace/vspace
(optativo)
param (optativo)
<applet>. Son similares a la lista de argumentos utilizada por main() en las aplicaciones. Los parmetros tienen dos partes, nombre y valor, ambas cadenas entrecomilladas. nombre se usa en el applet cuando se quiere solicitar un valor. El cdigo del applet debe gestionar las posibles conversiones de String a otro
tipo de dato. Asegrese de que las maysculas y minsculas coinciden en el parmetro HTML y el cdigo applet que lo solicita.
Ausencia de una etiqueta </applet> Si recibe un mensaje de error indicando que falta una etiqueta </applet> en la pgina HTML, compruebe si hay una etiqueta de cierre.
Olvidar que Java diferencia entre maysculas y minsculas La distincin entre maysculas y minsculas es extremadamente importante. Por lo general, las clases combinan maysculas y minsculas mientras que los directorios y los archivos recopilatorios se escriben en minscula. Los nombres de clases, archivos recopilatorios y directorios en la etiqueta <applet> deben ser una imagen exacta de los nombres que aparecen en el servidor web. Si se detecta la mnima diferencia, aparecern mensajes de error del tipo no se encuentra xyz.class. Si la clase se encuentra en el paquete com.mypackage, todos los directorios destinados a admitir esta clase deben crearse y sealarse en minsculas. El desplazamiento de archivos entre plataformas de sistema operativo y por Internet aumenta las posibilidades de que se produzcan errores debidos al uso de maysculas y minsculas. Una vez haya enviado los archivos a la Web, asegrese de que los archivos, directorios y archivos de revisiones tienen los mismos valores de maysculas y minsculas que la mquina local. Adems, si ha recopilado todos sus archivos de clase, asegrese de que la herramienta de recopilacin ha conservado las maysculas y minsculas.
Usar el nombre corto de la clase en el atributo code Debe utilizar el nombre completo porque es el nombre real de la clase. Si el nombre de la clase es Applet1.class y est en el paquete test, entonces debe referenciarlo en el atributo code como test.Applet1.class.
14-4
Los navegadores
El codebase se resuelve contra el directorio que contiene el archivo HTML, formando de manera efectiva una entrada classpath. El valor codebase no es una URL ni otro tipo de referencia. En el ejemplo de applet del apartado anterior se utilizaba codebase = .. Esto especifica que los archivos que necesita el applet se encuentran en el mismo directorio del archivo HTML o, si no se ha especificado el archivo recopilatorio, los archivos se encuentran en subdirectorios de paquetes apropiados, con respecto al que contiene el archivo HTML.
s
Ausencia de un atributo archive Si el applet se distribuye en uno o ms archivos JAR o ZIP, debe aadir el atributo archive al archivo HTML.
Ausencia de comillas en los valores utilizados para code, codebase, archive, name, etc. Con el fin de obtener una mejor compatibilidad con XHTML, se recomienda usar comillas tambin con los nmeros.
Los navegadores
Una de las principales acciones para que las applets funcionen durante la ejecucin consiste en resolver los problemas que plantean los navegadores que albergan las applets. El grado de compatibilidad de los navegadores en relacin con el kit de desarrollo de Java (JDK) es muy variable, adems de que no todos implementan Java del mismo modo. Las cuestiones ms frecuentes que encontrar con respecto a los navegadores incluyen permitir la utilizacin de Java, obtener el navegador preferido por el usuario final, admitir mltiples navegadores y las diferencias en la implementacin de Java.
C a p t u l o 1 4 : L a s a p p l e t s
1 4 -5
Los navegadores
Para saber qu versin de JDK admite el navegador, compruebe la Consola Java en el navegador o la pgina Web del navegador. Para abrir la Consola Java, lleve a cabo una de las acciones siguientes:
s
Seleccione Communicator|Herramientas|Consola de Java en las versiones antiguas de Netscape o, bien, Tareas|Herramientas|Consola de Java en las versiones ms recientes. Seleccione Ver|Consola Java en Internet Explorer.
Con el Plug-in de Java de Sun se soluciona el problema de incompatibilidad de JDK descargando siempre la misma versin en todos los ordenadores de los usuarios finales.
Los navegadores
puede dar lugar a comportamientos inesperados durante la ejecucin. Por ejemplo, podra tener llamadas a la funcin pintar que no se producen con lo que el applet aparecera de modo extrao o incluso ni se vera. Podra tratar de corregir el cdigo para cada situacin especfica, pero esto no siempre es posible. Adems, en funcin de la plataforma en la que se implemente Java, su utilizacin puede variar notablemente aunque se trabaje con el mismo navegador. Por ejemplo, un applet multi-hilo puede ejecutarse en una plataforma, pero debido a problemas del modelo de proceso de conexin en una plataforma diferente, es posible que los procesos se ejecuten secuencialmente en una plataforma diferente. A menudo, los navegadores no se actualizan para todas las plataformas a la vez, por lo que las actualizaciones de las plataformas menos utilizadas pueden aparecer ms tarde. Estas diferencias incrementan el tiempo que debe invertir en tareas de comprobacin y depuracin con un navegador determinado.
Utilice el Plug-in de Java. La mayora de los problemas con los navegadores se puede resolver con el Plug-in de Java, que se encuentra en http://java.sun.com/products/ plugin/ Este plug-in proporciona archivos recopilatorios actualizados del JDK, lo que resulta de gran utilidad si sus applets utilizan Swing (JFC). Deber modificar los archivos HTML para que el applet utilice el plug-in. Sun proporciona una utilidad que realiza la conversin de forma rpida y sencilla. Si desea ms informacin sobre el Convertidor HTML, consulte http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/ html_converter.html. El uso del Plug-in de Java es la nica manera de disponer del mismo JDK en los diferentes navegadores. Adems, generalmente el JDK que se obtiene es ms reciente que el JDK del navegador. Algunas extensiones incorporadas por los fabricantes de navegadores pueden no funcionar del mismo modo con el plug-in. La primera vez que un usuario final encuentre una pgina que interpreta el Plug-in de Java, se le solicitar que instale el plug-in. Una vez instalado, el equipo cliente dispondr localmente de una MV oficial de Sun y del JDK ms reciente (incluido Swing). Esto slo se utilizar en las pginas que interpreten el plug-in, pero reduce la descarga en el navegador de la tecnologa ms reciente del JDK.
Importante
Existen varias versiones de plug-in: JDK 1.1.x, 1.2.x, 1.3.x y 1.4.x. Se debe utilizar la versin que coincida con el JDK del applet. Adems, la versin del Convertidor HTML debe coincidir con la versin del plug-in. Observe
C a p t u l o 1 4 : L a s a p p l e t s
1 4 -7
tambin que slo puede tener una versin del Plug-in en la mquina cliente.
s
Utilice la misma versin del JDK admitido en los navegadores. Evitar muchos problemas al escribir applets utilizando el mismo JDK que admiten los navegadores. JBuilder Developer y Enterprise le permiten cambiar la versin de JDK utilizada para el desarrollo. Aunque JBuilder Personal no admite el cambio de JDK, s permite editar el JDK en uso. Consulte Herramientas|Configurar JDK y Modificacin del JDK en el captulo Creacin y gestin de proyectos de Creacin de aplicaciones con JBuilder.
Instale en el ordenador cliente las clases que no pertenecen al grupo principal de Java. Cada navegador tiene un directorio que Java utiliza en las bsquedas basadas en CLASSPATH por lo que, si se colocan all los grandes archivos de revisiones que utiliza localmente el applet, el cliente no tendr que descargarlos. Esto es posible slo en un entorno Intranet, o cuando desde Internet trabaje slo con clientes conocidos (como en un servicio basado en suscripciones). Sin embargo, esto dificulta las futuras actualizaciones del cdigo.
Seleccione un navegador. Los usuarios deben utilizar slo un navegador para minimizar la necesidad de cdigo y mantenimiento especiales. Normalmente esto slo es posible en una intranet en la que el administrador del sistema puede establecer la poltica interna.
Use Java Web Start. Java Web Start es una tecnologa de distribucin de Sun Microsystems. Permite ejecutar applets (y aplicaciones) Java en el navegador web desde un enlace en una pgina web. Java Web Start resuelve el problema de la falta de coincidencia de la versin del JDK. Si el navegador tiene el plug-in de Java Web Start, puede descargar automticamente el JDK apropiado para ejecutar el applet. Si desea obtener ms informacin sobre Web Start, consulte el Captulo 16, Ejecucin de aplicaciones web con Java Web Start, y visite la pgina Java Web Start en http://java.sun.com/products/javawebstart/.
Site los archivos en la ubicacin correcta. Un problema comn con un applet distribuida es colocar los archivos en la ubicacin equivocada (por ejemplo, no se puede encontrar xyz.class). Todo est relacionado con el archivo HTML que abre el applet. Si no existe
14-8
un atributo CLASSPATH que ayude a encontrar las clases del applet, el applet se basa en los atributos codebase y code del archivo HTML para localizar las clases que necesita en la ejecucin. Por lo tanto, antes de comenzar la distribucin, es importante situar los archivos en la ubicacin correcta. El proceso de distribucin le puede resultar ms fcil si configura un entorno de trabajo que refleje las condiciones reales que tendr el applet una vez distribuido, con lo que el desarrollo se acerca un poco ms a la distribucin instantnea. Por ejemplo, cuando el valor de codebase es ., el navegador busca la clase y los archivos recopilatorios del applet en el mismo directorio que el archivo HTML. Tambin, si la clase est en un paquete, el navegador construye una va de acceso al directorio subordinado al directorio del archivo HTML de acuerdo con la estructura del paquete. Si utiliza el Asistente para applets de JBuilder, ste crea automticamente la estructura de este archivo. Cuando el applet est generado y en ejecucin en esta posicin, se pueden recopilar todos los elementos en un archivo JAR o ZIP. Luego, salga de JBuilder y pruebe el applet con los navegadores que vaya a utilizar.
Sugerencia
Es mejor utilizar una copia de la pgina HTML que se encuentra en el servidor, en el proyecto local, en vez de emplear una pgina experimental, ms sencilla. Esto aumenta el realismo de la prueba externa. Cuando est satisfecho, enve por todo el directorio a la pgina Web.
s
Utilice paquetes. Siempre debe utilizar paquetes cuando escriba cdigo en Java con el fin de organizar las clases similares. Esto facilita su localizacin y simplifica la distribucin. Los paquetes tambin contribuyen a evitar conflictos con los nombres de clases ya que el nombre del paquete precede al nombre de la clase en Java.
Utilice el navegador ms actual. Conozca los navegadores en los que se ejecutar su applet. Si utiliza herramientas actuales como JBuilder, probablemente genere cdigo JDK 1.3x o posterior y le harn falta los navegadores ms actuales para ejecutar sus applets. Asegrese de proporcionar el parche o el plug-in ms recientes para que coincidan la versin de JDK del navegador y la del applet. Consulte el Plug-in de Java que se encuentra en la direccin http://java.sun.com/ products/plugin/.
Haga coincidir las maysculas/minsculas. Recuerde que Java distingue maysculas y minsculas. Compruebe que todas las maysculas y minsculas de los nombres de clases, paquetes, archivos recopilatorios y directorios de la etiqueta <applet> coinciden exactamente con los nombres del servidor.
Utilice recopilatorios. Los recopilatorios simplifican la distribucin porque slo hay que cargar el archivo HTML y el archivo recopilatorio. Tambin aceleran el proceso de descarga del cliente; se descarga un archivo comprimido en lugar de los diferentes archivos de clase no comprimidos. Compruebe siempre la
C a p t u l o 1 4 : L a s a p p l e t s
1 4 -9
precisin de la estructura de directorios y de las maysculas y minsculas de los nombres de archivo en el archivo recopilatorio. Si desea mas informacin sobre la creacin de archivos recopilatorios, consulte Distribucin de las applets en la pgina 14-13 y Distribucin de applets en JBuilder en la pgina 14-24.
Importante
s
Las versiones ms antiguas de algunos navegadores no admiten varios archivos recopilatorios y slo admiten archivos ZIP no comprimidos. Distribuya todo. A menos que escriba algo que slo utilice clases bsicas de Java, debe distribuir en la web todos los archivos que necesite su applet. Por supuesto, debe distribuirlo todo en la ubicacin adecuada. Consulte Distribucin de las applets en la pgina 14-13 para obtener ms informacin.
s
Vuelva a comprobar el applet despus de distribuirlo en el servidor. No es suficiente con probarlo localmente. Tambin debe probarlo en varios navegadores despus de distribuirlo en el servidor. Esto es esencial si desea asegurarse de que todas las clases necesarias para el applet se distribuyen adecuadamente en el servidor y que la etiqueta <applet> coincide con la distribuida en el servidor, adems de encontrar posibles problemas relacionados con el navegador. Si desea ms informacin, consulte Comprobacin de las applets en la pgina 14-14.
El espacio de contencin
Las applets resuelven este asunto ejecutando todo el cdigo no fiable en un entorno seguro denominado espacio de contencin. En este lugar, las applets permanecen bajo la atenta mirada del administrador de seguridad. El Administrador de seguridad protege el ordenador cliente de los programas
14-1 0
dainos que podran eliminar archivos, leer informacin protegida o hacer algo que constituya una violacin del modelo de seguridad utilizado. A su vez, las restricciones impuestas por el Administrador de seguridad limitan lo que puede hacer un applet. Ahorrar tiempo y dinero si comprende estas limitaciones antes de escribir applets. Las applets, al igual que cualquier herramienta, realizan determinadas tareas muy bien. Sin embargo, si se intenta utilizar un applet en el contexto equivocado, slo habr problemas.
Leer y escribir en el disco local. No se pueden leer archivos, comprobar su existencia, escribir archivos, cambiar sus nombres, etc.
Conectarse con un ordenador que no sea el de procedencia del applet. Esto dificulta acceder a datos de una base que no resida en el servidor web.
Existen otras actividades que los desarrolladores de aplicaciones dan por descontadas (como la ejecucin de programas del sistema local, para ahorrar tiempo) que no se permiten con las applets. Un buen libro sobre Java incluir todas las restricciones que tienen las applets. Si percibe que est intentando evadir el control del Administrador de seguridad en algn punto de su planificacin, es preferible que considere escribir una aplicacin en lugar de un applet. Sun se ha esforzado mucho para definir su modelo de seguridad e identificar los bits de informacin clave, o tipos de datos, de los que dependen conjuntos completos de la funcionalidad. Por lo tanto, resulta muy difcil engaar al modelo de seguridad.
Autentifique el applet. Esto le permitir mitigar algunas de las restricciones planteadas por el Administrador de seguridad. Tiene algunas desventajas, como es la carencia de un mecanismo de autenticacin estndar que funcione en todos los navegadores. Si desea obtener ms informacin acerca de la autenticacin de archivos recopilatorios de applets, visite la sede web de su navegador. Si desea ms informacin sobre la firma de applets, consulte Code signing for Java applets, en http://www.suitable.com/docs/ signing.html.
1 4 -1 1
Los navegadores tienen parmetros que pueden utilizarse para ajustar el modelo de seguridad. Estos parmetros incluyen desde opciones muy simples que pueden ser elevada, media y baja hasta estructuras bastante flexibles. Lamentablemente, estos valores se aplican por igual a todas las applets. Aunque los usuarios pueden confiar en que su applet no resultar daina con un nivel de seguridad bajo, es difcil convencerlos de que piensen lo mismo sobre todas las applets que puedan encontrarse.
s
Utilice otras tecnologas para evitar al Administrador de seguridad. Por ejemplo, si se necesita simplemente devolver datos al servidor, escriba aplicaciones Java que se ejecuten en el servidor, como los servlets, con las que se comunique su applet. Este cdigo en el servidor no tiene las limitaciones del applet y puede ser bastante potente. Las aplicaciones en Java para el servidor requieren que tenga acceso al equipo servidor o trabaje con un PSI (Proveedor de servicios Internet) flexible y abierto.
Reconozca las tareas no adecuadas para las applets. La recoleccin de datos de formularios en la web y la recogida de esos datos probablemente es una tarea ms adecuada para los servlets o las Pginas JavaServer (JSP). Las operaciones complejas, como la utilizacin de bases de datos, requieren que en el servidor est disponible software adicional como JDBC. Es una solucin ms compleja, pero sin ella, las acciones normales de una base de datos, como el envo de nuevos datos, no son posibles con las applets. Si se est escribiendo un servlet o una JSP que utilice JDBC para conectar con una base de datos, se debera considerar la posibilidad de utilizar InternetBeans Express para crear un servlet o una JSP con enlace a datos. Consulte los captulos restantes en este manual si desea obtener ms informacin sobre estos temas.
Considere la posibilidad de escribir una aplicacin, un servlet o una JSP en lugar de un applet. La ventajas de las aplicaciones Java, incluido el acceso completo al lenguaje Java y la ausencia de problemas de seguridad, pueden superar las ventajas de las applets en determinadas situaciones. Los servlets y las JSP tambin tienen ventajas sobre las applets. No dependen del JDK del navegador del cliente, ya que Java se ejecuta en el servidor. Tambin, las servlets y las JSP son a menudo mas rpidas porque no necesitan descargarse en el navegador del cliente, como les ocurre a las applets.
14-1 2
Desarrolle el applet en un entorno local que reproduzca exactamente la estructura de directorios de su sede web. Utilice archivos recopilatorios. Utilice el Creador de recopilatorios en JBuilder Developer y Enterprise o la herramienta jar de JDK para crear los archivos recopilatorios.
s s
Importante
Si se escriben applets JDK 1.1.x con componentes Swing, lo que no se recomienda debido a las limitaciones de algunos navegadores, tambin ser necesario descargar y distribuir las clases JFC (Swing), swingall.jar, ya que no fueron suministradas como una parte del JDK.
Consulte
s s
Distribucin de applets en JBuilder en la pgina 14-24. Distribucin de programas en Java en Creacin de aplicaciones con JBuilder. La herramienta jar en Herramientas y Utilidades de Java 2 SDK. Java Web Start y JBuilder en la pgina 16-4.
s s
1 4 -1 3
C o m p r o b a c i n d e l a s a p p l e t s
Estos archivos se transfieren al servidor web en modo binario cuando se utiliza un cliente FTP. Los archivos se encuentran en las ubicaciones correctas en relacin con el archivo HTML que ejecuta el applet y el valor de codebase es correcto. Las maysculas y minsculas de los nombres en el servidor coinciden con las de los nombres originales. La etiqueta <applet> contiene el atributo archive con los nombres de los archivos de revisiones si el applet se distribuye en un archivo JAR o ZIP. La estructura de directorios coincide con la estructura de los paquetes.
La distribucin se analiza a fondo en Distribucin de programas en Java, en Creacin de aplicaciones con JBuilder.
14-1 4
C o m p r o b a c i n d e l a s a p p l e t s
5 Ejecute el appletviewer.
<jbuilder>/<jdk>/bin/appletviewer TestApplet.html donde <jbuilder> es el nombre del directorio de JBuilder y <jdk> es el nombre del directorio donde se ha instalado el JDK.
Nota
Si JBuilder est en otra unidad, incluya la letra de la unidad. En Windows, se utiliza la barra invertida (\). Si es la primera vez que ejecuta appletviewer, aparece una pantalla con el acuerdo de licencia. Pulse S. Si todo va bien, se podr ver el applet ejecutndose en el appletviewer. Si no, lea los mensajes de error que aparecen en la consola de appletviewer.
s s
Si aparece el error no se encuentra la clase, verifique la distribucin. Si hay una excepcin en tiempo de ejecucin, tal como NullPointerException, depure el cdigo para encontrar el error.
Asegrese de que el navegador tiene activado Java. Consulte la ayuda en lnea del navegador para obtener ms detalles. No utilice los botones Recargar o Actualizar despus de recompilar y distribuir el applet revisado. El navegador podra continuar cargando la versin anterior del applet desde la memoria cach. Utilice la Consola Java para leer los mensajes de error del navegador. Para abrir la Consola Java, lleve a cabo una de las acciones siguientes:
s
Seleccione Communicator|Herramientas|Consola de Java en las versiones antiguas de Netscape o, bien, Tareas|Herramientas|Consola de Java en las versiones ms recientes. Seleccione Ver|Consola Java en Internet Explorer.
Si desea ms informacin, consulte Solving Common Applet Problems, en el Tutorial de Java Writing Applets.
1 4 -1 5
Un Asistente para applets que permite crear rpidamente un applet. Un diseador para disear visualmente una interfaz de usuario de un applet. AppletTestBed de JBuilder para ejecutar y depurar applets. Appletviewer de Sun para ejecutar y depurar applets.
s s
Tutorial: Creacin de un applet enIntroduccin a JBuilder. Introduccin al diseador en Diseo de aplicaciones con JBuilder.
Si va a crear un applet para la web, consulte Los navegadores en la pgina 14-5 para obtener informacin sobre la compatibilidad de los navegadores y los JDK antes de disear el applet.
Las vas de acceso a los archivos del proyecto estn predefinidas en las propiedades por defecto del proyecto. Es recomendable que slo los usuarios de Java experimentados modifiquen este parmetro. Si desea ms informacin sobre las propiedades por defecto del proyecto, consulte Creating and managing projects en Creacin de aplicaciones con JBuilder. El nombre del paquete del proyecto se deriva del nombre de archivo, y se muestra en el Asistente para applets. Por ejemplo, si crea un proyecto denominado <home>/jbproject/AppletProject, el Asistente para applets le propondr utilizar el nombre de paquete appletproject. Si desea ms informacin sobre los paquetes, consulte el apartado Paquetes, en el captulo Creacin y gestin de proyectos de Creacin de aplicaciones con JBuilder.
14-1 6
a Pulse Siguiente para pasar a la ficha Indique las vas de acceso del
proyecto del Asistente para proyectos. Las vas de acceso son las siguientes: Va de acceso a JDK Va de salida La va de acceso al JDK en que se compila el proyecto. Donde se guardan los archivos de clase y el archivo HTML del applet.
Va de acceso a las copias Donde se guardan las copias de seguridad. de seguridad Directorio de trabajo directory Va de acceso a archivos fuente El directorio de trabajo del proyecto. Donde se guardan los archivos fuente y de prueba. Por defecto es donde se guardan los archivos fuente, Test es donde se guardan los archivos de comprobacin de mdulos. Donde se guardan los archivos de documentacin.
Documentacin path
Las vas de acceso a archivos generados, copias de seguridad y directorio de trabajo, as como la va de acceso al JDK, se pueden modificar pulsando el botn puntos suspensivos. Las vas de acceso a archivos fuente, de prueba y documentacin se pueden modificar seleccionando la va de acceso y, a continuacin, pulsando el botn Modificar. Tambin es posible aadir las bibliotecas necesarias.
Consulte
s s
Configuracin del JDK en Creacin de aplicaciones con JBuilder. Cmo construye JBuilder las vas de acceso en Creacin de aplicaciones con JBuilder.
Si desea aadir un parmetro, pulse el botn Aadir parmetro. Para seleccionar una celda, haga clic en ella o desplcese por medio de las teclas de desplazamiento. Para introducir un valor en una celda, escrbalo o seleccinelo en la lista desplegable, si la hay. Si desea quitar un parmetro, haga clic en una celda de su fila y pulse el botn Eliminar parmetro.
Las definiciones de los campos de parmetros son: Nombre El nombre del parmetro. Se usar para proporcionar el atributo name en la etiqueta <param> en el archivo HTML y el parmetro name de la llamada getParameter() correspondiente en el cdigo fuente de Java. El tipo de variable que se inserta en el cdigo fuente Java del applet para recoger el valor del parmetro procedente de la pgina HTML.
Tipo
14-1 8
Desc
Breve descripcin del parmetro. Se utiliza para describir el parmetro cuando, mediante herramientas externas, se hace una consulta sobre los parmetros que acepta el applet. Una de estas herramientas, por ejemplo, est en Applet|Info browser del appletviewer. Nombre de la variable que se inserta en el cdigo fuente Java del applet para recoger el valor del parmetro procedente de la pgina HTML.
Variable
Valor por defecto El valor por defecto del parmetro. ste es el valor que el cdigo fuente Java de esta applet utiliza si un futuro archivo HTML que use el applet no dispone de una etiqueta <param> para este parmetro. Los archivos HTML no facilitan este parmetro si el atributo name de la etiqueta <param> no coincide exactamente con lo introducido en la columna Nombre. Para garantizar la coincidencia, las maysculas y las minsculas tambin deben coincidir.
En JBuilder Developer y Enterprise, active la opcin Crear una configuracin de ejecucin y escriba un nombre para la configuracin en el campo Nombre. Si desea ms informacin, consulte Creacin de una configuracin de ejecucin en la pgina 8-2. En JBuilder Foundation, asegrese de que est activada la opcin Sobrescribir la configuracin existente. Escriba el nombre de la configuracin en el campo Nombre.
g Pulse Finalizar para generar los archivos .java y HTML del applet.
El Asistente para applets crea dos archivos si se selecciona la opcin Generar pgina HTML en la ficha Detalles HTML:
s
Un archivo HTML que contiene una etiqueta <applet> con una referencia a la clase applet. ste es el archivo que debe seleccionar para ejecutar o depurar el applet. Una clase Java, que se deriva de Applet o JApplet y se puede disear por medio del diseador de interfaces de usuario.
1 4 -1 9
Nota
En el panel del proyecto tambin aparece automticamente un nodo de paquete de cdigo fuente si se ha seleccionado la opcin Activar la localizacin y compilacin de paquetes fuente de la ficha General del cuadro de dilogo Propiedades de proyecto (Proyecto| Propiedades de proyecto).
Consulte
s s
Creacin de applets con el Asistente para applets en la pgina 14-16. Tutorial: Creacin de un applet enIntroduccin a JBuilder.
Ejecucin de applets
Para ejecutar un applet en un proyecto:
1 Guarde todos los archivos. 2 Compile el proyecto. 3 Realice una de las operaciones siguientes:
s
Seleccione Ejecutar|Ejecutar proyecto o pulse el botn Ejecutar de la barra de herramientas con el fin de ejecutar el applet desde la clase principal en el AppletTestbed de JBuilder. (En JBuilder Developer y Enterprise, elija la configuracin de ejecucin, si hay varias.) Haga clic con el botn derecho del ratn en el archivo HTML del applet en el panel del proyecto. Este archivo debe tener una etiqueta <applet>. Seleccione Ejecutar para ejecutar el applet en el appletviewer de Sun. (En JBuilder Developer y Enterprise, elija la configuracin de ejecucin, si hay varias.)
Nota
Tambin se puede seleccionar el archivo .java del applet si tiene un mtodo main() y selecciona Ejecutar. En la ficha Introduzca informacin sobre la clase del applet, del Asistente para applets, se puede crear un applet con un mtodo main(), si selecciona la opcin Puede ejecutarse autnomamente. El applet se compila y, si no se producen errores, se ejecuta. El progreso de la generacin se muestra en un cuadro de dilogo, mientras que el panel de mensajes muestra los errores de compilacin. Si el programa se compila correctamente, se muestra la va de acceso a clases en el panel de mensajes y el programa se ejecuta.
El comportamiento por defecto es como sigue, si se ha creado el applet con el Asistente para applets:
14-2 0
Seleccione Ejecutar|Ejecutar proyecto o pulse el botn Ejecutar para ejecutar el applet desde la clase principal en AppletTestbed, el visualizador de applets de JBuilder. (En JBuilder Developer y Enterprise, elija la configuracin de ejecucin, si hay varias.) Haga clic con el botn derecho en el archivo HTML del applet y seleccione Ejecutar para ejecutar el applet en el appletviewer (visualizador de aplicaciones) de Sun. (En JBuilder Developer y Enterprise, elija la configuracin de ejecucin, si hay varias.)
Puede cambiar el comportamiento por defecto de Ejecutar|Ejecutar proyecto y del botn Ejecutar si personaliza la configuracin de ejecucin del applet. Hay dos posibilidades para ejecutar un applet en JBuilder:
s s
Clase principal: con el AppletTestbed de JBuilder Archivo HTML: con el appletviewer de Sun
Clase principal
Cuando se selecciona un clase principal para ejecutar el applet, se ejecuta en el visualizador de applets de JBuilder, AppletTestbed. Cuando se crea un applet usando el Asistente para applets, ste fija la clase principal automticamente. La clase seleccionada debe contener un mtodo init().
Archivo HTML
Cuando se selecciona un archivo HTML para ejecutar el applet, se ejecuta en el appletviewer de Sun. El archivo HTML debe contener la etiqueta <applet> y el atributo code debe contener el nombre completo de la clase. Si el archivo de clase no se encuentra en el mismo directorio que el archivo HTML, el atributo codebase debe indicar la posicin del archivo de clase en relacin con el archivo HTML.
1 4 -2 1
Depuracin de applets
Se pueden depurar applets en el IDE de JBuilder de igual forma que procede con los programas Java. Al igual que hay dos formas de ejecutar las applets en JBuilder, tambin se pueden depurar de dos maneras: el AppletTestbed de JBuilder y el appletviewer de Sun. Para depurar con AppletTestbed de JBuilder, se debe ejecutar la clase principal del applet que contiene el mtodo init():
1 Defina la clase principal del applet, la cual contiene el mtodo init(), como
clase ejecutable (utilice una configuracin de ejecucin).
2 Compile el proyecto. 3 Defina un punto de interrupcin en el archivo applet. 4 Elija Ejecutar|Depurar proyecto o pulse el botn Depurar de la barra de
herramientas. El depurador toma el control.
Nota
Si est desarrollando un applet con un JDK anterior, para depurar necesitar cambiar a un JDK ms reciente (JDK 1.2.2 o posterior). Los JDK ms antiguos no admiten la API de depuracin de JPDA (Arquitectura del depurador para plataforma Java) que utiliza JBuilder. Consulte Configuracin del JDK en Creacin de aplicaciones con JBuilder. Si desea instrucciones ms detalladas sobre la depuracin en JBuilder, consulte Depuracin de programas en Java en Creacin de aplicaciones con JBuilder. Para depurar con el appletviewer de Sun, debe ejecutar el archivo HTML utilizando uno de estos mtodos:
s
a Compile el proyecto. b Defina un punto de interrupcin en el archivo applet. c Haga clic con el botn derecho en el archivo HTML del applet, en el
panel del proyecto, y elija Depurar. El depurador toma el control.
s
b Compile el proyecto. c Defina un punto de interrupcin en el archivo applet. d Elija Ejecutar|Depurar proyecto o pulse el botn Depurar de la barra de
herramientas. El depurador se carga en el panel de mensajes y el applet se ejecuta en el appletviewer de Sun.
14-2 2
Tambin se pueden depurar las applets desde Internet Explorer 5 o Netscape Navigator 6 y superior mediante el Plug-in de Java y el depurador de JBuilder. Para realizar la depuracin con el JDK 1.4.2:
1 Descargue e instale el plugin para el JDK 1.4 desde la pgina web de Sun:
http://java.sun.com/products/plugin/.
3 Inicie JBuilder y haga lo siguiente: a Cree un proyecto. b Utilice el Asistente para applets con el fin de crear una applet sencilla
que se ejecute desde un archivo HTML. Asegrese de que la applet utiliza Swing para su clase base (javax.swing.JApplet). Aada un JPanel a la applet y configure la presentacin en GridBagLayout. Aada un botn JButton al panel, y un suceso al botn que cambie el texto del botn.
1 Active la casilla de seleccin Activar depuracin remota. 2 Seleccione la opcin Acoplarse. 3 Compruebe que el campo Nombre del host est configurado en
localhost.
4 Compile el proyecto. 5 Ejecute el Convertidor HTML y convierta el archivo HTML del applet (en el
directorio classes del proyecto) al formato requerido por el plugin de Java. Si desea ms informacin sobre el Convertidor HTML y el modo de ejecutarlo, consulte la pgina web de Sun, en http://java.sun.com/j2se/ 1.4.2/docs/guide/plugin/developer_guide/html_converter.html.
Nota
1 4 -2 3
Consulte
s
Utilizacin del Creador de recopilatorios en Creacin de aplicaciones con JBuilder. Distribucin de programas en Java Creacin de aplicaciones con JBuilder. Herramienta jar en http://java.sun.com/j2se/1.4.2/docs/tooldocs/ tools.html#basic. Captulo 3, Los mdulos web y los archivos WAR.
14-2 4
Captulo
Captulo 15
Tanto los servlets de Java como las Pginas de JavaServer (JSP) se ejecutan dentro de servidores web. Tomcat, la implementacin de referencia de las Pginas de JavaServer/ Servlets de Java, se incluye en JBuilder. Aunque pudiera ser diferente de su servidor web, Tomcat permite desarrollar y comprobar sus servlets y JSP dentro del entorno de desarrollo de JBuilder. En este captulo se explica cmo se trabaja cuando Tomcat se ejecuta en JBuilder. Cuando se instala JBuilder Enterprise, tres versiones de Tomcat la 3.3, la 4.0 y la 4.1 se instalan automticamente en el directorio de JBuilder. Por defecto, se configuran automticamente. Se puede examinar dicha configuracin con el cuadro de dilogo Configurar servidores. Tomcat 4.0 y 4.1 forman JDK 1.4 Lightweight Editions. Estas ediciones no contienen un analizador XML (JDK 1.4 lleva uno incorporado) ni algunos componentes disponibles para el pblico. Puede descargarse la edicin completa en http://jakarta.apache.org/ y utilizar en cuadro de dilogo Configurar servidores para apuntar hacia ella.
Nota
En JBuilder Enterprise, Tomcat 4.0 es el servidor por defecto. Para cambiar el funcionamiento por defecto del proyecto, consulte Configuracin de servidores en JBuilder en Desarrollo de aplicaciones para servidores J2EE. Para ver las configuraciones de Tomcat:
En el rbol de la izquierda del cuadro de dilogo, las entradas en gris todava no han sido configuradas. Las entradas en rojo no son vlidas.
C a p t u l o 1 5 : J B u i l d e r c o n T o m c a t
1 5 -1
Clase principal Parmetros de la MV Parmetros del servidor Directorio de trabajo Clase Fuente Documentacin Bibliotecas necesarias
Si necesita ms informacin acerca de Tomcat o si quiere ejecutarlo de forma autnoma, encontrar ms informacin en el directorio de la documentacin de instalacin de Tomcat de JBuilder:
s s
Tomcat 3.3: <jbuilder>/thirdparty/jakarta-tomcat-3.3.1/doc Tomcat 4.0: <jbuilder>/thirdparty/jakarta-tomcat-4,00,6-LE-jdk14/webapps/ tomcat-docs Tomcat 4.1: <jbuilder>/thirdparty/jakarta-tomcat-4.10,27-LE-jdk14/webapps/ tomcat-docs
Importante Nota
Tomcat 4.1 no admite la depuracin de JSP. Borland Enterprise Server AppServer Edition 5.2.1 utiliza Tomcat de forma interna para el servidor web de produccin. Si se utiliza Borland Enterprise Server, no es necesario configurar Tomcat por separado.
15-2
1 Seleccione Proyecto|Propiedades de proyecto. 2 Pulse el nodo Servidor. Se muestra la ficha Servidor. 3 Seleccione la opcin Servidor nico para todos los servicios del proyecto y
elija la versin de Tomcat deseada en la lista desplegable.
El nico servicio disponible para Tomcat 3.3 es el servicio JSP/Servlet. Para Tomcat 4.0 y 4.1 estn disponibles los servicios JSP/Servlet y Denominacin/ Directorio.
C a p t u l o 1 5 : J B u i l d e r c o n T o m c a t
1 5 -3
E j e c u c i n d e s e r v l e t s y J S P c o n T o m c a t
servidor debe admitir el servicio JSP/Servlet. Si desea crear una configuracin de ejecucin, consulte Creacin de una configuracin de ejecucin en la pgina 8-2.
Nota
Las applets no pueden ejecutarse o depurarse. Esto se debe a que no tienen una URL o un contexto web en el que ejecutarse. Adems, las applets se ejecutan en el navegador de un cliente, en lugar de un servidor. Habitualmente, un applet se ejecuta en appletviewer, de Sun, o en AppletTestbed, de JBuilder. Si desea ms informacin, consulte El Appletestbed de JBuilder y el appletviewer de Sun en la pgina 14-20.
Inicio de Tomcat
Cuando se selecciona Ejecutar web, JBuilder inicia Tomcat mediante:
s s
Los mensajes se registran en la pestaa Servidor web, mostrada en el panel de mensajes al final del Visualizador de aplicaciones. Los comandos HTTP y los valores de los parmetros se envan a este panel. El nombre de la pestaa reflejar el del servidor web, por ejemplo, Tomcat en el caso del servidor web Tomcat.
Detencin de Tomcat
Para detener Tomcat, pulse el botn Terminar el programa de la pestaa del servidor web. Si desea iniciar de nuevo el servidor web y volver a ejecutar la aplicacin web, pulse el botn Terminar el programa de la pestaa. Cuando se hagan cambios en el cdigo fuente, se recompile y se vuelva a ejecutar, lo ms probable ser que se sigan estos pasos. No se necesita cerrar el panel de servidor Web cada vez que se inicia el servidor Web.
Nota
La primera vez que se pulsa el botn Terminar el programa, simplemente enva un comando al servidor para que se apague. Concretamente, si se intentan depurar los manejadores de sucesos del ciclo de vida de la aplicacin web, se realiza una llamada a los mtodos Servlet.destroy() y ServletContextListener.contextDestroyed(). Si no est depurando, el servidor, por lo general, se apaga por s solo (Tomcat lo hace en unos segundos; a otros servidores les lleva ms tiempo). En cualquier caso, si se pulsa el botn Terminar programa una segunda vez, el proceso que est realizando el servidor se termina inmediatamente.
15-4
1 Ejecute su aplicacin web en JBuilder como lo hara normalmente. 2 Mientras se est ejecutando Tomcat, dirjase al directorio de su proyecto
Tomcat\conf. Esta carpeta la crea JBuilder cuando se est ejecutando su aplicacin web.
3 Realice una copia del directorio conf en un directorio temp. 4 Abra serverXXXX.xml en el directorio conf en un editor de texto. 5 Elimine la segunda lnea del archivo:
<!--This comment marks this file as generated, so it may be deleted and regenerated at any time (Este comentario marca el archivo como generado, con lo que se puede borrar y volver a generarse en cualquier momento). To preserve manual changes to this file, delete this comment. (Para conservar los cambios manuales realizados en este archivo, borre este comentario)--> Con esta lnea eliminada, JBuilder no borrar automticamente el archivo al detener el servidor.
C a p t u l o 1 5 : J B u i l d e r c o n T o m c a t
1 5 -5
E j e c u c i n d e s e r v l e t s y J S P c o n T o m c a t
7 Vuelva a JBuilder y apague Tomcat. 8 Guarde el archivo modificado en la copia del directorio conf. 9 Vuelva a copiar el directorio conf en el directorio Tomcat de su proyecto. 10 Reinicie el servidor web y su aplicacin web.
Al reiniciar la aplicacin web y el servidor web, se utilizar el archivo modificado serverXXXX.xml en lugar de un archivo generado automticamente.
15-6
Captulo
Captulo 16
Java Web Start, una tecnologa de distribucin de Sun Microsystems, permite iniciar cualquier applet o aplicacin Java desde un enlace de una pgina web en su navegador. Si la aplicacin no est presente en su ordenador, Java Web Start descarga todos los archivos necesarios y los almacena localmente en el cach de forma que el programa pueda volverse a iniciar desde un icono en su escritorio o desde el vnculo de la pgina web. Java Web Start es la implementacin de referencia de la tecnologa del Protocolo Java de inicio desde la red (JNLP). Esta tecnologa define un formato de archivo estndar que describe cmo iniciar una aplicacin JNLP. El Asistente para el inicio de Web Start de JBuilder genera automticamente un archivo JNLP, as como un pgina de inicio HTML para la aplicacin. Si desea obtener ms informacin sobre Web Start, visite la pgina Java Web Start en http://java.sun.com/products/javawebstart/. Tambin puede consultar en:
s
The Java Web Start Developers Guide en http://java.sun.com/products/ javawebstart/docs/developersguide.html. Frequently Asked Questions en http://java.sun.com/products/ javawebstart/faq.html.
C a p t u l o 1 6 : E j e c u c i n d e a p l i c a c i o n e s w e b c o n J a v a W e b S t a r t
1 6 -1
16-2
3 Haga clic en el primer enlace, Java Web Start 1.4.2. Aparece la pgina
Download Java Web Start 1.4.2.
8 Acepte el acuerdo de licencia. 9 Abra el ejecutable para ejecutar el programa de instalacin del JDK 1.4.2
JRE.
a Acepte el acuerdo de licencia y pulse Next. b En la pantalla Setup Type, seleccione la opcin Typical y pulse Next. c Pulse Finish cuando termine la instalacin.
Importante
Es necesario configurar opciones adicionales si se utiliza Netscape 6. Si desea ms informacin, dirjase al tema Using Java Web Start Technology with NetscapeTM 6 Web Browsers de la Java Web Start Installation Guide,
C a p t u l o 1 6 : E j e c u c i n d e a p l i c a c i o n e s w e b c o n J a v a W e b S t a r t
1 6 -3
Si desea utilizar la API de Java Web Start, es necesario que incluya la biblioteca Java Web Start en el proyecto. Esta biblioteca ya est configurada y utiliza el archivo javaws.jar de la carpeta <jbuilder>/jdk1.4/jre/javaws (no el Java Web Start del JRE instalado).
2 Cree un mdulo web con el Asistente para mdulos web. Para obtener ms
informacin sobre mdulos web, consulte el Captulo 3, Los mdulos web y los archivos WAR.
Creador de recopilatorios
Si desea ms informacin sobre la creacin de archivos JAR, consulte El Creador de recopilatorios en Creacin de aplicaciones con JBuilder.
16-4
Paso 2: introduzca informacin del applet (slo se muestra con las applets)
9 Pegue la direccin URL en el campo Ubicacin del navegador externo. 10 Pulse en el enlace a la aplicacin en la pgina web. Tenga en cuenta que
slo se ejecutar si se ha instalado Java Web Start 1.4.2 independientemente. Todos estos pasos se describen con ms detalle en el Captulo 21, Tutorial: Ejecucin de CheckBoxControl con Java Web Start.
Nota
El uso de Java Web Start con applets resuelve los problemas de incompatibilidad del navegador. Siempre que el navegador tenga el plugin
1 6 -5
C a p t u l o 1 6 : E j e c u c i n d e a p l i c a c i o n e s w e b c o n J a v a W e b S t a r t
Java Web Start, podr descargar automticamente los JDK adecuados para ejecutar el applet. La clase principal de un applet Java Web Start es la clase real del applet a ejecutar. La ficha de informacin de applet recoge unos cuantos valores necesarios para simular que el applet est ejecutndose en una pgina web, que es donde un applet espera ejecutarse (cuando de hecho est siendo alojado por el plugin Java Web Start).
El Asistente para el inicio de Web Start supone que ya ha creado y generado el archivo JAR de su aplicacin. El asistente para el inicio de Web Start otorga el mismo nombre a los archivos JNLP y HTML. Si el nombre introducido en el campo Nombre en el Paso 1 del asistente coincide con un archivo HTML o JNLP existente en el proyecto, se le pregunta si quiere sobrescribirlo. El archivo JNLP es un documento XML. Los elementos del archivo describen las caractersticas de la aplicacin, como el nombre de la aplicacin, el fabricante y la pgina de inicio; as como las caractersticas JNLP. Si desea ms informacin, consulte JNLP File Syntax en la Developers Guide de Java Web Start, en http://java.sun.com/products/javawebstart/docs/ developersguide.html.
Nota
Antes de distribuir la aplicacin de Web Start, se debe cambiar el atributo codebase en el archivo JNLP. Este atributo se genera automticamente como localhost:8080. Necesitar cambiarlo para que coincida con su servidor Web. Como parte del kit de desarrollo, Java Web Start 1.2 incluye ahora un servlet que le permite generar automticamente la base de cdigo apropiada. Si desea obtener ms informacin, consulte http://java.sun.com/products/ javawebstart/1.2/docs/downloadservletguide.html. La pgina de inicio de su aplicacin es un archivo HTML que contiene cdigo tanto de JavaScript como de VBScript y etiquetado HTML. El script determina si se est ejecutando el archivo HTML en JBuilder o desde un navegador web
16-6
externo. Si usted est en JBuilder, ver un mensaje en la vista Web que informa sobre la necesidad de Java Web Start para ejecutar esta aplicacin. La vista web tiene este aspecto: Figura 16.1 Vista web de Java Web Start
Si se encuentra en el navegador externo, pegue la direccin URL en el campo Ubicacin. Aparece un enlace a la aplicacin (si ya se ha instalado Web Start). Haga clic en el enlace para iniciar Java Web Start y ejecutar su aplicacin. El navegador externo tendr este aspecto. Figura 16.2 Navegador externo para Java Web Start
Importante
Las aplicaciones Java Web Start no pueden iniciarse desde JBuilder. Con el fin de iniciar su aplicacin, debe pegar la URL de la aplicacin en su navegador externo.
C a p t u l o 1 6 : E j e c u c i n d e a p l i c a c i o n e s w e b c o n J a v a W e b S t a r t
1 6 -7
16-8
Captulo
Captulo 17
En esta seccin se ofrecen sugerencias sobre el desarrollo, comprobacin, depuracin y ejecucin de aplicaciones web en un servidor web de produccin y en el IDE de JBuilder. Si desea obtener sugerencias sobre la depuracin de JSP, consulte Depurar pginas JSP en la pgina 6-14.
C a p t u l o 1 7 : S u g e r e n c i a s s o b r e a p l i c a c i o n e s w e b
1 7 -1
C r e a c i n d e J S P c o n n o m b r e s i g u a l e s
El asistente crea el subdirectorio y coloca en l la JSP. Para ver la pgina JSP en el panel del proyecto de JBuilder, pulse el nodo Mdulo Web y, a continuacin, el nodo Directorio del mdulo. Pulse la subcarpeta para mostrar la JSP en esa carpeta.
17-2
A d i c i n d e u n a r c h i v o X M L e s p e c f i c o d e l s e r v i d o r a l a r c h i v o W A R
que indica que el puerto est ocupado. Tambin es til activar esta opcin en el caso de que un problema de usuario provoque la cada del servidor web. Esta opcin proporciona proteccin en el caso de que el servidor web no se cierre de manera adecuada. Esta opcin funciona junto con las opciones de inicio de la ficha Web del cuadro de dilogo Preferencias (Herramientas|Preferencias) cuando un proceso ajeno a la web utiliza el puerto.
Nota
Esta opcin no est disponible si se utiliza JBuilder Developer con el contenedor web de Borland Enterprise Server AppServer Edition 5.2.1. Si el contenedor web est configurado para el uso en JBuilder Developer, se lee el puerto de Tomcat para el servicio JSP/Servlet y no se puede cambiar.
C a p t u l o 1 7 : S u g e r e n c i a s s o b r e a p l i c a c i o n e s w e b
1 7 -3
P r e s e n t a c i n d e l c o n t e n i d o d e l d i r e c t o r i o W E B - I N F
botn Copiar del lateral de la ficha. Haga clic en Aceptar para cerrar el cuadro de dilogo.
5 Haga clic con el botn derecho del ratn en el nodo del mdulo web, en el
panel del proyecto, y seleccione Limpiar.
7 Haga doble clic en el archivo WAR en el panel del proyecto para abrirlo en
el panel de estructura. Abra la carpeta WEB-INF/classes en el panel de estructura. Aparece la carpeta resources.
Nota
1 Haga clic con el botn derecho del ratn en el nodo del mdulo web, en el
panel del proyecto, y seleccione Propiedades.
Tambin se puede configurar esta opcin en la primera ficha del Asistente para mdulos web al crear el mdulo.
17-4
C o m p r o b a c i n d e u n a a p l i c a c i n w e b e n u n n a v e g a d o r e x t e r n o
Cree una Action o un FormBean mediante el Asistente para Action o el Asistente para ActionForm. Active la opcin Abrir el Diseador de Action o Abrir el Diseador de Form Bean en la primera ficha del asistente. Si se pulsa Finalizar en el asistente, el diseador se abre automticamente. Haga clic con el botn derecho en el nodo del panel de estructura correspondiente al archivo struts-config.xml y seleccione Aadir Action o Aadir FormBean. En la ficha Visin general del Editor de configuracin de Struts, seleccione Aadir. Escriba el nombre de la Action o del Form Bean, seleccinelo y haga clic en Modificar. Aparece el diseador visual. Haga doble clic en una Action o en un Form Bean, en el panel de estructura, para el archivo struts-config.xml. Aparece el diseador visual.
C a p t u l o 1 7 : S u g e r e n c i a s s o b r e a p l i c a c i o n e s w e b
1 7 -5
A p e r t u r a d e l d i s ea d o r d e T i l e s
2 Para aadir una definicin, pulse el botn Aadir de la ficha Visin general,
seleccinela y pulse Modificar.
3 Para modificar una definicin, seleccinela y pulse el botn Modificar. 4 Seleccione la pestaa Diseador de Definition para abrir el Diseador de
Tiles.
2 Haga clic con el botn derecho del ratn en la carpeta Struts 1.1 del nodo
Descriptor de distribucin del mdulo web. Seleccione Propiedades para abrir el cuadro de dilogo Propiedades de Struts.
17-6
Adici n y r e g i s t r o d e d e s c r i p t o r e s d e d i s t r i b u c i n
descriptor de distribucin de Tiles, pulse el botn Aadir de la parte inferior del cuadro de dilogo.
C a p t u l o 1 7 : S u g e r e n c i a s s o b r e a p l i c a c i o n e s w e b
1 7 -7
17-8
Captulo
Captulo 18
Este tutorial muestra cmo desarrollar y probar un servlet en JBuilder, mediante el motor servlet Tomcat. Dicho servlet acepta entradas del usuario y cuenta el nmero de visitantes a una sede web. El servlet, generado con el Asistente para servlets, muestra un formulario para remitir un nombre de usuario. Cuando se enva el formulario, el servlet cambia para mostrar el nombre del usuario y un contador del nmero de visitantes. Todos los servlets se generan ampliando una clase Servlet bsica y definiendo mtodos Java para atender las conexiones entrantes. El servlet de este ejemplo ampla la clase HttpServlet, que interpreta el protocolo HTTP y realiza la mayora de las operaciones subyacentes que necesitan las aplicaciones web. Si desea ms informacin sobre los servlets, consulte los siguientes apartados:
s s
Para obtener ms informacin sobre mdulos web, consulte el Captulo 3, Los mdulos web y los archivos WAR. Este tutorial supone que usted est familiarizado con Java y con el IDE (Entorno integrado de desarrollo) de JBuilder. Para obtener ms informacin sobre los constructores, consulte Procedimientos iniciales con Java. Para obtener ms informacin sobre el IDE de JBuilder IDE, consulte El entorno de JBuilder en Introduccin a JBuilder.
C a p t u l o 1 8 : T u t o r i a l : C r e a c i n d e u n s e r v l e t s i m p l e
1 8 -1
P a s o 1 : C r e a c i n d e l p r o y e c t o y s e l e c c i n d e l s e r v i d o r
El apartado de opciones de accesibilidad en las Sugerencias de JBuilder contiene sugerencias sobre la utilizacin de las funciones de JBuilder para mejorar la facilidad de uso de JBuilder por parte de personas con discapacidades. Para obtener informacin sobre las convenciones utilizadas en este tutorial y en otra documentacin de JBuilder, consulte Convenciones de la documentacin en la pgina 1-3.
1 Seleccione Archivo|Nuevo proyecto para abrir el Asistente para proyectos. 2 Escriba SimpleServlet en el campo Nombre, tal como se muestra en la
siguiente ilustracin. El campo Directorio se rellena automticamente.
18-2
P a s o 2 : C r e a c i n d e l m d u l o w e b
2 Aparece la ficha Seleccionar origen del mdulo web del Asistente para
Mdulo Web. Deje la opcin por defecto, Crear mdulo web vaco. La ficha presenta un aspecto similar al siguiente:
C a p t u l o 1 8 : T u t o r i a l : C r e a c i n d e u n s e r v l e t s i m p l e
1 8 -3
P a s o 2 : C r e a c i n del m d u l o w e b
5 Deje la opcin Estndares disponibles con el valor Servlet 2.3 y JSP 1.2.
La ficha Introduzca atributos bsicos para aplicaciones web del Asistente para Mdulo Web debe tener un aspecto parecido al siguiente:
Para obtener ms informacin sobre mdulos web, consulte el Captulo 3, Los mdulos web y los archivos WAR.
18-4
Introducir el nombre de clase del servlet. Escoger el tipo de servlet y su tipo de contenido. Escoger los mtodos HTTP que hay que implementar. Crear un archivo de formulario HTML para probar el servlet. Crear parmetros para el servlet. Crear una configuracin de ejecucin para ejecutar en el IDE.
Si desea obtener ms informacin sobre las opciones, pulse el botn Ayuda del asistente. Para crear esta aplicacin:
C a p t u l o 1 8 : T u t o r i a l : C r e a c i n d e u n s e r v l e t s i m p l e
P a s o 3 : C r e a c i n d e l s e r v l e t c o n e l A s i s t e n t e p a r a s e r v l e t s
HTML con el formulario. La ficha Modificar detalles del servlet estndar debera tener este aspecto:
Tipo*
String
Desc Variable*
User!
userName.
18-6
Cuando termine, la ficha Introduzca los parmetros de la peticin del servlet del asistente debe tener este aspecto:
C a p t u l o 1 8 : T u t o r i a l : C r e a c i n d e u n s e r v l e t s i m p l e
1 8 -7
P a s o 4 : A d i c i n de cd i g o a l s e r v l e t
18-8
P a s o 5 : C o m p i l a c i n y e je c u c i n d e l s e rv l e t
Este cdigo se puede copiar y pegar directamente en el editor. Estas lneas de cdigo obtienen el valor UserName guardado por el mtodo doGet(). El valor de UserName aparece en una sentencia out.println. A continuacin, el cdigo incrementa el nmero de visitantes y lo muestra.
1 Seleccione Proyecto| Ejecutar Make del proyecto SimpleServlet.jpx. 2 Pulse el botn derecho en servlet1.html en el panel del proyecto. Se
encuentra en el nodo Directorio del mdulo del nodo WebModule1:
C a p t u l o 1 8 : T u t o r i a l : C r e a c i n d e u n s e r v l e t s i m p l e
1 8 -9
P a s o 5 : C o m p i l a c i n y e j e c u c i n d e l s e r v l e t
Nota
Tambin es posible ejecutar los servlets directamente si hace clic en el archivo .java con el botn derecho del ratn, en el panel del proyectos, y, a continuacin, selecciona Ejecutar web. En este ejemplo se ejecuta el servlet desde el archivo HTML porque es aqu donde se encuentra el cdigo correspondiente a los campos de introduccin de parmetros y el botn de envo, segn lo establecido en el Asistente para servlets. La ejecucin del archivo HTML inicia Tomcat, el servidor web por defecto de JBuilder. La salida de Tomcat se presenta en el panel de mensajes. Los comandos HTTP y los valores de parmetros tambin se reflejan en el panel de salida. Aparecen dos nuevas pestaas en el panel de contenido del servlet: Vista web y Ver cdigo fuente web. El archivo HTML aparece en la vista web. El campo URL de la parte superior de la vista web muestra la direccin URL http://localhost:8080/WebModule1/servlet1.html. La URL localhost:8080 representa el nombre de host y el puerto de Tomcat. La URI WebModule1/servlet1.html coincide con la seleccionada en el cuadro de dilogo URI de inicio. La vista web tiene este aspecto: Figura 18.1 Servlet que se ejecuta en la vista web
Nota
Puede que sea necesario pulsar el botn Actualizar de la parte superior de Vista web para que aparezca completamente el archivo HTML. Para ejecutar el servlet, escriba un nombre, como User en el campo de texto y pulse Enviar. Se llama al mtodo doPost() y la respuesta se muestra en el visualizador web, como se ve a continuacin. Figura 18.2 Servlet en ejecucin tras enviar el nombre
18-1 0
P a s o 5 : C o m p i l a c i n y e je c u c i n d e l s e rv l e t
Observe que la direccin URL ha cambiado a http://localhost:8080/ WebModule1/servlet1, lo que indica que el programa est ejecutando Servlet1.java. Para ejecutar de nuevo el servlet y ver el incremento del nmero de conexiones, pulse flecha atrs en la parte superior de la vista web. Introduzca otro nombre de usuario y pulse el botn Enviar. Cuando aparezca la respuesta del mtodo doPost(), ver que se ha incrementado el nmero de conexiones. Para detener el servidor web, pulse el botn Terminar el programa directamente encima de la pestaa del servidor web. Si se efectan cambios en el cdigo fuente, se debe detener el servidor web antes de su recompilacin y nueva ejecucin. Ya ha completado su primer programa servlet. Si desea crear un servlet ms avanzado que se conecta con una base de datos, consulte el Captulo 22, Tutorial: Creacin de un servlet que actualiza un libro de visitas.
C a p t u l o 1 8 : T u t o r i a l : C r e a c i n de un servlet simple
18 -1 1
18-1 2
Captulo
Este tutorial le acompaa a travs del desarrollo de una Pgina JavaServer (JSP) utilizando el Asistente para JSP de JBuilder. Esta JSP toma un texto como entrada, lo muestra como salida cuando se pulsa Enviar y utiliza un JavaBean para contar el nmero de visitas de la pgina. El Asistente para JSP constituye un buen punto de partida para la creacin de pginas JSP. No genera aplicaciones completas, sino que se encarga de todos los detalles repetitivos necesarios para que la aplicacin empiece a funcionar. Para abrir este asistente, seleccione Nuevo del men Archivo, pulse la pestaa Web y seleccione entonces JavaServer Page. Si desea obtener una completa informacin sobre las opciones del Asistente para JSP, consulte el tema Asistente para JSP en la ayuda en lnea. Para realizar pruebas en este tutorial, utilizar Tomcat. Este tutorial utiliza Tomcat porque viene incluido con JBuilder y no requiere una configuracin adicional. Tomcat es la implementacin de referencia de las especificaciones Java Servlet y Pginas JavaServer. Esta implementacin se puede utilizar en Apache Web Server y en otros servidores web y herramientas de desarrollo. Si desea ms informacin sobre Tomcat, consulte http://jakarta.apache.org. Este tutorial supone que usted est familiarizado con Java y con el IDE (Entorno integrado de desarrollo) de JBuilder. Para obtener ms informacin sobre los constructores, consulte Procedimientos iniciales con Java. Para obtener ms informacin sobre el IDE de JBuilder IDE, consulte El entorno de JBuilder en Introduccin a JBuilder.
C a p t u l o 1 9 : T u t o r i a l : C r e a c i n d e u n a J S P m e d i a n t e e l A s i s t e n t e p a r a J S P
1 9 -1
P a s o 1 : C r e a c i n d e p r o y e c t o s
El apartado de opciones de accesibilidad en las Sugerencias de JBuilder contiene sugerencias sobre la utilizacin de las funciones de JBuilder para mejorar la facilidad de uso de JBuilder por parte de personas con discapacidades. Para obtener informacin sobre las convenciones utilizadas en este tutorial y en otra documentacin de JBuilder, consulte Convenciones de la documentacin en la pgina 1-3.
2 Seleccione la ficha Servidor. 3 Asegrese de que el botn de radio Servidor nico para todos los servicios
del proyecto est seleccionado.
5 Pulse Aceptar.
1 Seleccione Archivo|Nuevo|Web. 2 Seleccione Mdulo Web (WAR) y pulse Aceptar. Aparece el Asistente para
mdulos web.
19-2
P a s o 3 : C r e a c i n d e u n m d u l o w e b
3 Deje seleccionada Crear mdulo web vaco (la opcin por defecto) y pulse
Siguiente.
5 Deje la opcin por defecto de Generar recopilatorio web. 6 Deje la opcin por defecto de Estndares disponibles. El asistente debe
tener un aspecto semejante a:
C a p t u l o 1 9 : T u t o r i a l : C r e a c i n d e u n a J S P m e d i a n t e e l A s i s t e n t e p a r a J S P
1 9 -3
P a s o 4 : C r e a c i n de l a J S P
1 Seleccione Archivo|Nuevo|Web. 2 Seleccione Pgina JavaServer y pulse Aceptar. Se abre el Asistente para
JSP.
3 En el campo Nombre, escriba JSPWithCounter. Este es el nombre de la JSP. 4 Active Generar Bean de ejemplo y desactive Generar pgina de error. El
asistente tendr un aspecto parecido a:
19-4
7 Pulse Finalizar para aceptar todos los valores por defecto de las restantes
fichas del asistente. Se aade un archivo JSPWithCounter.jsp al directorio raz del mdulo web. Ample el nodo Directorio del mdulo en el panel del proyecto, para verlo. Tambin se ha aadido al proyecto el bean de ejemplo JSPWithCounterBean.java, en el paquete jsptutorial. Este bean es llamado por la JSP. El Asistente para JSP tambin crea automticamente una configuracin de ejecucin de manera que la JSP pueda ejecutarse en el IDE. Si desea obtener ms informacin sobre las configuraciones de ejecucin, consulte Definicin de las configuraciones de ejecucin en Creacin de aplicaciones con JBuilder Si desea ms informacin sobre la creacin de configuraciones de ejecucin mediante asistentes, consulte Creacin de una configuracin de ejecucin con los asistentes en la pgina 8-2.
1 Ample el nodo del paquete jsptutorial en el panel del proyecto. 2 Haga doble clic en JSPWithCounterBean.java. 3 Modifique el cdigo fuente como sigue, introduciendo los fragmentos en
negrita en el cdigo existente: package jsptutorial; public class JSPWithCounterBean { /**inicializar la variable aqu*/ private int myCount=0; private String sample = "Start value"; //Acceder a la propiedad sample public String getSample() { return sample; } //Acceder a la propiedad sample public void setSample(String newValue) { if (newValue!=null) { sample = newValue; } } /**Nuevo mtodo para el recuento de veces*/ public int count() { return ++myCount; } }
P a s o 6 : M o d i f i c a c i n del c d i g o d e l a J S P
19-6
P a s o 7 : E j e c u c i n d e l a p g i n a J S P
El comando Ejecutar web incluye el nombre de una configuracin de ejecucin, en este caso, GuestbookJSP. Esta configuracin de ejecucin fue creada automticamente por el Asistente para JSP. Por defecto, el asistente asigna a la configuracin el mismo nombre que la JSP. Si desea obtener ms informacin sobre las configuraciones de ejecucin, consulte Definicin de las configuraciones de ejecucin en Creacin de aplicaciones con JBuilder. El proyecto se compila y se ejecuta. Los errores de compilacin se muestran en el panel de mensajes. Si ocurren errores, consulte el tema Depuracin web del servlet o de la JSP en la pgina 8-20. Si no hay errores, se inicia el servidor web y en el panel de contenido aparecen dos nuevas pestaas, Vista web y Ver cdigo fuente web. Tomcat, que se instala junto con JBuilder, es un motor de servlet que admite archivos servlet y JSP. La Vista web es un navegador que muestra la salida de la ejecucin de la JSP. La pestaa Ver cdigo fuente web muestra el cdigo HTML real que la JSP ha generado dinmicamente. Si se han seguido todos los pasos correctamente, la pgina JSP en ejecucin presentar este aspecto: Figura 19.2 JSP en Vista web
C a p t u l o 1 9 : T u t o r i a l : C r e a c i n d e u n a J S P m e d i a n t e e l A s i s t e n t e p a r a J S P
1 9 -7
P a s o 7 : E j e c u c i n d e l a p g i n a J S P
La pestaa Vista web del panel de contenido presenta la pgina JSP. Para la comprobacin local, la URL seala a localhost:8080, que es donde se est ejecutando Tomcat. Para probar la JSP:
La Vista web de JBuilder ofrece algunas funciones de navegador, pero no es un navegador con todas las prestaciones. Para obtener un mejor resultado, copie la URL de la aplicacin web en ejecucin en un navegador externo y ejectela desde all.
2 Escriba cualquier texto en el campo de texto del navegador externo. 3 Pulse el botn Enviar del navegador externo. El valor introducido se
muestra debajo del botn, y el contador de la pgina aumenta. Los datos de salida y registro de Tomcat aparecen en una nueva pestaa, en el panel de mensajes. La salida de servlets, beans, comandos HTTP y valores de parmetros se muestra en el panel de mensajes. La configuracin de ejecucin de una JSP puede modificarse, o se puede crear una en la ficha Ejecutar del cuadro de dilogo Propiedades de proyecto (Proyecto| Propiedades de proyecto). Si desea ms informacin sobre la configuracin de las propiedades de ejecucin de las JSP, consulte Creacin de una configuracin de ejecucin del servidor en la pgina 8-5. JBuilder utiliza el puerto 8080 por defecto. Si este puerto est en uso, JBuilder buscar por defecto un puerto disponible.
La Vista Web no es un navegador completo. Si se experimenta algn problema con la ejecucin de la JSP en la Vista Web, copie la direccin URL en un navegador completo y conctese mediante ese navegador a la JSP que se est ejecutando.
19-8
P a s o 7 : E j e c u c i n d e l a p g i n a J S P
Distribucin de la JSP
Para la distribucin en un servidor web de produccin, consulte en su documentacin lo relativo a la forma de distribuir archivos JSP en l. Si desea obtener informacin general sobre la distribucin de las JSP, consulte el Captulo 9, Distribucin de aplicaciones web. Como se indica en la base de datos FAQ de JSP, que se encuentra en http:/ /java.sun.com/products/jsp/faq.html, existen numerosas implementaciones de la tecnologa JSP para distintos servidores web. Puede encontrar la informacin ms reciente en java.sun.com.
C a p t u l o 1 9 : T u t o r i a l : C r e a c i n d e u n a J S P m e d i a n t e e l A s i s t e n t e p a r a J S P
1 9 -9
19-1 0
Captulo
Captulo 20
Este tutorial le ensea cmo crear una JSP que contenga InternetBeans. Cuando acabe con el tutorial, tendr una JSP que consulta una tabla de un JDataStore, muestra los comentarios del libro de visitas en una IxTable y permite que los visitantes introduzcan sus propios comentarios y los vean aparecer en el libro de visitas. Este tutorial presupone que est familiarizado con Java y las Pginas JavaServer (JSP), con el JBuilder IDE y con JDataStore. Para obtener ms informacin sobre los constructores, consulte Procedimientos iniciales con Java. Si desea ms informacin sobre Pginas JavaServer consulte el Captulo 6, Desarrollo de Pginas JavaServer. Para obtener ms informacin sobre el IDE de JBuilder, consulte El entorno de JBuilder en Introduccin a JBuilder. Para obtener ms informacin sobre JDataStore, consulteGua del desarrollador de JDataStore. El apartado de opciones de accesibilidad en las Sugerencias de JBuilder contiene sugerencias sobre la utilizacin de las funciones de JBuilder para mejorar la facilidad de uso de JBuilder por parte de personas con discapacidades. Para obtener informacin sobre las convenciones utilizadas en este tutorial y en otra documentacin de JBuilder, consulte Convenciones de la documentacin en la pgina 1-3.
C a p t u l o 2 0 : T u t o r i a l : C r e a c i n d e u n a J S P c o n I n t e r n e t B e a n s E x p r e s s
2 0 -1
P a s o 1 : C r e a c i n d e p r o y e c t o s
2 Seleccione la ficha Servidor. 3 Asegrese de que el botn de radio Servidor nico para todos los servicios
del proyecto est seleccionado.
5 Pulse Aceptar.
1 Seleccione Archivo|Nuevo|Web. 2 Seleccione Mdulo Web (WAR) y pulse Aceptar. Aparece el Asistente para
mdulos web.
3 Seleccione Crear mdulo web vaco (la opcin por defecto) y pulse
Siguiente.
20-2
P a s o 3 : C r e a c i n d e u n m d u l o w e b
C a p t u l o 2 0 : T u t o r i a l : C r e a c i n d e u n a J S P c o n I n t e r n e t B e a n s E x p r e s s
2 0 -3
Aparece un nuevo mdulo web, jspixwebmodule, en el panel del proyecto. Ample el nodo para ver los nodos Descriptores de distribucin y Directorio del mdulo. Figura 20.1 Nodo del mdulo web en el panel del proyecto
1 Seleccione Archivo|Nuevo|Web. 2 Seleccione Pgina JavaServer y pulse Aceptar. Se abre el Asistente para
JSP.
3 En el campo nombre, escriba uno para la JSP: GuestbookJSP. 4 Desactive Generar Bean de ejemplo si est activada.
El asistente para JSP presenta un aspecto similar al siguiente:
20-4
P a s o 4 : U t i l i z a c i n d e l A s i s t e n t e p a r a J S P
C a p t u l o 2 0 : T u t o r i a l : C r e a c i n d e u n a J S P c o n I n t e r n e t B e a n s E x p r e s s
2 0 -5
20-6
Paso 6: Adici n d e l a e t i q u e t a d e b a s e d e d a t o s d e I n t e r n e t B e a n s
Cuando haya acabado, el HTML debe tener esta apariencia en la pestaa Ver:
1 Si cambi a la pestaa Ver en el paso anterior, vuelva al editor. 2 Aada la etiqueta de apertura database mostrada en negrita.
<h1> Firme el libro de visitas </h1> <ix:database id=database1 driver=com.borland.datastore.jdbc.DataStoreDriver url="jdbc:borland:dslocal:\jbuilder\\samples\\webmodules\\datastores\\ guestbook.jds" username="user"> <table id="guestbooktable" align="CENTER" cellspacing="0" border="1" cellpadding="7">
3 Cambie el valor del atributo url de la etiqueta database para que apunte
hacia el JDataStore guestbook.jds de <jbuilder>\samples\webmodules\datastores.
C a p t u l o 2 0 : T u t o r i a l : C r e a c i n d e u n a J S P c o n I n t e r n e t B e a n s E x p r e s s
2 0 -7
20-8
P a s o 9 : A d ic i n d e l a s e t i q u e t a s d e c o n t r o l d e I n t e r n e t B e a n s
Observe que se est englobando la etiqueta table de HTML en la etiqueta table de InternetBeans. Esto permite que IxTable de InternetBeans entienda implcitamente a qu tabla est sustituyendo. La etiqueta table de InternetBeans est anidada dentro de la etiqueta query de InternetBeans. Esto no es necesario, ya que el atributo dataSet de la tabla establece una relacin clara. El anidamiento de la tabla de InternetBeans dentro de una etiqueta query hace que el cdigo sea ms elegante.
C a p t u l o 2 0 : T u t o r i a l : C r e a c i n d e u n a J S P c o n I n t e r n e t B e a n s E x p r e s s
2 0 -9
20-1 0
1 Seleccione Propiedades de proyecto del men Proyecto. 2 Seleccione la ficha Vas de acceso. 3 Haga clic en la pestaa Bibliotecas necesarias. 4 Pulse Aadir. 5 Seleccione Servidor JDataStore en la carpeta JBuilder. Pulse Aceptar. 6 Pulse Aceptar para cerrar el cuadro de dilogo Propiedades de proyecto.
En este punto, debera asegurarse de que las dependencias de las bibliotecas del proyecto estn correctamente configuradas. Para ello:
7 Haga clic con el botn derecho del ratn en el nodo jspixwebmodule del
panel del proyecto y seleccione Propiedades en el men contextual.
8 Seleccione Contenido|Dependencias.
C a p t u l o 2 0 : T u t o r i a l : C r e a c in d e u n a J S P c o n I n t e r n e t B e a n s E x p r e s s
2 0 -1 1
P a s o 1 4 : E j e c u c i n d e l a p g i n a J S P
1 Asegrese de que el nodo Directorio del mdulo del mdulo web est
ampliado en el panel del proyecto.
El comando Ejecutar web incluye el nombre de una configuracin de ejecucin, en este caso, GuestbookJSP. Esta configuracin de ejecucin fue creada automticamente por el Asistente para JSP. Por defecto, el asistente asigna a la configuracin el mismo nombre que la JSP. Si desea obtener ms informacin sobre las configuraciones de ejecucin, consulte Definicin de las configuraciones de ejecucin en Creacin de aplicaciones con JBuilder.
La Vista web de JBuilder ofrece algunas funciones de navegador, pero no es un navegador con todas las prestaciones. Para obtener un mejor resultado, copie la URL de la aplicacin web en ejecucin en un navegador externo y ejectela desde all.
20-1 2
Distribucin de la JSP
Las JSP se distribuyen ms fcilmente que los servlets. Esto se debe a que un servidor web las encuentra de la misma forma que procede con los archivos HTML. No se tiene que hacer una instalacin especial, ya que el servidor web es competente para saber lo que tiene que hacer con la JSP. Si desea ms informacin sobre la distribucin de su JSP, consulte el Captulo 9, Distribucin de aplicaciones web.
C a p t u l o 2 0 : T u t o r i a l : C r e a c in d e u n a J S P c o n I n t e r n e t B e a n s E x p r e s s
2 0 -1 3
20-1 4
Captulo
Este tutorial le acompaar a travs de los pasos necesarios para iniciar una aplicacin de ejemplo basada en Swing con Web Start. El ejemplo, CheckBoxControl, est situado en el directorio samples/Swing de su instalacin de JBuilder. Este tutorial da por supuesto que en su ordenador est instalado Java Web Start. Si desea instrucciones para la instalacin, consulte Instalacin de Java Web Start en la pgina 16-3. Si desea ms informacin sobre JBuilder y Java Web Start, consulte el Captulo 16, Ejecucin de aplicaciones web con Java Web Start.
Importante
En este tutorial se da por supuesto que Java Web Start est instalado y configurado en el ordenador. Si desea ms informacin, consulte Instalacin de Java Web Start en la pgina 16-3. El apartado de opciones de accesibilidad en las Sugerencias de JBuilder contiene sugerencias sobre la utilizacin de las funciones de JBuilder para mejorar la facilidad de uso de JBuilder por parte de personas con discapacidades. Para obtener informacin sobre las convenciones utilizadas en este tutorial y en otra documentacin de JBuilder, consulte Convenciones de la documentacin en la pgina 1-3.
2 1 -1
4 Haga clic en Aceptar para cerrar el cuadro de dilogo. 5 Elija Proyecto|Propiedades de proyecto y se abrir el cuadro de dilogo
homnimo. Seleccione el nodo Servidores.
6 Elija Tomcat 4.0 en la lista desplegable Servidor nico para todos los
servicios del proyecto.
21-2
P a s o 2 : C r e a c i n del m d u l o w e b d e l a a p l i c a c in
2 1 -3
P a s o 2 : C r e a c i n del m d u l o w e b d e l a a p l i c a c i n
2 Aparece la ficha Seleccionar origen del mdulo web del Asistente Mdulo
Web. Deje seleccionada la opcin Crear Mdulo Web vaco:
21-4
2 Seleccione Asistentes|Creador de recopilatorios. 3 Cambie el Tipo de recopilatorio a Aplicacin Web Start en la ficha
Seleccione un tipo de recopilatorio, del Creador de recopilatorios. Pulse Siguiente. Aparece el cuadro de dilogo Error de validacin; pulse Aceptar. El error indica que el archivo JAR no se encuentra en el directorio del mdulo web. Sin embargo, en el siguiente paso del asistente se coloca el archivo JAR en la ubicacin correcta. Vuelva a pulsar Siguiente.
2 1 -5
P a s o 4 : C r e a c i n d e l a a p l i c a c i n de la p g i n a d e i n i c i o y e l a r c h i v o J N L P
6 Pulse Aceptar para volver a la ficha Seleccione aplicacin web del Creador
de recopilatorios. Debe tener un aspecto parecido al siguiente:
21-6
P a s o 4 : C r e a c i n d e l a a p l i c a c i n d e l a p g i n a d e i n i c i o y e l a r c h i v o J N L P
Si el nombre introducido en el campo Nombre coincide con el nombre de un archivo JNLP o HTML ya existente en su proyecto, se le pregunta si quiere sobrescribirlo. La ficha Introduzca informacin requerida del Asistente para el inicio de Web Start tiene este aspecto:
2 1 -7
P a s o 4 : C r e a c i n d e l a a p l i c a c i n de la p g i n a d e i n i c i o y e l a r c h i v o J N L P
Nota
21-8
P a s o 5 : C r e a c i n d e u n a c o n f i g u r a c i n de ejecuci n d e l s e r v i d o r
3 Introduzca CheckBoxControl Server en el campo Nombre. 4 Seleccione Servidor en la lista desplegable Tipo. 5 Pulse JSP/Servlet en la lista Categoras de la parte izquierda del cuadro de
dilogo.
2 1 -9
P a s o 6 : I n i c i o d e l a a p l i c a c i n
10 Pulse Aceptar dos veces para cerrar los cuadros de dilogo Nueva
configuracin de ejecucin y Propiedades de proyecto. Si desea ms informacin, consulte Creacin de una configuracin de ejecucin del servidor en la pgina 8-5.
21-1 0
Web Start, JBuilder muestra un mensaje de advertencia en la vista web. La vista web tiene este aspecto:
3 Haga clic sobre el enlace en la pgina web. Java Web Start carga e inicia
la aplicacin. La aplicacin se est ejecutando ahora desde un enlace en un visualizador web externo. Advierta que la pantalla de inicio muestra la informacin que se introdujo en el Asistente para el inicio de Web Start.
Nota
Si Tomcat est utilizando un puerto distinto del puerto por defecto (8080), puede suceder que la aplicacin no se inicie. Esto se debe a que el atributo codebase del archivo CheckBoxControlLauncher.jnlp se genera automticamente como localhost:8080. Para cambiarlo, abra el archivo JNLP en el editor. Cambie el nmero de puerto en la segunda lnea del
C a p t u l o 2 1 : T u t o r i a l : E j e c u c i n d e C h e c k B o x C o n t r o l c o n J a v a W e b S t a r t
21 -1 1
P a s o 6 : I n i c i o d e l a a p l i c a c i n
archivo para que coincida con el nmero de puerto que est utilizando Tomcat. Apague Tomcat y empiece de nuevo desde el Paso 1 de este apartado.
21-1 2
Captulo
Captulo 22
Este tutorial muestra cmo crear un servlet que acepta una entrada de usuario y guarda los datos en una base de datos JDataStore. Cuando acabe este tutorial, su proyecto contendr las siguientes clases:
s
FormServlet.java - Esta es la clase ejecutable del programa. Su mtodo doGet() muestra un formulario a rellenar que utiliza una etiqueta <form> de HTML. El servlet enva los valores introducidos por el usuario (mediante parmetros) al DBServlet. DBServlet.java - Este servlet pasa los valores de los parmetros (en su mtodo doPost()) a DataModule1. El cdigo en el mtodo doGet() convierte el JDataStore del libro de visitas en una tabla HTML. DataModule1.java - El mdulo de datos que contiene la lgica empresarial del programa. El cdigo del mdulo de datos se conecta con el JDataStore del libro de visitas, lo actualiza y guarda all los cambios.
Este tutorial presupone que ya est familiarizado con los servlets, con las tecnologas de JDataStore y DataExpress de JBuilder. Si desea ms informacin sobre los servlets, consulte las siguientes secciones:
s s
Para empezar, tambin se puede trabajar con un servlet menos complicado, como el Hola a Todos; consulte el Captulo 18, Tutorial: Creacin de un servlet simple. Si desea ms informacin sobre las funciones de base de
C a p t u l o 2 2 : T u t o r i a l : C r e a c i n d e u n s e r v l e t q u e a c t u a l i z a u n l i b r o d e v i s i t a s
2 2 -1
P a s o 1 : C r e a c i n d e l p r o y e c t o y s e l e c c i n d e l s e r v i d o r
datos de JBuilder, consulte la Desarrollo de aplicaciones de base de datos. Si desea ms informacin sobre JDataStore, consulte la Gua del desarrollador de JDataStore. El apartado de opciones de accesibilidad en las Sugerencias de JBuilder contiene sugerencias sobre la utilizacin de las funciones de JBuilder para mejorar la facilidad de uso de JBuilder por parte de personas con discapacidades. Para obtener informacin sobre las convenciones utilizadas en este tutorial y en otra documentacin de JBuilder, consulte Convenciones de la documentacin en la pgina 1-3.
1 Seleccione Archivo|Nuevo proyecto para abrir el Asistente para proyectos. 2 Escriba GuestbookServlet en el campo Nombre, tal como aparece en la
siguiente ilustracin. El campo Directorio se rellena automticamente.
P a s o 2 : C r e a c i n d e l m d u l o w e b
2 Aparece la ficha Seleccionar origen del mdulo web del Asistente Mdulo
Web. Deje la opcin por defecto, Crear mdulo web vaco. La ficha presenta un aspecto similar al siguiente:
C a p t u l o 2 2 : T u t o r i a l : C r e a c i n d e u n s e r v l e t q u e a c t u a l i z a u n l i b r o d e v i s i t a s
2 2 -3
P a s o 2 : C r e a c i n del m d u l o w e b
JSP 1.2. La ficha Introduzca atributos bsicos para aplicaciones web del Asistente Mdulo Web debe tener un aspecto parecido al siguiente:
Para obtener ms informacin sobre mdulos web, consulte el Captulo 3, Los mdulos web y los archivos WAR.
22-4
FormServlet.java - Esta es la clase ejecutable del programa. Su mtodo doGet() muestra un formulario a rellenar que utiliza una etiqueta <form> de HTML. El servlet enva los valores introducidos por el usuario (mediante parmetros) al DBServlet. DBServlet.java - Este servlet pasa los valores de los parmetros (en su mtodo doPost()) a DataModule1. El cdigo en el mtodo doGet() convierte el JDataStore del libro de visitas en una tabla HTML.
C a p t u l o 2 2 : T u t o r i a l : C r e a c i n d e u n s e r v l e t q u e a c t u a l i z a u n l i b r o d e v i s i t a s
2 2 -5
P a s o 3 : C r e a c i n de los servlets
7 Cambie el valor por defecto del campo Nombre por inputform. Cambie el
valor del campo Patrn de URL por /inputform. Asegrese de que todas las entradas estn en minsculas. La entrada del Patrn de URL se utiliza para ejecutar el servlet en lugar del nombre de clase. La ficha Introduzca los detalles del mdulo web debe tener este aspecto:
22-6
C a p t u l o 2 2 : T u t o r i a l : C r e a c i n d e u n s e r v l e t q u e a c t u a l i z a u n l i b r o d e v i s i t a s
2 2 -7
P a s o 3 : C r e a c i n de los servlets
Cuando termine, ste es el aspecto que debe tener la ficha Introduzca los detalles del servlet estndar:
7 Cambie el valor por defecto del campo Nombre por table. Cambie el valor
del campo Patrn de URL por /table. Asegrese de que todas las entradas estn en minsculas. Se utilizar el nombre table en vez del nombre de clase DBServlet en la etiqueta <form> de HTML de FormServlet. La ficha Introduzca los detalles del mdulo web debe tener este aspecto:
22-8
P a s o 4 : C r e a c i n d e l m d u l o d e d a t o s
Con el fin de crear el mdulo de datos que conecte con el JDataStore del libro de visitas y realice las tareas de actualizacin:
4 Pulse Aceptar para crear el mdulo de datos. 5 Seleccione Archivo|Guardar todo o pulse en la barra de herramientas para
guardar su trabajo.
C a p t u l o 2 2 : T u t o r i a l : C r e a c i n d e u n s e r v l e t q u e a c t u a l i z a u n l i b r o d e v i s i t a s
2 2 -9
P a s o 5 : C m o a a d i r c o m p o n e n t e s d e b a s e s d e d a t o s a l m d u l o d e d a t o s
1 Seleccione la pestaa DataExpress de la paleta de componentes. 2 Pulse el icono Base de datos. Despus pulse en el rbol de componentes
del panel de estructura, con el fin de aadir el componente de base de datos al mdulo de datos.
1 En el rbol de componentes, seleccione database1. 2 Pulse en la propiedad connection en el Inspector, luego pulse el botn
puntos suspensivos a la derecha del nombre de la propiedad. Esto abre el cuadro de dilogo Conexin.
5 Pulse la opcin Base de datos DataStore local. 6 Pulse el botn de puntos suspensivos para buscar el JDataStore del libro
de visitas (guestbook.jds) en el subdirectorio samples/webmodules/datastores
22-1 0
P a s o 5 : C m o a a d i r c o m p o n e n t e s d e b a s e s d e d a t o s a l m d u l o d e d a t o s
1 Seleccione queryDataSet1 en el rbol de componentes. 2 Haga clic en la propiedad query en el Inspector y, a continuacin, pulse el
botn de puntos suspensivos. Se abre el cuadro de dilogo Consulta.
C a p tulo 2 2 : T u t o r i a l : C r e a c i n d e u n s e r v l e t q u e a c t u a l i z a u n l i b r o d e v i s i t a s
22 -1 1
P a s o 5 : C m o a a d i r c o m p o n e n t e s d e b a s e s d e d a t o s a l m d u l o d e d a t o s
Esta consulta carga todos los valores en los campos Nombre y Comentario de la tabla SIGNATURES del JDataStore del libro de visitas. Cuando introduzca la consulta, utilice las maysculas como se ha mostrado anteriormente.
5 Verifique que est seleccionado Ejecutar consulta al abrirla. 6 En la lista desplegable de Opciones de carga, compruebe que est
seleccionada la opcin Cargar todas las filas. La ficha Consulta del cuadro de dilogo homnimo debe tener este aspecto:
Puede ser que vea un mensaje en la pestaa Diseador del panel de mensajes. Por el momento, puede pasar por alto este mensaje. Ya lo arreglar en un paso posterior. Haga clic en la X de la pestaa Diseador, de la parte inferior del Visualizador de aplicaciones, para cerrarla.
22-1 2
P a s o 6 : C r e a c i n d e l a c o n e x in d e d a t o s c o n e l D B S e r v l e t
En este paso, se crear una conexin de datos con DBServlet. La conexin permite que el servlet pase datos al mdulo de datos.
Es necesario abrir el Asistente para usar mdulos de datos desde la clase que va a utilizar el mdulo de datos.
C a p tulo 2 2 : T u t o r i a l : C r e a c i n d e u n s e r v l e t q u e a c t u a l i z a u n l i b r o d e v i s i t a s
22 -1 3
P a s o 7 : C r e a c i n d e u n f o r m u l a r i o d e e n t r a d a e n e l F o r m S e r v l e t
1 Haga doble clic en FormServlet en el panel del proyecto con el fin de que se
abra en el editor. (Puede estar ya abierta).
3 Borre todas las lneas que empiecen por out.println. 4 Aada las siguientes lneas de cdigo al mtodo doGet(), despus de
PrintWriter out = response.getWriter();: out.println(<html><body>); out.println("<h1>Sign the guestbook</h1>"); out.println("<strong>Escriba su nombre y comentario en la entrada fields below.</strong>"); out.println("<br><br>"); out.println("<form action=table method=POST>"); out.println("Name<br>"); out.println("<input type=text name=UserName value=\"\" size=20 maxlength=150>"); out.println("<br><br>"); out.println("Comment<br>"); out.print("<input type=text name=UserComment value=\"\" size=50 maxlength=150>"); out.println("<br><br><br><br>"); out.print("<input type=submit value=Submit>"); out.println("</form>"); out.println("</html></body>");
Sugerencia
22-1 4
Paso 8: Adici n d e c d ig o a l mt o d o D B S e r v l e t d o P o s t ( )
Lee en los parmetros UserName y UserComment de FormServlet. Llama al mtodo DataModule que actualiza el JDataStore del libro de visitas, pasando los valores de los parmetros UserName y UserComment. Llama al mtodo del mdulo de datos y guarda los cambios en el JDataStore.
Para ello:
1 Haga doble clic en DBServlet en el panel del proyecto con el fin de abrirla en
el editor. (Puede estar ya abierta).
2 Busque el mtodo doPost(). 3 Elimine la siguiente lnea de cdigo del mtodo doPost():
out.println(<p>The servlet has received a POST. Esta es la respuesta.</p>);
Estos mtodos an no han sido aadidos al mdulo de datos, por lo que ver errores en la carpeta Errores del panel de estructura. Por el momento, puede hacer caso omiso de ellos. Este cdigo se puede copiar y pegar directamente en el editor. Las dos primeras lneas de cdigo reciben los valores de los parmetros UserName y UserComment que se pasan desde FormServlet. Las siguientes lneas llaman a dos mtodos del mdulo de datos:
s
Sugerencia
insertNewRow() - inserta los nuevos valores de Nombre y Comentario en la ltima fila de la tabla. saveNewRow() - guarda los cambios en el JDataStore del libro de visitas.
La ltima lnea llama al mtodo doGet() del servlet que convierte la tabla Guestbook (libro de visitas) en HTML.
C a p tulo 2 2 : T u t o r i a l : C r e a c i n d e u n s e r v l e t q u e a c t u a l i z a u n l i b r o d e v i s i t a s
22 -1 5
P a s o 9 : A d i c i n de cd i g o p a r a c o n v e r t i r l a t a b l a S I G N A T U R E S d e G u e s t b o o k
Puede utilizar MemberInsight (Ctrl+H) con el objeto de que le ayude a completar las sentencias import. No tenga en cuenta los errores que vea en la carpeta Errores del panel de estructura.
22-1 6
P a s o 9 : A d i c i n d e c d i g o p a r a c o n v e r t i r l a t a b l a S I G N A T U R E S d e G u e s t b o o k
C a p tulo 2 2 : T u t o r i a l : C r e a c i n d e u n s e r v l e t q u e a c t u a l i z a u n l i b r o d e v i s i t a s
22 -1 7
P a s o 1 0 : C m o a adir la l g i c a e m p r e s a r i a l a l m d u l o d e d a t o s
los datos mientras que el cursor est dentro de los lmites, o lo que es lo mismo, mientras el mtodo inBounds() informe que la navegacin est entre el primer y el ltimo registro visible para el cursor. Cuando esta condicin no se cumple, se cierra la tabla y la pgina HTML: while (dm.getQueryDataSet1().inBounds()) { out.print("<tr>"); for (int i = 1; i < columns.length; i++) { out.print ("<td>" + dm.getQueryDataSet1().format(i) + "</td>"); out.println("</tr>"); dm.getQueryDataSet1().next(); } out.println("</table>"); out.println("<body>"); out.println("<html>");
3 Aada el cdigo para el mtodo que inserta una fila nueva. Con el fin de
aadir una fila, se necesita crear un objeto DataRow, luego hay que pasar los datos de los parmetros userName y userComment al DataRow. Este mtodo se aadir despus del mtodo jbInit(). Simplemente mueva el cursor una lnea hacia abajo, ms all de la llave de cierre del mtodo y pulse Enter unas cuantas veces. Aada el siguiente mtodo: public void insertNewRow(String userName, String userComment) { try { DataRow dataRow1 = new DataRow(queryDataSet1, new String[] { "Name", "Comment"}); dataRow1.setString("Name", userName);
22-1 8
P a s o 1 1 : C o m p i l a c i n y e j e c u c i n d e l p r o y e c t o
dataRow1.setString("Comment", userComment); queryDataSet1.addRow(dataRow1); } catch (DataSetException ex) { ex.printStackTrace(); } } La primera lnea del mtodo crea un objeto DataRow que contiene los nuevos valores de Nombre y Comentario. La segunda y la tercera fila pasan los valores de los parmetros userName y userComment a los campos Nombre y Comentario. La ltima fila aade el objeto DataRow al conjunto de datos.
1 Haga clic con el botn derecho del ratn en el mdulo web WebModule1, en el
panel del proyecto, y seleccione Propiedades.
C a p tulo 2 2 : T u t o r i a l : C r e a c i n d e u n s e r v l e t q u e a c t u a l i z a u n l i b r o d e v i s i t a s
22 -1 9
P a s o 1 1 : C o m p i l a c i n y e j e c u c i n d e l p r o y e c t o
pulse Modificar con el fin de que aparezca el cuadro de dilogo Modificar configuracin de ejecucin.
2 Elija el servicio JSP/Servlet en el rbol de la izquierda de la ficha. 3 Pulse sobre el botn con puntos suspensivos a la derecha del campo URI
de inicio con el fin de mostrar el cuadro de dilogo Escriba o seleccione el URI que se va a lanzar, donde escoger el nombre del servlet a ejecutar.
22-2 0
P a s o 1 1 : C o m p i l a c i n y e j e c u c i n d e l p r o y e c t o
6 Pulse dos veces ms el botn Inspeccionar. 7 Pulse el icono Guardar todo de la barra de herramientas para guardar su
trabajo. Para compilar y ejecutar el proyecto:
C a p tulo 2 2 : T u t o r i a l : C r e a c i n d e u n s e r v l e t q u e a c t u a l i z a u n l i b r o d e v i s i t a s
22 -2 1
P a s o 1 1 : C o m p i l a c i n y e j e c u c i n d e l p r o y e c t o
22-2 2
P a s o 1 1 : C o m p i l a c i n y e j e c u c i n d e l p r o y e c t o
Si desea ms informacin sobre URL, URI y servlets, consulte Cmo los URL ejecutan los servlets en la pgina 8-10.
Puede abrir el JDataStore del Libro de visitas en el Explorador de JDataStore (Herramientas|Explorador de JDataStore) si desea verificar que los nuevos datos se han guardado en la tabla. Ha finalizado este tutorial. Ahora ya sabe cmo crear un formulario de entrada HTML para utilizar un servlet, pasar un parmetro de un servlet a otro, conectar un servlet con un mdulo de datos, pasar parmetros desde un servlet a un mdulo de datos y utilizar un mdulo de datos para actualizar un JDataStore.
C a p tulo 2 2 : T u t o r i a l : C r e a c i n d e u n s e r v l e t q u e a c t u a l i z a u n l i b r o d e v i s i t a s
22 -2 3
22-2 4
Captulo
Captulo 23
Este tutorial le ensea cmo crear un Servlet mediante InternetBeans. Cuando finalice este tutorial, tendr un servlet que utiliza un DataModule para consultar una tabla en un JDataStore, muestra los comentarios de un libro de visitas en una IxTable y permite que los visitantes introduzcan sus propios comentarios y los vean aparecer en el libro de visitas. Este tutorial presupone que est familiarizado con Java y los servlets de Java, con JBuilder IDE y con JDataStore. Para obtener ms informacin sobre los constructores, consulte Procedimientos iniciales con Java. Para obtener ms informacin sobre los servlets Java consulte el Captulo 4, Los servlets. Para obtener ms informacin sobre el IDE de JBuilder, consulte El entorno de JBuilder en Introduccin a JBuilder. Para obtener ms informacin sobre JDataStore, consulteGua del desarrollador de JDataStore. El apartado de opciones de accesibilidad en las Sugerencias de JBuilder contiene sugerencias sobre la utilizacin de las funciones de JBuilder para mejorar la facilidad de uso de JBuilder por parte de personas con discapacidades. Para obtener informacin sobre las convenciones utilizadas en este tutorial y en otra documentacin de JBuilder, consulte Convenciones de la documentacin en la pgina 1-3.
C a p t u l o 2 3 : T u t o r i a l : C r e a c i n d e u n s e r v l e t c o n I n t e r n e t B e a n s E x p r e s s
23 -1
P a s o 1 : C r e a c i n d e p r o y e c t o s
2 Seleccione la ficha Servidor. 3 Asegrese de que el botn de radio Servidor nico para todos los servicios
del proyecto est seleccionado.
5 Pulse Aceptar.
1 Seleccione Archivo|Nuevo|Web. 2 Seleccione Mdulo Web (WAR) y pulse Aceptar. Aparece el Asistente para
mdulos web.
3 Seleccione Crear mdulo web vaco (la opcin por defecto) y pulse
Siguiente.
23-2
P a s o 3 : C r e a c i n d e u n m d u l o w e b
C a p t u l o 2 3 : T u t o r i a l : C r e a c i n d e u n s e r v l e t c o n I n t e r n e t B e a n s E x p r e s s
23 -3
P a s o 4 : C r e a c i n d e l s e r v l e t
1 Seleccione Archivo|Nuevo|Web. 2 Seleccione Servlet. 3 Pulse Aceptar. Aparece el Asistente para servlets. 4 Introduzca el nombre de la clase: SignatureServlet. 5 Seleccione guestbookmodule para el mdulo web, si an no lo ha hecho. El
asistente debe tener un aspecto semejante a:
6 Haga clic en Siguiente para avanzar en el asistente. 7 Asegrese de que en Servlet genera contenido de tipo figura HTML. 8 Asegrese de que estn seleccionados los mtodos doGet() y doPost().
23-4
P a s o 5 : C r e a c i n d e l m d u l o d e d a t o s
C a p t u l o 2 3 : T u t o r i a l : C r e a c i n d e u n s e r v l e t c o n I n t e r n e t B e a n s E x p r e s s
23 -5
P a s o 5 : C r e a c i n del m d u l o d e d a t o s
5 Asegrese de que est seleccionado Llamar al Modelador de datos. 6 Pulse Aceptar. Se abre el Modelador de datos. 7 Vaya al men Base de datos y seleccione Aadir URL de conexin. 8 Seleccione com.borland.datastore.jdbc.DataStoreDriver en la lista
desplegable de controlador.
23-6
P a s o 6 : D i s e o d e l a p g i n a d e p l a n t i l l a H T M L
15 Seleccione Archivo|Guardar en el men del Modelador de datos. 16 Seleccione Archivo|Salir en el men del Modelador de datos. El archivo
DataModule1.java se actualiza con la informacin de conexin requerida.
3 Seleccione el directorio del mdulo web (esto es, guestbookmodule). 4 Escriba AdvancedApp en el campo Nombre. 5 Pulse Aceptar. 6 Pulse nuevamente Aceptar para crear el archivo. 7 En el panel del proyecto, haga doble clic en el archivo para abrirlo. Se abre
el archivo vaco HTML.
8 Pulse la pestaa Fuente para abrir el cdigo del HTML. En este momento
estar vaco.
C a p t u l o 2 3 : T u t o r i a l : C r e a c i n d e u n s e r v l e t c o n I n t e r n e t B e a n s E x p r e s s
23 -7
<html> <head> <title>Guestbook Signatures</title> </head> <body> <h1>Sign the guestbook</h1> <table id="guestbooktable" align="CENTER" cellspacing="0" border="1" cellpadding="7"> <tr> <th>Name</th><th>Comment</th> </tr> <tr> <td>Leo</td><td>I rule!</td> </tr> </table> <form method="post"> <p>Enter your name:</p> <input type="text" id="Name" name="Name" size="50"> <p>Enter your comment:</p> <input type="text" id="Comment" name="Comment" size="100"> <p> <input type=submit name=submit value=Submit></p> </form> </body> </html> Observe que la etiqueta <table> contiene datos de prueba. Estos datos sern sustituidos con los datos dinmicos del JDataStore cuando se ejecute el servlet. Estos datos de prueba suministran una indicacin de como se vern los datos dinmicos reales cuando se presenten. Si desea mas informacin sobre la forma en que InternetBeans Express utiliza la tablas, consulte Generacin de tablas en la pgina 13-5.
23-8
C a p t u l o 2 3 : T u t o r i a l : C r e a c i n d e u n s e r v l e t c o n I n t e r n e t B e a n s E x p r e s s
23 -9
P a s o 8 : D i s e o del se r v l e t
1 Asegrese de que el archivo SignatureServlet.java est abierto en el editor. 2 Pulse sobre la pestaa Diseo para abrir el diseador de JBuilder. 3 Seleccione la pestaa InternetBeans de la paleta de componentes. 4 Seleccione el icono IxPageProducer y suelte un IxPageProducer dentro del
servlet pulsando en el diseador. Aparece en la carpeta Por defecto del panel de estructura.
dataModule dataModule11 gb1.html - Configure esta propiedad desplazndose hasta la ubicacin htmlFile del archivo. Esto rellena automticamente la propiedad rootPath.
23-1 0
P a s o 8 : D i s e o d e l s e r v l e t
Cuando quiera eliminar mltiples instancias de un control desde la paleta de componentes del diseador, presione Mays y haga clic en el icono del control. Esto hace que el control permanezca seleccionado. Cuando haya finalizado con ese control, pulse en la herramienta de seleccin de la paleta de componentes con el fin de finalizar su seleccin.
C a p t u l o 2 3 : T u t o r i a l : C r e a c i n d e u n s e r v l e t c o n I n t e r n e t B e a n s E x p r e s s
23 -1 1
4 Escriba las siguientes lneas de cdigo dentro del cuerpo del mtodo
doPost(): DataModule1 dm = (DataModule1) ixPageProducer1.getSessionDataModule(request.getSession()); dm.getSignatures().insertRow(false); ixPageProducer1.servletPost(this, request, response); doGet(request, response);
23-1 2
P a s o 1 0 : C o n f i g u r a c i n d e l a s d e p e n d e n c i a s d e l md u l o w e b
Cuando se enve el formulario, este cdigo obtiene una instancia por cada sesin del DataModule, inserta una lnea vaca, llama a IxPageProducer.servletPost() para rellenar la lnea vaca con los valores escritos por el usuario y, a continuacin, llama de nuevo a doGet() para mostrar los datos que se han enviado.
1 Haga clic con el botn derecho del ratn en el nodo guestbookmodule del
panel del proyecto.
2 Seleccione Propiedades en el men contextual del mdulo web. 3 Seleccione la pestaa Dependencias del cuadro de dilogo de
Propiedades.
5 Pulse Aceptar.
C a p t u l o 2 3 : T u t o r i a l : C r e a c i n d e u n s e r v l e t c o n I n t e r n e t B e a n s E x p r e s s
23 -1 3
P a s o 1 1 : E j e c u c i n d e l s e r v l e t
23-1 4
ndice
A
aadir archivos a mdulos web 3-8 descriptores de distribucin 17-6 Form Bean a Action 12-11 struts-config.xml al proyecto en web.xml 7-4 tiles-def.xml al proyecto 7-4 validation.xml al proyecto 7-4 API de servlet 4-3 aplicaciones distribuidas contra aplicaciones web 2-9 web 2-1, 3-1 contra aplicaciones distribuidas 2-9 depurar 8-20 descripcin general 1-1 en JBuilder 8-1 marco de trabajo Struts 7-1 probar en un navegador externo 17-5 sugerencias 17-1 utilizar 8-1 web preparada para Struts, crear en JBuilder 7-19 web Ver tambin mdulos web applets 14-1, 14-2 bibliotecas de terceros 14-13 comprobar 14-14 con el JDK 1.1.x 14-21 con el JDK 1.2 14-21 depurar 14-22, 14-23 descripcin general 2-1, 2-6 distribuir en JBuilder 14-24 ejecutar 14-20, 14-21 implementacin de Java en navegadores 14-6 incluir en un archivo WAR 3-21 Java Web Start 14-7 Mquina virtual de Java. 14-2 navegadores 14-5, 14-7 Plug-in de Java 14-7 recopilar 14-9 seguridad 14-2 sugerencias 14-8 utilizar paquetes 14-9 AppletTestbed 14-20 depurar applets 14-22 appletviewer 14-20 depurar applets 14-22 archivo de formulario HTML 5-6 internetbeans.tld 13-5 formato 13-8 tabla de etiquetas JSP 13-7 JAR atributo archive de applets 14-3 autenticar 14-11 incluir en archivo WAR 3-21 recopilatorios distribucin a un servidor web 9-1 struts-config.xml 11-1 editar 11-1 elemento action-mappings 11-19 elemento controller 11-24 elemento data-source 11-4 elemento form-beans 11-7 elemento global-exceptions 11-13 elemento global-forwards 11-16 elemento message-resources 11-28 elemento plug-ins 11-31 y archivo web.xml 7-2 y Struts 7-2 tiles-def.xml 11-34 crear 17-6 elemento definition 11-34 elemento put 11-34 elemento putList 11-34 validation.xml crear 17-6 WAR 3-2 aadir applets 3-21 aadir archivo XML especfico del servidor 17-3 aadir archivos JAR 3-21 compresin 3-10 crear 3-10 definicin de 3-19 desactivar generacin automtica 17-4 directorios a incluir 3-14 distribuir 9-1 generar 3-3 herramientas 3-2 incluir tipos de archivo adicionales 17-3 nombre de configuracin de 3-10 propiedades 3-19 relacin con los mdulos web 3-19 tipos de archivo incluidos 3-19 ubicacin de la configuracin de 3-10 ver contenido de 3-19 web.xml 3-1, 9-4 aadir restricciones de seguridad 10-2
n d i c e
I-1
aadir un filtro 10-2 aadir un servlet 10-2 aadir una coleccin de recursos web 10-2 asignar pgina de error 10-6 bibliotecas de etiquetas 10-18 colecciones de recursos web 10-13 creacin de 3-9 editar 3-2, 10-1 entradas de entorno 10-6 etiquetas de asignacin de filtro 10-8 etiquetas de monitor 10-9 etiquetas de servlet 10-14 etiquetas taglib 10-18 mapeo MIME 10-10 mapeos de servlets 10-17 ms informacin 9-5 mtodo de autentificacin 10-18 parmetros de inicializacin 10-8, 10-16 referencias de competencias de seguridad 10-16 referencias de entorno de recurso 10-11 referencias de recursos 10-11 referencias EJB 10-4 referencias locales del EJB 10-5 Restricciones de seguridad 10-12 struts-config.xml 7-2 y Struts 7-2 ZIP atributo archive de applets 14-3 asistentes para Action 7-12 para ActionForm 7-10 para applets 14-16 para conversin de Struts 7-15 para JSP 6-10 a partir de ActionForm 7-13 compatibilidad con Struts 7-9 e InternetBeans Express 13-5 para mdulos web 3-3 compatibilidad con Struts 7-8 para servlets opciones 5-1 atributos archivo internetbeans.tld name 13-8 required 13-8 rtexprvalue 13-8 tagclass 13-8 etiqueta de applets archive 14-3 code 14-3 codebase 14-3 height 14-3 hspace 14-3
name 14-3 vspace 14-3 etiqueta de appletswidth 14-3 autenticar applets 14-11 mdulos web 10-18
B
bibliotecas de etiquetas configurar 6-6 importar en JSP 7-9 JSP 6-4 Struts 7-1, 7-7 usar en mdulo web 7-8 y JBuilder 7-7 de etiquetas estndar para pginas JavaServer (JSTL) 6-4 Consulte tambin JSTLaaa de etiquetas InternetBeans Express 13-5 control 13-7 database 13-7 image 13-7 query 13-7 submit 13-7 table 13-7 de etiquetas JSP configurar 6-6 InternetBeans Express 13-5 de terceros applets 14-13 Borland asistencia a desarrolladores 1-5 tcnica 1-5 contacto 1-5 correo electrnico 1-6 grupos de noticias 1-6 informar sobre errores 1-6 recursos en lnea 1-5 World Wide Web 1-5
C
cambiar cdigo durante la depuracin 6-15 CGI (Interfaz de enlace comn) en comparacin con los servlets 2-2 clases Action 7-1, 7-12 archivo struts-config.xml 7-12 ActionForm 7-1, 7-10, 7-13 archivo struts-config.xml 7-10 AtionServlet 7-1
I-2
Gu a d e l d e s a r r r o l l a d o r d e a p l i c a c i o n e s w e b
database utilizar en una JSP 13-7 IxCheckBox 13-2 IxComboBox 13-2 IxControl 13-2 utilizar en una JSP 13-7 IxHidden 13-2 IxImage 13-2 utilizar en una JSP 13-7 IxImageButton 13-2 IxLink 13-2 IxListBox 13-2 IxPageProducer 13-2 mtodo servletPost() 13-4 IxPassword 13-2 IxPushButton 13-2 IxRadioButton 13-2 IxSpan 13-2 IxSubmitButton 13-2 utilizar en un servlet 13-4 utilizar en una JSP 13-7 IxTable 13-2 generar tablas 13-5 utilizar en una JSP 13-7 IxTextArea 13-2 IxTextField 13-2 QueryDataSet utilizar en una JSP 13-7 cdigo modificar durante la depuracin 6-15 coleccin de recursos web aadir a archivo web.xml 10-2 comandos Depurar web 6-14 Ejecutar web 6-13 web, configurar IDE 8-14 compilar applets 14-20 JSP 6-13, 8-15 servlets 8-15 components InternetBeans Express 13-1 comprobar applets 14-14 configuraciones de ejecucin de applets 8-2 crear con asistentes 8-2 crear mediante Ejecutar| Configuraciones 8-3 de JSP 8-2 configurar archivos ejecutables 8-5 crear con asistentes 8-2 crear mediante Ejecutar| Configuraciones 8-5
de servlets 5-11, 8-2 configurar archivos ejecutables 8-5 crear con asistentes 8-2 crear mediante Ejecutar| Configuraciones 8-5 configurar bibliotecas 6-6 Tomcat 15-1 convenciones de la documentacin 1-3 convenciones de plataformas 1-4 cuadros de dilogo Configurar bibliotecas 6-6 Propiedades de Mdulo Web 3-10, 3-11 Clases, ficha 3-15 Contenido, ficha 3-14 Dependencias, ficha 3-17 Descriptor, ficha 3-18 Directorios, ficha 3-14 Distribucin, ficha 3-19 Generar, ficha 3-13 Limpiar, ficha 3-12 Mdulo, ficha 3-10 Propiedades de Struts 7-4
D
DataExpress utilizar en un servlet 13-1 utilizar en una JSP 13-1, 13-5 denominacin de servlets 5-8, 8-10 depuracin remota JSP 6-16 web 8-20 JSP 8-20 servlets 8-20 depurar aplicaciones web 8-20 applets 14-22, 14-23 cdigo fuente para JSP 8-20 configuracin de ejecucin para depurar JSP 6-15 JSP 6-14 con nombres iguales 6-16 e Intercambio inteligente 6-15 en el subdirectorio del mdulo web 6-16 JSP con nombres iguales 6-16 opcin de configuracin de ejecucin 6-15 por servidor 6-14 remota 6-16 y directorio de trabajo Tomcat del proyecto 6-15 y directorio Tomcat del proyecto 6-15 modificar cdigo 6-15 Depurar web (comando)
n d i c e
I-3
JSP 6-14 desarrollo web 2-8 descriptores de distribucin 3-1 aadir a mdulo web 17-6 archivo web.xml 3-9, 10-1 editar 3-2 Editor DD de Mdulo Web 10-1 Editor de configuracin de Struts 11-1 ms informacin 9-5 mdulo web 3-7, 9-4 nodo de mdulo web 3-9 propios del fabricante para un mdulo web 9-4 registrar 17-6 struts-config.xml 11-1 directorios de un mdulo web 3-14 raz del mdulo web 3-7 WEB-INF 3-7 ver contenido de 17-4 diseadores de Action 12-5 aadir destino de reenvo a Action 12-7 aadir Exception a Action 12-8 aadir Form Bean a Action 12-6 aadir recursos de entrada a Action 12-8 usar inspector 12-9 ver clase de implementacin 12-9 de Form Bean 12-10, 12-11 aadir propiedad Form Bean a Form Bean 12-12 DynaBean 12-12 usar inspector 12-13 ver clase de implementacin 12-13 de Struts 12-1 abrir 17-5 arrastrar y soltar 12-1 de Action 12-5 de Form Bean 12-10 de Tiles 12-13 inspector 12-1 men contextual 12-1 superficie de diseo 12-1 de Tiles 12-13 abrir 17-6 aadir definicin del superior a Definition 12-15 aadir Put a Definition 12-16 usar inspector 12-16 distincin entre maysculas y minsculas en applets y etiquetas APPLET 14-9 distribuir aplicaciones 16-1 applets 14-8, 14-13 archivos
recopilatorio 9-1 recopilatorios de applets 14-9 WAR 9-1 JSP 9-3 mdulos web 9-1 por tipo de archivo 3-19 servlets 4-7, 9-2
E
editar descriptores de distribucin 9-4 Editor DD de Mdulo Web 10-1 aadir coleccin de recursos web 10-2 filtro 10-2 restriccin de seguridad 10-2 servlet 10-2 ficha Aplicaciones Web 10-2 Bibliotecas de etiquetas 10-18 Colecciones de recursos web 10-13 Competencias de seguridad 10-18 Entradas de entorno 10-6 Filtros 10-7 Mapeos de filtros 10-8 Mapeos de servlets 10-17 Mapeos MIME 10-10 Monitores 10-9 Pginas de error 10-6 Parmetros de inicializacin 10-8, 10-16 Referencias de competencia de seguridad 10-16 Referencias de recurso 10-11 Referencias del entorno de recursos 10-11 Referencias EJB 10-4 Referencias locales del EJB 10-5 Restricciones de seguridad 10-12 Servlets 10-14 men contextual 10-2 Editor de configuracin de Struts 11-2 ficha Controlador 11-24 de descripcin general de Recursos de mensajes 11-28 General de Actions 11-19 General de Excepciones globales 11-13 General de Form Bean 11-7 General de Fuentes de datos 11-4 General de Plug Ins 11-31 General de Recursos de mensajes 11-28 General de Reenvos globales 11-16 Plug Ins Overview 11-31 Propiedad de Form Bean 11-7 Visin general de Actions 11-19
I-4
Gu a d e l d e s a r r r o l l a d o r d e a p l i c a c i o n e s w e b
Visin general de excepciones globales 11-13 Visin general de Form Beans 11-7 Visin general de Fuentes de datos 11-4 Visin general de Reenvos globales 11-16 men contextual 11-4 Editor de definiciones de Tiles 11-34 Editor de Tiles ficha General de Tiles 11-34 Put 11-34 PutList 11-34 Visin general de Tiles 11-34 ejecutar applets 14-20 web 8-17 JSP 8-16, 15-3 servlets 8-16, 15-3 Ejecutar web (comando) JSP 6-13 elementos action-mappings Diseador de Action 12-5 struts-config.xml 11-19 controller, archivo struts-config.xml 11-24 data-source, struts-config.xml 11-4 definition archivo tiles-def.xml 11-34 Diseador de Tiles 12-13 form-bean Diseador de Form Bean 12-10 form-beans, archivo struts-config.xml 11-7 global-exceptions, archivo strutsconfig.xml 11-13 global-forwards, archivo struts-config.xml 11-16 message-resources, archivo strutsconfig.xml 11-28 plug-ins, archivo struts-config.xml 11-31 put, archivo tiles-def.xml 11-34 putList, archivo tiles-def.xml 11-34 espacio de contencin seguridad de las aplicaciones Web Start 16-2 seguridad de las applets 14-10 etiquetas control, InternetBeans Express 13-7 database, InternetBeans Express 13-7 de applets 14-2 atributos 14-3 errores 14-4 image, InternetBeans Express 13-7 JSP directiva page 6-3 directiva taglib 6-3 etiqueta comment 6-3
etiqueta declaration 6-3 etiqueta expression 6-3 etiqueta getProperty 6-3 etiqueta scriptlet 6-3 etiqueta setProperty 6-3 etiqueta useBean 6-3 param, applets 14-3 query, InternetBeans Express 13-7 submit, InternetBeans Express 13-7 table, InternetBeans Express 13-7 etiquetas JSP 6-3
F
fichas Aplicaciones Web (Editor DD de Mdulo Web) 10-2 Bibliotecas de etiquetas (Editor DD de Mdulo Web) 10-18 Clases (cuadro de dilogo Propiedades de Mdulo web) 3-15 Colecciones de recursos web (Editor DD de Mdulo Web) 10-13 Competencias de seguridad (Editor DD de Mdulo Web) 10-18 Contenido (cuadro de dilogo Propiedades de Mdulo web) 3-14 Controlador (Editor de configuracin de Struts) 11-24 de descripcin general de Recursos de mensajes (Editor de configuracin de Struts) 11-28 Dependencias (cuadro de dilogo Propiedades de Mdulo web) 3-17 Descriptor (cuadro de dilogo Propiedades de Mdulo Web) 3-18 Directorios (cuadro de dilogo Propiedades de Mdulo Web) 3-14 Distribucin (cuadro de dilogo Propiedades de Mdulo web) 3-19 Entradas de entorno (Editor DD de Mdulo Web) 10-6 Filtros (Editor DD de Mdulo Web) 10-7 General de Actions (Editor de configuracin de Struts) 11-19 General de Excepciones globales (Editor de configuracin de Struts) 11-13 General de Form Beans (Editor de configuracin de Struts) 11-7 General de Fuentes de datos (Editor de configuracin de Struts) 11-4 General de Plug Ins (Editor de configuracin de Struts) 11-31 General de Recursos de mensajes (Editor de configuracin de Struts) 11-28
n d i c e
I-5
General de Reenvos globales (Editor de configuracin de Struts) 11-16 General de Tiles (Editor de configuracin de Tiles) 11-34 Generar (cuadro de dilogo Propiedades de Mdulo Web) 3-13 Limpiar (cuadro de dilogo Propiedades de Mdulo web) 3-12 Mapeos de filtros (Editor DD de Mdulo Web) 10-8 Mapeos de servlets (Editor DD de Mdulo Web) 10-17 Mapeos MIME (Editor DD de Mdulo Web) 10-10 Mdulo (cuadro de dilogo Propiedades de Mdulo web) 3-10 Monitores (Editor DD de Mdulo Web) 10-9 Pginas de error (Editor DD de Mdulo Web) 10-6 Parmetros de inicializacin (Editor DD de Mdulo Web) 10-8, 10-16 Plug Ins Overview (Editor de configuracin de Struts) 11-31 Propiedad de Form Beans (Editor de configuracin de Struts) 11-7 Put (Editor de configuracin de Tiles) 11-34 PutList (Editor de configuracin de Tiles) 11-34 Referencias de competencia de seguridad (Editor DD de Mdulo Web) 10-16 Referencias de recurso (Editor DD de Mdulo Web) 10-11 Referencias del entorno de recursos (Editor DD de Mdulo Web) 10-11 Referencias EJB (Editor DD de Mdulo Web) 10-4 Referencias locales del EJB (Editor DD de Mdulo Web) 10-5 Restricciones de seguridad (Editor DD de Mdulo Web) 10-12 Servlets (Editor DD de Mdulo Web) 10-14 Visin general de Actions (Editor de configuracin de Struts) 11-19 Visin general de Excepciones globales (Editor de configuracin de Struts) 11-13 Visin general de Form Beans (Editor de configuracin de Struts) 11-7 Visin general de Fuentes de datos (Editor de configuracin de Struts) 11-4 Visin general de Reenvos globales (Editor de configuracin de Struts) 11-16 Visin general de Tiles (Editor de Tiles) 11-34 Web (cuadro de dilogo Propiedades de Mdulo Web) 3-11 filtros
aadir a archivo web.xml 10-2 mdulo web 3-12 fuentes Convenciones empleadas en la documentacin de JBuilder 1-3
G
generar tablas con InternetBeans Express 13-5 grupos de noticias Borland 1-6 public 1-6
I
importar archivos a mdulos web 3-8 mdulo web 3-3 iniciar JSP 8-5 servlets 8-5 Tomcat 15-4 URI 8-2, 8-5 instalar Web Start 16-3 Intercambio inteligente 6-15 Interfaz de enlace comn (CGI) en comparacin con servlets 2-2 Internet tabla de tecnologas 2-1 InternetBeans Express 13-1 analizar HTML 13-4 descripcin general 2-1, 2-6 directiva page 13-5 taglib 13-5 envo de los datos del servlet 13-4 formato de archivo de biblioteca de etiquetas 13-8 generar tablas 13-5 tabla de clases 13-2 de etiquetas JSP 13-7 tutorial 20-1, 23-1 y JSP 6-4, 13-5 y servlets 13-4
J
Java Network Launching Protocol Consulte JNLP Java Web Start 2-7 JNLP 16-1 archivo JNLP 16-6 JSP 6-1 asignar bibliotecas de etiquetas 10-18 bibliotecas de etiquetas
I-6
Gu a d e l d e s a r r r o l l a d o r d e a p l i c a c i o n e s w e b
caractersticas de JBuilder 6-5 compilar 6-13, 8-15 configuracin de ejecucin para depurar 6-15 convertir en Struts 7-15 crear a partir de ActionForm 7-13 con el asistente 6-10 con nombres iguales 17-2 en un subdirectorio del mdulo web 17-1 depuracin con Tomcat 4.1 15-6 del cdigo fuente 8-20 remota 6-16 web 6-14, 8-20 desarrollo 6-10 descripcin general 2-1, 2-3 distribuir 9-3 ejecutar con Tomcat 15-3 web 6-13, 8-16 enlazados a datos 13-1 especificar paquete para servlet generado automticamente 17-2 incluir en archivo WAR 3-19 iniciar 8-5 InternetBeans Express 6-4, 13-5 JSTL 6-4 marcos de trabajo 6-4, 6-5 propiedades de ejecucin 8-13 sintaxis 6-3 Struts 6-4 tutorial 19-1, 20-1 vnculos 6-17 y servlets 4-2 JSTL descripcin general 2-5
de servlets, redefinir estndar 5-5 servletPost() 13-4 mdulos web 3-1 aadir archivos 3-8 tipos de archivo adicionales 17-3 asistente 3-3 comprobar 9-3 descriptores de distribucin 3-7, 9-4 descriptores de distribucin, especficos del fabricante 9-4 directorio raz 3-7 WEB-INF 3-7 distribuir 9-1 editor del descriptor de distribucin 10-1, 11-1 estructura 3-1 herramientas 3-2 importacin a JBuilder 3-3 de archivos 3-8 propiedades 3-10 ubicacin de archivos 3-7
N
navegadores compatibilidad con Java 14-5 diferencias en la implementacin de Java 14-6 ejecutar applets 14-5 llamada a servlets desde 5-12 Plug-in de Java 14-7 sobre la compatibilidad con JDK 14-5 soluciones para ejecutar applets 14-7 nodo mdulo web 3-7
P
pginas HTML convertir en Struts 7-15 llamada a servlets desde 5-13 JavaServer 6-1 Consulte tambin JSP panel del proyecto mostrar webapps de Struts 7-3 paquetes en applets 14-9 servlet HTTP 4-4 parmetros de servlets 5-7 patrn de URL 5-8, 8-10 Plug-in de Java 14-7 propiedades archivos WAR 3-19 mdulo Web
L
llamar a los servlets 5-11
M
mapeo servlets 5-8, 8-2, 8-10 marcos de trabajo 6-5 Cocoon 7-7 configurar 6-6 cuadros de dilogo Configurar bibliotecas 7-7 definidos por el usuario 6-6 InternetBeans 7-7 JSTL 7-7 Struts 7-7 utilizar con JSP 6-4 mtodos
n d i c e
I-7
ficha Generar 3-13 Registro a travs de Pgina Web 3-11 mdulos web 3-10 Clases (ficha) 3-15 compresin del archivo WAR 3-10 directorio 3-10 ficha Contenido 3-14 ficha Dependencias 3-17 ficha Descriptor 3-18 ficha Directorios 3-14 ficha Distribucin 3-19 ficha Limpiar 3-12 ficha Mdulo 3-10 filtros 3-12 generacin del archivo WAR 3-10 generar 3-13 iniciar URI 3-11 limpiar 3-12 marcos de trabajo JSP/Servlet 3-11 nombre del archivo WAR 3-10 raz de contexto 3-11 tipos de ficheros incluidos 3-10 ubicacin del archivo WAR 3-10 proyecto Blank para Struts 7-22 proyectos configurar Web Start 16-4 seleccionar servidor web 15-3 puertos cambiar para Tomcat 15-4
R
recopilatorios web Consulte archivos WAR referencias EJB locales archivo web.xml 10-5 registrar descriptores de distribucin 17-6 struts-config.xml en web.xml 7-4 tiles-def.xml en struts-config.xml 7-4 validation.xml en struts-config.xml 7-4 restriccin de seguridad aadir a archivo web.xml 10-2 mdulo web 10-12
S
seguridad administrador de seguridad 14-10 applets 14-11 autenticar applets 14-11 de las applets 14-2 administrador de seguridad 14-10 autenticar 14-11 espacio de contencin 14-10
restricciones 14-11 soluciones 14-11 en las aplicaciones Web Start 16-2 espacio de contencin 14-10 restricciones de un applet 14-11 server.xml crear archivo personalizado para Tomcat 15-5 servidores de aplicaciones compatibilidad con depuracin de JSP 6-14 web cambiar nmero de puerto 17-2 compatibilidad con depuracin de JSP 6-14 finalizar 8-19 iniciar 8-17 salida en bruto 8-19 Tomcat Consulte Tomcat ServletContext 3-7 servlets 4-1, 5-1 aadir a archivo web.xml 10-2 archivo de formulario HTML 5-6 ciclo de vida 4-4 compilar 8-15 crear con asistentes 5-1 de filtro 5-2, 5-10, 10-7 de hilo simple 5-2 denominacin 5-8, 8-10 depuracin web 8-20 descripcin general 2-1, 2-2 destruir 4-5 distribuir 4-7, 9-2 e InternetBeans Express 5-14, 13-4 ejecutar con Tomcat 15-3 web 8-16 ejemplos de uso 4-6 en comparacin con la CGI (Interfaz de enlace comn) 2-2, 4-1 enlace a HTML 4-5 enlazar a datos 5-14, 13-1 especficos para HTTP 4-6 estndar 5-2 archivo de formulario HTML 5-6 hilos 4-5, 5-2 HTML 4-5, 5-4 HTTP 4-6 incluir en archivo WAR 3-19 inicializar 4-4 iniciar 8-5 internacionalizacin 5-13 llamada 5-12, 5-13 mapeo 5-8, 8-2, 8-10 monitor 5-2, 10-9
I-8
Gu a d e l d e s a r r r o l l a d o r d e a p l i c a c i o n e s w e b
interfaces 5-6 multihilo 4-5 paso de las respuestas 4-5 patrn de URL 5-8, 8-10 propiedades de ejecucin 8-13 ServletContext 3-7 solicitudes del cliente 4-5 tipo de contenido 5-4 tutorial 18-1, 22-1, 23-1 WML 5-4 XHTML 5-4 XML 5-4 y JSP 4-2 y mdulos web 5-2, 5-8, 8-10 y servidores web 4-1, 4-3 y URI 8-10 y URL 5-8, 8-10 solicitudes del cliente al servlet 4-5 Struts 7-1 aadir descriptores de distribucin a web.xml 7-4 archivo struts-config.xml 7-2 web.xml 7-2 asistente para Action 7-12 para ActionForm 7-10 para conversin de Struts 7-15 para JSP a partir de ActionForm 7-13 para mdulos web 7-8 bibliotecas de etiquetas 7-1 clase Action 7-1, 7-12 ActionForm 7-1, 7-10, 7-13 AtionServlet 7-1 compatibilidad del marco de trabajo 7-7 en JBuilder 7-2 controlador 7-1 cuadro de dilogo Propiedades 7-4 descripcin general 2-5 modelo 7-1 mostrar en panel del proyecto 7-3 pasos para crear una webapp preparada para Struts 7-19 proyecto Blank 7-22 registrar descriptores de distribucin en web.xml 7-4 URI de inicio 7-8 utilizar con JBuilder 7-19 con JSP 6-4 versin 1,1 7-1
T
tablas generar con InternetBeans Express 13-5 tecnologas web 2-1 qu tecnologa usar 2-7 sugerencias 17-1 Tiles aadir descriptores de distribucin a strutsconfig.xml 7-4 registrar descriptores de distribucin en strutsconfig.xml 7-4 tipos de archivo incluir en archivo WAR 3-19 de servlet 5-2 estndar 5-2 filtro 5-2, 5-10, 10-7 monitor 5-2, 5-6 Tomcat 15-1 cambiar nmero de puerto 15-4 compatibilidad con depuracin de JSP 6-14 configurar 15-1 crear archivo personalizado server.xml 15-5 depurar JSP con Tomcat 4.1 15-6 directorio de trabajo del proyecto 6-15 ejecutar JSP 15-3 ejecutar servlets 15-3 finalizar 15-4 iniciar 15-4 seleccionar para proyecto 15-3 tutoriales JSP 19-1 JSP e InternetBeans 20-1 servlet 18-1, 22-1 servlet e InternetBeans 23-1 Web Start 21-1
U
ubicaciones de archivos, mdulo web 3-7 URI y servlets 8-10 URL y servlets 5-8, 8-10 Usenet, grupos de noticias 1-6
V
Validacin aadir descriptores de distribucin a strutsconfig.xml 7-4 registrar descriptores de distribucin en strutsconfig.xml 7-4
n d i c e
I-9
W
Web Start 2-7, 16-1 applets 14-7 archivo JAR 16-6 JNLP 16-6 asistente 16-6 configurar proyecto para 16-4 instalar 16-3 pgina de inicio de la aplicacin, Web Start 16-6 seguridad de las aplicaciones 16-2 tutorial 21-1 y JBuilder 16-4 WebApps Consulte mdulos web WebLogic archivo weblogic.xml 9-4 descriptor de distribucin 9-4
X
XML especfico del servidor, aadir a WAR 17-3
I-10
Gu a d e l d e s a r r r o l l a d o r d e a p l i c a c i o n e s w e b