Borland VERSIN 9
JBuilder
Borland Software Corporation 100 Enterprise Way, Scotts Valley, CA 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 19972003 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 del product Borland. Impreso en los EEUU. JBE0090WW21003webapps 4E4R0503 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-6 1-6 1-6 1-6 1-7
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
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-3 . 4-3 . 4-4 . 4-5 . 4-7 . 4-7 . 4-7 . 4-8 . 4-8 . 4-8 . 4-9 . 4-9 4-10
Captulo 2
2-1
2-2 2-3 2-5 2-5
Captulo 5
5-1
. 5-1 . 5-1 . 5-3 . 5-4 . 5-5 . 5-6 . 5-6 . 5-7 . 5-8 5-10 5-11 5-12 5-12 5-13
Captulo 3
3-1
. . 3-1 . . 3-2 . . 3-2 . . . . . . . . . . 3-3 . 3-5 . 3-6 . 3-7 . 3-8 . 3-9 . 3-10 . 3-12 . 3-14
Captulo 6
Captulo 8
6-1
. 6-3 . 6-4 . 6-5 . 6-6
8-1
. 8-3 . 8-5 . 8-5 . 8-6 . 8-8
. 6-6 . 6-10 . 6-11 . 6-14 . 6-14 . 6-14 . 6-15 . 6-16 . 6-16 . 6-16 . 6-17 . 6-17 . 6-17 . 6-18
. . 8-9 . 8-10 . 8-11 . 8-11 . 8-12 . 8-13 . 8-13 . 8-14 . 8-14 . 8-15 . 8-15 . 8-16 . 8-17 . 8-17 . 8-18 . 8-18 . 8-19 . 8-20 . 8-20 . 8-22
Captulo 7
InternetBeans Express
Descripcin general de las clases de InternetBeans Express . . . . . . . . . . . . Utilizacin de InternetBeans Express con servlets . . . . . . . . . . . . . . . . . . . . Visualizacin de pginas web dinmicas con servlets mediante InternetBeans Express. . . . . . . . . . . . . . . . . . . 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 . . .
7-1
. . 7-2 . . 7-3
Captulo 9
9-1
Visualizacin de las configuraciones de Tomcat . . . . . . . . . . . . . . . . . . . . . . . 9-2 Configuracin de otros servidores web . . . . . 9-4 ii
Eleccin de un servidor para su proyecto . . . . 9-4 Configuracin del IDE para ejecutar/depurar web . . . . . . . . . . . . . . . . . . . . . . . . 9-7
Captulo 10
10-1
. . 10-2 . . 10-2 . . 10-3 . . . . . . . . . . . 10-5 10-10 10-13 10-14 10-15 10-15 10-16 10-17 10-17 10-18
Ficha Bibliotecas de etiquetas . . . . . . . . . Ficha Tipo de MIME . . . . . . . . . . . . . . Ficha Pginas de error . . . . . . . . . . . . . Ficha Entradas de entorno . . . . . . . . . . . Ficha Referencias EJB . . . . . . . . . . . . . . Ficha Referencias EJB locales . . . . . . . . . Ficha Referencias de la factora de conexin del gestor de recursos. . . . . . . . . . . . . Referencias del entorno de recursos . . . . . Ficha Conexin . . . . . . . . . . . . . . . . . Ficha Seguridad . . . . . . . . . . . . . . . . . restricciones de seguridad . . . . . . . . . Coleccin de recursos web . . . . . . . . .
. 12-9 12-10 12-11 12-11 12-12 12-12 12-12 12-13 12-14 12-14 12-15 12-15
Captulo 13
13-1
. 13-2 . 13-3 . 13-3 . 13-5 . 13-6 . 13-6 . 13-9 . 13-9 13-10 13-13 13-13 13-14 13-16 13-17 13-17 13-21 13-21 13-22 13-25 13-25
Captulo 11
11-1
. 11-1 . 11-1 . 11-2 . 11-2 . 11-2 . 11-3 . 11-4 . 11-4
. . 11-5 . . 11-5
Captulo 12
12-1
. 12-2 . 12-3 . 12-4 . 12-4 . 12-6 . 12-7
iii
Men contextual de la ficha Recursos de mensajes . . . . . . . . . . . . . . . . . . Ficha Plug Ins (Struts 1.1) . . . . . . . . . . . Men contextual de la ficha Plug Ins. . . Modificacin del archivo tiles.xml (Struts 1.1). . . . . . . . . . . . . . . . . . .
Captulo 15
Captulo 14
Las applets
Cmo funcionan . . . . . . . . . . . . . . . . . La <etiqueta> applet. . . . . . . . . . . . . . . Etiqueta de<ejemplo> applet . . . . . . . . Atributos de las etiquetas <applet> . . . . Errores habituales en la etiqueta <applet> Los navegadores . . . . . . . . . . . . . . . . . Compatibilidad con Java . . . . . . . . . . Obtencin del navegador apropiado . . . . Compatibilidad con varios navegadores . Diferencias en la implementacin de Java . Soluciones a los problemas con los navegadores . . . . . . . . . . . . . . . . . Consejos adicionales para que funcionen las applets . . . . . . . . . . . . . . . . . . . . . . La seguridad y el Administrador de seguridad . . . . . . . . . . . . . . . . . . . . El espacio de contencin. . . . . . . . . . . Restricciones de las applets . . . . . . . . . Soluciones a problemas de seguridad . . . Utilizacin de bibliotecas de terceros . . . . . Distribucin de las applets . . . . . . . . . . . Comprobacin de las applets . . . . . . . . . . Pasos bsicos de la comprobacin . . . . . Comprobacin en los navegadores . . . . . JBuilder y las applets . . . . . . . . . . . . . . Creacin de applets con el Asistente para applets . . . . . . . . . . . . . . . . . Ejecucin de applets . . . . . . . . . . . . . El Appletestbed de JBuilder y el appletviewer de Sun . . . . . . . . . . Ejecucin de applets JDK 1.1.x en JBuilder. . . . . . . . . . . . . . . . . . Ejecucin de applets JDK 1.2 en JBuilder. . . . . . . . . . . . . . . . . . Depuracin de applets . . . . . . . . . . . . Depuracin de applets en el Plug-in de Java . . . . . . . . . . . . . . . . . . Distribucin de applets en JBuilder . . . .
14-1
. 14-2 . 14-2 . 14-2 . 14-3 . 14-4 . 14-5 . 14-5 . 14-6 . 14-6 . 14-6 . 14-7 . 14-9 14-11 14-11 14-11 14-12 14-13 14-14 14-14 14-15 14-16 14-17 14-17 14-21 14-22 14-22 14-23 14-23 14-24 14-25
. . . 15-7
Captulo 16
16-1
. 16-1 . 16-2 . 16-2 . 16-3 . 16-3 . 16-3 . 16-4
Captulo 17
17-1
. 17-2 . 17-2 . 17-3 . 17-4 . 17-7 . 17-8
Captulo 18
18-1
. 18-2 . 18-2 . 18-3 . 18-4 . 18-9
Paso 4: Creacin de la JSP . . . . . . . . . Paso 5: Adicin de funciones al JavaBean Paso 6: Modificacin del cdigo de la JSP Paso 7: Ejecucin de la pgina JSP . . . . Utilizacin de la pestaa Vista web . . Depuracin de las JSP. . . . . . . . . . Distribucin de la JSP . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
Captulo 20
20-1
. . . . . 20-2 20-2 20-2 20-3 20-5
Captulo 19
19-1
Captulo 21
Paso 1: Creacin de proyectos . . . . . . . . . . 19-2 Paso 2: Seleccin de un servidor . . . . . . . . . 19-2 Paso 3: Creacin de una WebApp . . . . . . . . 19-3
21-1
Paso 2: Seleccin de un servidor . . . . . . . Paso 3: Creacin de una WebApp . . . . . . Paso 4: Utilizacin del Asistente para JSP . . Paso 5: Diseo de la parte HTML de la JSP . Paso 6: Adicin de la etiqueta de base de datos de InternetBeans . . . . . . . . . . . Paso 7: Adicin de la etiqueta consulta de InternetBeans . . . . . . . . . . . . . . . . . Paso 8: Adicin de la etiqueta de tabla de InternetBeans . . . . . . . . . . . . . . . . . Paso 9: Adicin de las etiquetas de control de InternetBeans . . . . . . . . . . . . . . . Paso 10: Adicin de la etiqueta de envo de InternetBeans . . . . . . . . . . . . . . . . . Paso 11: Adicin del mtodo submitPerformed() . . . . . . . . . . . . . . Paso 12: Adicin del cdigo para insertar una fila . . . . . . . . . . . . . . . . . . . . Paso 13: Adicin de la biblioteca JDataStore Server al proyecto . . . . . . . . Paso 14: Ejecucin de la pgina JSP . . . . . Distribucin de la JSP . . . . . . . . . . .
. . . .
Captulo 22
Tutorial: Ejecucin de la aplicacin de ejemplo CheckBoxControl con Java Web Start 22-1
Paso 1: Abrir y configurar el proyecto . . . . . Paso 2: Creacin de aplicaciones de WebApp . Paso 3: El archivo JAR de la aplicacin . . . . . Paso 4: Creacin de la aplicacin de la pgina de inicio y el archivo JNLP . . . . . . Paso 5: Creacin de una configuracin de ejecucin del servidor. . . . . . . . . . . . . . Paso 6: Inicio de la aplicacin . . . . . . . . . . 22-2 22-3 22-4 22-5 22-8 22-9
. . 21-6 . . 21-7 . . 21-7 . . 21-8 . . 21-9 . . 21-9 . 21-10 . 21-11 . 21-12 . 21-12
ndice
I-1
vi
Tablas
1.1 1.2 2.1 3.1 3.2 4.1 4.2 5.1 5.2 5.3 5.4 6.1 6.2 7.1 7.2 9.1 10.1 10.2 12.1 12.2 12.3 12.4 12.5 Convenciones tipogrficas y de smbolos 1-3 Convenciones de plataformas . . . . . . . 1-4 Tecnologas para aplicaciones web . . . . 2-1 Herramientas de JBuilder para WebApp y archivos WAR. . . . . . . . . . . . . . . 3-2 Marcos de trabajo disponibles en el Asistente para aplicaciones web . . . . . 3-4 Introduccin general a la API de Servlet . . . . . . . . . . . . . . . . . . . . 4-4 Interfaces y paquetes de clases servlet utilizados habitualmente. . . . . . . . . . 4-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-15 Clases de InternetBeans Express . . . . . 7-2 Etiquetas InternetBeans Express . . . . . 7-9 Parmetros del cuadro de dilogo Configurar servidores para Tomcat . . . 9-3 rboles URI . . . . . . . . . . . . . . . . . 10-8 Patrones de URL . . . . . . . . . . . . . 10-11 Ficha Descriptor de distribucin para la WebApp del Editor DD de WebApp . 12-3 Ficha Filtros del Editor DD de Webapp . 12-4 Ficha Filtro individual del Editor DD de Webapp . . . . . . . . . . . . . . . . . . . 12-5 Ficha Servlet individual del Editor DD de Webapp . . . . . . . . . . . . . . . . . 12-8 Ficha Coleccin de recursos web del Editor DD de WebApp . . . . . . . . . . 12-16 13.1 Atributos de Fuente de datos . . . . . . . 13-5 13.2 Men contextual de la ficha Fuentes de datos . . . . . . . . . . . . . . . . . . . 13-6 13.3 Atributos de Form Bean. . . . . . . . . . 13-7 13.4 Men contextual de la ficha Form Beans . . . . . . . . . . . . . . . . . 13-9 13.5 Atributos de excepciones globales . . . 13-12 13.6 Men contextual de la ficha Excepciones globales . . . . . . . . . . 13-13 13.7 Atributos de Reenvo . . . . . . . . . . 13-15 13.8 Men contextual de la ficha Reenvos globales . . . . . . . . . . . . . . . . . . 13-17 13.9 Atributos de Action . . . . . . . . . . . 13-19 13.10 Men contextual de la ficha Correspondencias Action . . . . . . . . 13-22 13.11 Atributos de Controlador . . . . . . . . 13-23 13.12 Atributos de Recursos de mensajes . . 13-27 13.13 Men contextual de la ficha Recursos de mensajes . . . . . . . . . . . . . . . . 13-28 13.14 Atributos de Plug Ins . . . . . . . . . . 13-29 13.15 Men contextual de la ficha Plug Ins . 13-30 14.1 Atributos de las etiquetas <applet> . . . 14-3 15.1 Introduccin general a la API del JNLP . 15-2 15.2 Opciones del Creador de recopilatorios . 15-5 15.3 Opciones del asistente para el inicio de Web Start . . . . . . . . . . . . . . . . 15-6 17.1 Opciones de parmetros del Asistente para servlets . . . . . . . . . . . . . . . . 17-5
vii
viii
Figuras
3.1 3.2 Asistente para aplicaciones web . . . . . 3-5 Panel de proyecto que muestra un nodo WebApp. . . . . . . . . . . . . . . . 3-5 3.3 Ficha WebApp del cuadro de dilogo Propiedades de WebApp . . . . . . . . . 3-10 3.4 Ficha Directorios del cuadro de dilogo Propiedades de WebApp . . . . . . . . . 3-12 3.5 Ficha Clases del cuadro de dilogo Propiedades de WebApp . . . . . . . . . 3-14 3.6 Ficha Dependencias del cuadro de dilogo Propiedades de WebApp. . . . . 3-15 3.7 La ficha Descriptor del cuadro de dilogo Propiedades de WebApp. . . . . 3-16 3.8 Ficha Distribucin del cuadro de dilogo Propiedades de WebApp para Borland Enterprise Server . . . . . . . . . 3-16 3.9 El nodo del archivo WAR abierto en JBuilder IDE . . . . . . . . . . . . . . . . . 3-17 3.10 Cuadro de dilogo Propiedades del archivo WAR . . . . . . . . . . . . . . . . 3-18 5.1 Asistente para servlets ficha Seleccione el nombre y el tipo de servlet . . . . . . . . . . . . . . . . . . . . 5-3 5.2 Asistente para servlets - ficha Modificar detalles del servlet estndar . . 5-3 5.3 Asistente para servlets - ficha Introduzca los detalles del servlet monitor. . . . . . . . . . . . . . . . . . . . 5-7 5.4 Asistente para servlets ficha Introduzca los parmetros de la peticin del servlet . . . . . . . . . . . . . . . . . . 5-8 5.5 Asistente para servlets Servlet estndar, ficha Introduzca los detalles de webapp . . . . . . . . . . . . . . . . . . 5-10 5.6 Asistente para servlets Servlet de filtro, ficha Introduzca los detalles de webapp . . . . . . . . . . . . . . . . . . 5-10 5.7 Asistente para Servlets Ficha de configuracin de ejecucin. . . . . . . . . 5-11 8.1 Struts antes y despus . . . . . . . . . . 8-3 8.2 Vista de Struts en el panel del proyecto . 8-5 8.3 Marco de trabajo Struts en Configurar bibliotecas . . . . . . . . . . . . . . . . . . 8-8 8.4 Asistente para aplicaciones web . . . . . 8-9 8.5 Ficha Modificar los detalles del archivo JSP Asistente para JSP . . . . . 8-10 8.6 8.7 Ficha Aplicacin web e informacin de clases para ActionForm Asistente para ActionForm . . . . . . . . . . . . . . . . . 8-12 Ficha Definicin de campos para ActionForm Asistente para ActionForm . . . . . . . . . . . . . . . . . 8-12 Ficha Seleccin de opciones adicionales Asistente para ActionForm . . . . . . . . . . . . . . . . . 8-13 Ficha Nombre y WebApp para Action Asistente para Action . . . . . . . . . . . 8-14 Ficha Informacin de configuracin Asistente para Action . . . . . . . . . . . 8-15 Ficha WebApp, JSP y ActionForm Asistente para JSP a partir de ActionForm . . . . . . . . . . . . . . . . . 8-16 Ficha Tipos de etiquetas para campos ActionForm en JSP Asistente para JSP a partir de ActionForm . . . . . . . . . . 8-16 Ficha Indique las opciones para crear esta JSP Struts Asistente para JSP a partir de ActionForm . . . . . . . . . . . 8-17 Ficha Indique las fichas para convertir a Struts Asistente para conversin de Struts. . . . . . . . . . . . . . . . . . . 8-18 Ficha Etiquetas que se han de convertir Asistente para conversin de Struts . . . 8-19 Ficha Especifique las opciones para convertir etiquetas a Struts Asistente para conversin de Struts . . . . . . . . . 8-19 Editor de configuracin de Struts . . . . 8-20 Mensajes Tomcat. . . . . . . . . . . . . 10-16 Salida de Vista web . . . . . . . . . . . 10-17 Ver cdigo fuente web . . . . . . . . . 10-17 Depuracin web . . . . . . . . . . . . . 10-18 Ficha Descriptor de distribucin para la WebApp del Editor DD de WebApp . . . . . . . . . . . . . . . . . . 12-3 Ficha Parmetros de contexto del Editor DD de WebApp . . . . . . . . 12-4 Ficha Filtros del Editor DD de Webapp . . . . . . . . . . . . . . . . . . . 12-5 Nodo de filtro individual en el Editor DD de Webapp. . . . . . . . . . . 12-6 Ficha Monitores del Editor DD de Webapp . . . . . . . . . . . . . . . . . . . 12-6
8.8
8.12
8.13
8.14
8.15 8.16
ix
12.6 Ficha Servlets del Editor DD de Webapp . . . . . . . . . . . . . . . . . . 12.7 Nodo de servlet individual en el Editor DD de WebApp . . . . . . . . . . 12.8 Ficha Bibliotecas de etiquetas en el Editor DD de WebApp . . . . . . . . . . 12.9 Ficha Tipo de MIME en el Editor DD de WebApp . . . . . . . . . . . . . . . . 12.10 Ficha Pginas de error en el Editor DD de WebApp . . . . . . . . . . . . . . . . 12.11 Ficha Entorno en el Editor DD de WebApp . . . . . . . . . . . . . . . . . . 12.12 Ficha Referencias EJB en el Editor DD de WebApp . . . . . . . . . . . . . . . . 12.13 Ficha Referencias de la factora de conexin del gestor de recursos en Editor DD de WebApp . . . . . . . . . . 12.14 Ficha Referencias del entorno de recursos en el Editor DD de WebApp . 12.15 Ficha Conexin en el Editor DD de WebApp . . . . . . . . . . . . . . . . . . 12.16 Ficha Seguridad en el Editor DD de WebApp . . . . . . . . . . . . . . . . . . 12.17 Restriccin de seguridad en el Editor DD de WebApp . . . . . . . . . . 12.18 Nodo de coleccin de recursos web en el Editor DD de WebApp. . . . . . . 13.1 Ficha de visin general de Fuentes de datos . . . . . . . . . . . . . . . . . . 13.2 Ficha de atributos de Fuentes de datos . 13.3 Ficha de visin general de Form Beans. 13.4 Ficha de atributos de Form Bean . . . .
12-13 12-13 12-14 12-14 12-15 12-16 . 13-4 . 13-4 . 13-7 . 13-7
13.5 Ficha Visin general de excepciones globales . . . . . . . . . . . . . . . . . 13.6 Ficha de atributos Excepciones globales . . . . . . . . . . . . . . . . . 13.7 Ficha de visin general de Reenvos globales . . . . . . . . . . . . . . . . . 13.8 Ficha de atributos de Reenvo . . . . 13.9 Ficha de visin general de Correspondencias Action . . . . . . . 13.10 Ficha de atributos de Action . . . . . 13.11 Ficha de atributos Controlador. . . . 13.12 Ficha de visin general de Recursos de mensajes . . . . . . . . . . . . . . . 13.13 Ficha de atributos Recursos de mensajes . . . . . . . . . . . . . . . . 13.14 Ficha de visin general Plug Ins . . . 13.15 Ficha de atributos Plug Ins . . . . . . 15.1 Vista web de Java Web Start . . . . . 15.2 Navegador externo para Java Web Start . . . . . . . . . . . . . . . . 17.1 Servlet que se ejecuta en la vista web 17.2 Servlet en ejecucin tras enviar el nombre . . . . . . . . . . . . . . . . . 19.1 Nodo WebApp en el panel del proyecto. . . . . . . . . . . . . . . . . 19.2 JSP en Vista web . . . . . . . . . . . . 20.1 Nodo WebApp en el panel del proyecto. . . . . . . . . . . . . . . . . 21.1 Nodo WebApp en el panel del proyecto. . . . . . . . . . . . . . . . .
. 13-11 . 13-11 . 13-14 . 13-15 . 13-18 . 13-18 . 13-23 . 13-26 . . . . 13-26 13-29 13-29 . 15-8
xi
Tutoriales
Creacin de un servlet simple . . . . . . . . Creacin de un servlet que actualiza un libro de visitas . . . . . . . . . . . . . . . . Creacin de una JSP mediante el Asistente para JSP . . . . . . . . . . . . . . . . . . . . Creacin de un servlet con InternetBeans Express . . . . . . . . . . . . . . 17-1 . . 18-1 . . 19-1 . . 20-1 Creacin de una JSP con InternetBeans Express . . . . . . . . . . . . . 21-1 Ejecucin de la aplicacin de ejemplo CheckBoxControl con Java Web Start. . . . . 22-1
xii
Captulo
Captulo1
Introduccin
El desarrollo web es una funcin de JBuilder Developer y JBuilder Enterprise. El desarrollo de applets es una caracterstica 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 es un conjunto de documentos HTML/XML, componentes web (servlets y pginas JSP) y otros recursos existentes en una estructura de directorio o en un formato de archivo conocido como Web ARchive (WAR). 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: 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. Captulo 3, Las WebApps y los archivos WAR Explica cmo crear un archivo y una aplicacin web en un archivo WAR en JBuilder. Este captulo analiza tambin la estructura y los conceptos generales de las WebApp. Captulo 4, Los servlets Presenta los servlets y la API de servlet. 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.
Introduccin
1-1
Introduccin
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, InternetBeans Express Explica la biblioteca InternetBeans y cmo utilizar los componentes con servlets y JSP. Captulo 8, 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 9, Configuracin del servidor web Explica cmo configurar el servidor web para trabajar con el IDE de JBuilder. Captulo 10, Las aplicaciones web en IDE de JBuilder Explica cmo compilar, ejecutar y depurar servlets y JSP. Captulo 11, Distribucin de aplicaciones web Explica los diferentes aspectos de la distribucin de las aplicaciones web. Captulo 12, Modificacin del archivo web.xml Explica cmo se debe utilizar el Editor DD de la webapp para modificar el archivo web.xml. Captulo 13, Modificacin del archivo struts-config.xml Explica el modo de utilizacin del Editor DD Struts con el fin de modificar el archivo struts-config.xml. 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, 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 16, Sugerencias sobre aplicaciones web Muestra una serie de sugerencias para el desarrollo de aplicaciones web. Para una lista de los tutoriales en este libro, consulte Tutoriales en la pgina xii.
1-2
Convenciones de la documentacin
Este documento contiene multitud de direcciones de sedes web externas. 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. 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
Cursiva
Teclas
[]
Introduccin
1-3
Convenciones de la documentacin
Italics, 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
1-4
Directorio de inicio
Imgenes de pantalla
Introduccin
1-5
Recursos en lnea
Tambin puede obtener informacin de los siguientes recursos en lnea: World Wide Web Circulares electrnicas http://www.borland.com/ http://www.borland.com/techpubs/jbuilder/ Para suscribirse a las circulares electrnicas, rellene el formulario en lnea que aparece en: http://www.borland.com/products/newsletters/index.html
Nota:
Introduccin
1-7
1-8
Captulo
El desarrollo web es una funcin de JBuilder Developer y JBuilder Enterprise. El desarrollo de applets es una caracterstica de todas las ediciones de JBuilder JBuilder WebLogic Edition no es compatible con Tomcat, Borland Enterprise Server ni IIS.
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
Servlets Pginas JavaServer (JSP)
Technologa
InternetBeans Express
Struts
2-1
Servlets
Tabla 2.1
Technologa
JSTL (Biblioteca de etiquetas estndar para Pginas JavaServer)
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: Reduccin de la sobrecarga de la memoria Independencia de la plataforma Independencia del protocolo
2-2
Gua del desarrollador de aplicaciones web
Se utiliza un programa cliente escrito en cualquier lenguaje para enviar peticiones al servlet. El cliente puede ser tan simple como una pgina HTML. Tambin se podra usar una applet para el cliente o un programa escrito 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: No hay que preocuparse de en que 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 invocar el 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 una 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. stos estan explicados en el Captulo 11, Distribucin de aplicaciones web. Para obtener ms informacin sobre servlets de Java, consulte el Captulo 4, Los servlets, y el Captulo 5, Los servlets en JBuilder.
2-3
en realidad es parte del cdigo generado. (Tenga en cuenta que el depurador de JBuilder le permite visualizar el cdigo fuente original o el cdigo fuente generado.) Las JSP tambin admiten el uso de bibliotecas de etiquetas. Una biblioteca de etiquetas es un conjunto de etiquetas personalizadas relacionadas. Una etiqueta personalizada llama a una accin personalizada, tambin conocida como un mdulo JSP reutilizable. 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: 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: 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. Algunas de las desventajas de las JSP son: 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 ser cuidadosos para no sobrescribir los cambios entre s.
2-4
InternetBeans Express
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 de JSP, consulte el Captulo 6, Desarrollo de Pginas JavaServer.
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) utiilzado 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 InternetBeans Express, consulte el Captulo 7, InternetBeans Express.
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. 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.
2-5
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 robusto conjunto de herramientas que simplifican la complejidad y que mantienen sincronizados las clases y los archivos xml. Para ms informacin acerca de Struts en JBuilder, consulte el Captulo 8, El marco de trabajo Struts en JBuilder. Para ms informacin acerca de Struts, consulte El proyecto Jakarta: Struts en http://jakarta.apache.org/ struts/index.html.
2-6
Applets
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 una 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: Su distribucin y comprobacin puede ser difcil. Se confa que 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 solucin, las cuales est explicadas con ms detalle en el Captulo 14, Las applets. Cuando se considera utilizar un applet, es mejor pensar acerca de que otra tecnologa Java puede servir mejor a sus propsitos.
2-7
Existen algunas ventajas en la utilizacin de applets. Entre otras, destacan las siguientes: 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. Para ms informacin acerca de las applets y solucin de problemas de applets, consulte el Captulo 14, Las applets.
2-8
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 un montn de cdigo y acelerar el inicio de la aplicacin, se debe utilizar un servlet o una JSP. 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 una 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.
2-9
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. Cree una WebApp y, a continuacin, escriba el cdigo de la aplicacin. Tanto si su 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.
Desarrolle su aplicacin
Distribuya su aplicacin
Compruebe su aplicacin
2-10
2-11
ms informacin sobre CORBA, consulte Las aplicaciones distribuidas basadas en CORBADesarrollo de Enterprise JavaBeans. 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-12
Captulo
Captulo3
JBuilder posee algunas caractersticas 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 caractersticas: Las WebApp y los archivos recopilatorios web (WAR).
La WebApp
Las WebApps describen la estructura de las aplicaciones web. Bsicamente, son rboles de directorios en los que se encuentra el contenido web utilizado en la aplicacin. Se asocian a un ServletContext. Un archivo descriptor de distribucin llamado Web.xml est asociado siempre con cada WebApp. Este descriptor de distribucin contiene la informacin que se necesita suministrar al servidor web cuando se distribuye una aplicacin. Es necesaria la utilizacin de una WebApp si usted tiene servlets o JSP en su proyecto. Aunque probablemente no se quiera usar una WebApp si la aplicacin web contiene una sola applet, debe utilizar una en una aplicacin web que contuviera una applet y un servlet o una JSP. De esta forma, se puede almacenar la WebApp completa en un nico archivo WAR. Se podran tener varias WebApp en una sola web. JBuilder admite este concepto, permitiendo tener mltiples WebApp en un solo proyecto. Es importante meditar sobre la estructura de las aplicaciones web durante la etapa de planificacin. Cuantas WebApps tendr? Como se llamarn? Estas WebApps se almacenarn en archivo WAR? Las WebApps necesitan admitir algn marco de trabajo? Proyectando la estructura desde el principio, la distribucin terminar por ser ms fcil. JBuilder
Las WebApps y los archivos WAR
3-1
admite el concepto de una WebApp por defecto, alojada en el directorio <directoriodelproyecto>/defaultroot. Si usted no especifica ninguna WebApp para sus aplicaciones web, stas entrarn en la WebApp por defecto. Para ms informacin sobre cmo trabaja JBuilder con WebApps, consute Creacin de una WebApp con el Asistente para aplicaciones web en la pgina 3-3, y La WebApp y sus propiedades en la pgina 3-5.
Herramienta
Asistente para aplicaciones web
nodo WebApp
3-2
Tabla 3.1
Herramienta
Editor DD de WebApp
Nota:
Debe tener un servidor seleccionado para su proyecto para que los asistentes se activen en la ficha Web de la galera de objetos.
1 Seleccione Archivo|Nuevo. Haga clic en la pestaa Web de la galera de objetos. 2 Seleccione Aplicacin web. Pulse Aceptar. 3 Escriba un nombre para la WebApp. El campo Directorio se rellena automticamente mientras escribe. 4 Introduzca la ubicacin del Directorio que va a ser la raz de los documentos de la WebApp. Este campo se rellena automticamente a medida que se va escribiendo. El nombre de directorio crea un subdirectorio del directorio de proyectos. Tambin se puede pulsar el botn de puntos suspensivos con el fin de examinar y crear un directorio, o para elegir un directorio existente. No se recomienda la eleccin del directorio raz del proyecto, del directorio src o del de clases. 5 Especifique el momento de generar un archivo WAR seleccionando una de las siguientes configuraciones de la lista desplegable Generar WAR.
Al generar el proyecto o la webapp Slo al generar la webapp Slo al generar el proyecto Nunca Siempre que se genera un archivo WAR, se le asigna el nombre de la WebApp y se coloca en el directorio que contiene el directorio raz del
Las WebApps y los archivos WAR
3-3
documento. Si selecciona Nunca, puede elegir una opcin posteriormente. Esta lista desplegable se corresponde con una configuracin en el cuadro de dilogo Propiedades de la WebApp.
6 Seleccione los marcos de trabajo JSP/Servlet que desea que admita la WebApp.
Table 3.2 Marcos de trabajo disponibles en el Asistente para aplicaciones web Descripcin
JSTL ofrece un modo estndar de llevar a cabo tareas de codificacin comunes mediante la utilizacin de etiquetas. Si desea ms informacin, visite la pgina http://java.sun.com. InternetBeans Express: una biblioteca de componentes que facilita la creacin de servlets enlazados a datos y de pginas JSP. Consulte el Captulo 7, InternetBeans Express. Struts es un marco de trabajo de cdigo abierto para el diseo de software conocido como Modelo 2 o Controlador Modelo-Vista. Consulte el Captulo 8, El marco de trabajo Struts en JBuilder. Cocoon es una funcin de JBuilder Enterprise. Cocoon: un marco de trabajo de publicacin en Java basado en servlets para XML. Consute Presentacin de documentos XML en la Gua del desarrollador de xml.
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. Para 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.
7 Defina una URI de inicio por defecto, si lo desea. Si el marco de trabajo seleccionado admite una URI de inicio, se debe rellenar este campo. Por ejemplo, si selecciona el marco de trabajo Cocoon, el valor de URI de inicio es index.xml. Si se especifca una URI de inicio, los comandos Ejecutar web, Depurar web y Optimizar web aparecen como disponibles en el men contextual de nodo WebApp del panel del proyecto. 8 Pulse Aceptar para cerrar el asistente y crear la WebApp.
3-4
Figura 3.1
Puede utilizar tambin el Asistente para aplicaciones web con el fin de importar una aplicacin web ya creada. Rellene el campo Nombre y utilice el campo Directorio para apuntar a la ubicacin del directorio que contiene la aplicacin web. Si la aplicacin web es vlida y los descriptores de distribucin son correctos para el servidor web configurado, se puede ejecutar desde el IDE de JBuilder inmediatamente.
El nodo WebApp tiene dos o tres nodos dependientes; un Directorio raz para la aplicacin , un nodo de Descriptores de distribucin que representa el directorio WEB-INF para la WebApp y un nodo opcional de archivo WAR. Los archivos de contenido web (tales como los archivos HTML, SHTML y JSP) se deben colocar en el directorio raz de la WebApp o en uno de sus subdirectorios. Los archivos de contenido web son archivos a los que se
Las WebApps y los archivos WAR
3-5
puede acceder directamente mediante el navegador web del cliente. Los recursos de Java utilizados por la WebApp (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 aplicaciones web que sigan estas reglas. Asegrese de especificar una WebApp existente cuando utilice estos asistentes.
Directorio raz
El directorio raz define la ubicacin base para la aplicacin web. Cada parte de la aplicacin web se situar en relacin al directorio raz. Los archivos de contenido web, tales como los archivos HTML, SHTML, JSP o de imagen, deben situarse en este directorio. Los archivos de contenido web son archivos a los que se puede acceder directamente mediante el navegador web del cliente. Los archivos en el directorio raz de la WebApp (y cualquier subdirectorio del directorio raz) se muestran automticamente en el nodo del Directorio raz del panel de proyecto. Solamente se muestran los archivos del tipo que se especifique en la ficha WebApp del cuadro de dilogo Propiedades de la WebApp. Los tipos de archivo por defecto son los nicos con los que se trabaja habitualmente en una aplicacin web. Esto le permite trabajar con archivos HTLM o con archivos de imagen utilizando sus herramientas favoritas para trabajar con esos tipos de archivo. Guarde estos archivos en el directorio raz de la WebApp o en uno de sus subdirectorios. Slo le resta pulsar el botn Actualizar del panel de proyecto para ver los archivos actuales definidos en JBuilder. Los asistentes para desarrollo web de JBuilder aaden los archivos y directorios adecuados al directorio raz. Tambin puede aadir archivos o directorios de contenido web al directorio raz sin la ayuda de un asistente. Para aadir un archivo al directorio raz:
1 Seleccione el nodo Directorio raz o cualquier nodo bajo l en el panel del proyecto. Si selecciona un directorio, esa ser la ubicacin por defecto del nuevo archivo. Si selecciona un archivo, el directorio en el que se encuentra ser la ubicacin por defecto. 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-6
5 Deje marcado Aadir archivo al proyecto si desea aadir un nodo para el archivo creado en la raz del proyecto. No es necesario hacer esto. El nuevo archivo se mostrar automticamente bajo el Directorio raz, siempre que el tipo de archivo sea un tipo incluido en el contenido web de la pestaa Tipos de archivo incluidos de la ficha WebApp del cuadro de dilogo Propiedades de WebApp. 6 Pulse Aceptar. Se aade un archivo en blanco del tipo especificado al directorio elegido.
Para aadir un directorio al directorio raz:
1 Seleccione el nodo Directorio raz o cualquier nodo bajo l en el panel del proyecto. Si selecciona un directorio, ste ser la ubicacin por defecto del nuevo subdirectorio. Si selecciona un archivo, el directorio en el que se encuentra ser la ubicacin por defecto. 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 un directorio vaco con el nombre especificado al directorio raz en la ubicacin indicada.
Para iniciar el Asistente para JSP desde el directorio raz:
1 Seleccione el nodo Directorio raz o cualquier nodo bajo l en el panel del proyecto. Si selecciona un directorio, ese directorio ser la ubicacin por defecto de la nueva JSP. Si selecciona un archivo, el directorio en el que se encuentra ser la ubicacin por defecto. 2 Pulse el botn derecho en el nodo seleccionado. 3 Seleccione Nuevo|JSP en el men contextual. Se inicia el Asistente para JSP. Para ms informacin, consulte El Asistente para JSP en la pgina 6-11.
Descriptores de distribucin
Cada WebApp 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 de proyecto. El directorio WEB-INF es, de hecho, un subdirectorio del directorio raz de la WebApp. No se presenta bajo el nodo del Directorio raz del panel de proyecto porque es un directorio protegido que no puede ser atendido por el servidor web. Puede cambiar esto mediante la ficha Directorios del cuadro de dilogo Propiedades de WebApp.
3-7
El nodo de descriptores de distribucin WebApp siempre contiene un archivo descriptor de distribucin llamado web.xml. Este archivo es requerido por todos los servidores web habilitados para Java y lo crea JBuilder cuando crea la WebApp. Si est utilizando el marco de trabajo Struts en su WebApp, el archivo struts-config.xml se ubicar en el nodo Struts de la WebApp del panel del proyecto. Su servidor web tambin puede necesitar descriptores de distribucin adicionales que sean nicos para ese servidor web en particular. stos pueden modificarse en JBuilder y se crean si se especifica su necesidad por el plug-in del servidor web actualmente configurado. Compruebe la documentacin de su servidor web para averiguar qu descriptores de distribucin requiere. JBuilder proporciona un editor de descriptor de distribucin para modificar el archivo web.xml y un Editor de configuracin de Struts para modificar el archivo struts-config.xml. Tambin puede modificar descriptores de distribucin especficos del servidor en JBuilder. Se necesitan algunas correspondencias en el archivo Web.xml para que la WebApp trabaje como se desea en el IDE de JBuilder. Estas asignaciones se crearn automticamente cuando utilice asistentes de JBuilder para crear las partes de su aplicacin web. Pueden necesitarse otras asignaciones cuando se distribuya la aplicacin. Para ms informacin sobre los descriptores de distribucin y el editor WebApp DD, consulte el Captulo 12, Modificacin del archivo web.xml.
Propiedades de WebApp
El nodo de WebApp en el panel de proyecto tiene diferentes propiedades que se pueden editar. Si desea editar las propiedades del nodo WebApp, haga clic con el botn derecho en el nodo y seleccione Propiedades en el men. El cuadro de dilogo Propiedades de WebApp cuenta con hasta seis fichas: WebApp directorios Clases Dependencias Descriptor Distribucin
3-8
La ficha WebApp
La ficha WebApp del cuadro de dilogo Propiedades de la WebApp indica el nombre de la WebApp, la ubicacin su directorio y la ubicacin del directorio del archivo WAR. Existe una lista desplegable que indica el momento en que se genera o actualiza el archivo WAR, y una casilla que indica si se comprime o no el archivo. La configuracin para crear el recopilatorio corresponde a la lista desplegable Generar WARdel Asistente para aplicaciones web. En ocasiones es conveniente desactivar la generacin del recopilatorio WAR durante el desarrollo, y activarla justo antes de generar el proyecto por ltima vez antes de la distribucin. La parte inferior de la ficha WebApp se divide en dos fichas con pestaas: Marcos de trabajo JSP/Servlet y Tipos de archivo includos. La ficha Marcos de trabajo JSP/Servlet permite seleccionar marcos de trabajo JSP/Servlet con el fin de utilizarlos en la WebApp. 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 ficha Tipos de archivo incluidos contiene tambin una lista de tipos que se incluyen tanto para su visualizacin como para la generacin del archivo WAR. Slo se incluirn los tipos de archivo que estn seleccionados, dependiendo de sus extensiones. Las extensiones de archivo asociadas con cada tipo de archivo pueden verse o cambiarse en el cuadro de dilogo de Opciones del IDE, disponible en el men de herramientas. La lista desplegable URI de inicio se utiliza para especificar una URI que se inicie al ejecutar la WebApp. Si una webapp dispone de una URI de inicio especfica, se puede Ejecutar/Depurar/Optimizar web directamente desde el men contextual del nodo WebApp del panel del proyecto. Algunos marcos de trabajo, como Cocoon, disponen de una URI de inicio 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.
3-9
Figura 3.3
Consulte
Creacin de una WebApp con el Asistente para aplicaciones web en la pgina 3-3 Presentacin de documentos XML en la Gua del desarrollador de xml Captulo 7, InternetBeans Express Captulo 8, 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 Directorios
La ficha Directorios del cuadro de dilogo Propiedades de WebApp le permite indicar si el directorio WEB-INF y sus subdirectorios se deben tratar como directorios regulares para incluir en su proyecto y en sus recopilatorios. Tambin le permite excluir directorios que nunca deben incluirse, como el subdirectorio CVS el cual est presente en cada directorio bajo el control de CVS. La ficha Directorios proporciona las siguientes posibilidades: La posibilidad de indicar una lista de directorios que se deben excluir. La opcin de tratar WEB-INF como cualquier otro directorio, de forma que ste y sus subdirectorios aparezcan bajo la carpeta Directorio raz en el panel del proyecto y muestren los mismos tipos de archivo que otros directorios de la WebApp.
3-10
La razn de que WEB-INF deba ser aadido explcitamente es que a menudo contiene subdirectorios que nunca deben incluirse en un archivo WAR. Tenga en cuenta que WEB-INF/classes y WEB-INF/lib son directorios especiales que contienen archivos generados por JBuilder. Los archivos de estos directorios siempre se incluyen en archivos WAR. Si WEB-INF se trata como un directorio normal, WEB-INF/classes y WEB-INF/lib aparecen en el panel del proyecto como una vista de slo lectura. Las opciones para cambiar el nombre y eliminar archivos en estos directorios estn desactivadas. No se deben aadir archivos a WEB-INF/classes ni a WEB-INF/ lib. Si se trata a WEB-INF como un directorio normal, los descriptores de distribucin aparecern tanto en la carpeta Descriptores de distribucin como bajo el WEB-INF de la carpeta Directorio raz del panel del proyecto. Cuando se hace clic un descriptor de distribucin de cualquier lugar se abre el Editor de Descriptores de distribucin, ya que los nodos duplicados del panel del proyecto representan el mismo archivo. Las lista de la ficha Directorios se corresponde con los nombres de directorios mediante las siguientes reglas: Las vas de acceso pueden contener uno o varios elementos, separados por barras. Cada elemento de la va de acceso se considera por separado. Los caracteres * y ? se pueden utilizar de comodines, como es habitual. Al comparar las vas de acceso en el disco, se consideran relativas al directorio raz de la WebApp. Las vas que no comienzan con una barra se comprueban al revs, desde el final. Lo ms habitual es que en la va de acceso haya un solo elemento, sin barra delante, lo que apunta a cualquier va de acceso que termine con dicho elemento. Las vas que comienzan con una barra se comprueban hacia adelante. 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 la regla de exclusin para ese directorio.
3-11
Figura 3.4
Puede excluir un directorio de la WebApp si selecciona Excluir directorio de la WebApp en el men contextual del nodo del directorio en el panel del proyecto. Para excluir un directorio mientras se encuentra en el panel del proyecto, pulse el botn derecho en el directorio que desee excluir y seleccione Excluir directorio de la WebApp. El directorio excluido se elimina de la vista WebApp en el panel del proyecto y se recoge en la lista de directorios excluidos de la ficha Directorios del cuadro de dilogo Propiedades de WebApp.
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. 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. * - coincide con 0 o ms caracteres ** - coincide con todos los directorios desde ese punto hacia abajo
3-12
Gua del desarrollador de aplicaciones web
? - coincide con un carcter en concreto ! - niega el filtro Todos los filtros son relativos a la va de salida del proyecto de JBuilder. Algunos ejemplos de filtros tpicos son: **/Test*.class - Filtro para todas las clases de prueba de un proyecto **/*BeanInfo.class - Filtro para todas las clases BeanInfo **/*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 el contexto, puede utilizar un determinado filtro para excluir archivos y, a continuacin, en un escenario diferente, utilizar el mismo filtro para incluir archivos. Los filtros slo funcionan correctamente si se siguen las convenciones de codificacin que coinciden con los filtros. 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. 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. Una vez que se excluye, ya no se puede incluir. 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 debera colocarse en el directorio raz de la WebApp 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
3-13
contenido web se seleccionan en la ficha WebApp del cuadro de dilogo Propiedades de WebApp. 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 WEBINF/classes. Por ejemplo, /myproject/src/com/whatever/whatever.properties se copia a /WEB-INF/classes/com/whatever/whateverproperties.
Figura 3.5 Ficha Clases del cuadro de dilogo Propiedades de WebApp
La ficha Dependencias
La ficha Dependencias permite especificar qu hacer con las dependencias de las bibliotecas para su WebApp. 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). Debera excluir tambin toda biblioteca suministrada por el servidor y las que no sean utilizadas en su WebApp. Al asegurarse de que estas bibliotecas innecesarias son excluidas reducir el tamao de su archivo WAR y har ms rpida la generacin de su WebApp.
3-14
La ficha Dependencias del cuadro de dilogo Propiedades de WebApp tiene el mismo aspecto que la ficha Dependencias de cualquier otro tipo de archivo. Consulte el tema de Ayuda en lnea " El creador de recopilatorios: determinar cmo tratar las dependencias de las bibliotecas" para obtener ms informacin.
Borland Enterprise Server y Tomcat no son compatibles con JBuilder WebLogic Edition.
Figura 3.6
La ficha Descriptor
La ficha Descriptor del cuadro de dilogo Propiedades de WebApp es igual que la ficha Descriptor de cualquier otro tipo de archivo. Consulte el tema de Ayuda en lnea "Creador de recopilatorios: definicin de las opciones del descriptor de recopilatorios" para obtener ms informacin.
3-15
Figura 3.7
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.8 Ficha Distribucin del cuadro de dilogo Propiedades de WebApp para Borland Enterprise Server
3-16
El archivo WAR
El archivo WAR
El archivo WAR es un recopilatorio de la aplicacin web. Al poner en el archivo WAR todos los archivos y recursos que se necesitan para la WebApp, se 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 est presente un archivo WAR, aparece un nodo que lo representa debajo del nodo de la WebApp 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.
Figura 3.9 El nodo del archivo WAR abierto en JBuilder IDE
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 obtener ms informacin acerca de Propiedades de recursos, consulte el apartado "Recursos" del tema de Ayuda en lnea "Ficha Generar (Cuadro de dilogo Propiedades de proyecto)". Las propiedades ms importantes para el archivo WAR se encuentran en la ficha WebApp del cuadro de dilogo Propiedades de WebApp. 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 la hay, la ficha Distribucin es la misma ficha Distribucin que aparece en el cuadro de dilogo Propiedades de WebApp.
3-17
El archivo WAR
Con el fin de conseguir que JBuilder cree un archivo WAR para su aplicacin web, primero debe tener un nodo WebApp en su proyecto. Esta WebApp puede crearse con el Asistente para aplicaciones web, disponible en la galera de objetos, o se puede utilizar la WebApp por defecto. Puede indicar a JBuilder que cree o actualice automticamente un archivo WAR siempre que se genere el proyecto, siempre que se genere la WebApp, en ambos casos o en ninguno de los dos. Para cambiar la configuracin del archivo WAR de la WebApp:
1 Para hacer esto, haga clic con el botn derecho sobre el nodo WebApp en el panel del proyecto y seleccione Propiedades en el men. 2 Seleccione la pestaa WebApp del cuadro de dilogo de Propiedades de WebApp. 3 Elija la opcin deseada para Generar en la lista desplegable. Estn disponibles las siguientes opciones de generacin:
Al generar el proyecto o la webapp Slo al generar la webapp Slo al generar el proyecto Nunca
4 Verifique que son correctos el nombre y la ubicacin del archivo WAR que se desea.
Existe la opcin de comprimir el archivo WAR, si as se desea. Ahora tiene un archivo WAR asociado con su WebApp, recuerde que las diferentes piezas de su aplicacin web deben estar asociadas con la
3-18
Gua del desarrollador de aplicaciones web
El archivo WAR
WebApp que se aadir al archivo WAR. Muchos de los asistentes disponen de una lista desplegable WebApp para que usted seleccione una WebApp cuando se crean estas partes.
3-19
3-20
Captulo
Captulo4
Los servlets
Desarrollo web es una caracterstica de JBuilder Developer y JBuilder Enterprise JBuilder WebLogic Edition no es compatible con Tomcat, iPlanet, Borland Enterprise Server y WebSphere.
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.
Los servlets
4-1
Los servlets
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 acerca de clases, 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. Java Servlet Technology en http://java.sun.com/products/servlet/ index.html Java Servlet Technology: Artculo de fondoen 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: Captulo 17, Tutorial: Creacin de un servlet simple Captulo 18, Tutorial: Creacin de un servlet que actualiza un libro de visitas Captulo 20, Tutorial: Creacin de un servlet con InternetBeans Express
4-2
Servlets y JSP
Servlets y JSP
Las tecnologas JSP y Servlets tienen distintas ventajas. Cmo decidir cul es la ms adecuada para cada situacin? 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 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.
Los servlets
4-3
La API de servlet
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 contenido 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.
Tabla 4.1 Nombre
GenericServlet RequestDispatcher
Descripcin
Define un servlet genrico independiente del protocolo. Define un objeto que recibe solicitudes del cliente y las enva hacia cualquier recurso (tales como un servlet, un archivo HTML o un archivo JSP) en el servidor. Define mtodos que deben implementar todos los servlets. Un objeto de configuracin de servlet usado por un contenedor de servlet para pasar informacin a un servlet durante la inicializacin. Define un conjunto de mtodos que utiliza un servlet para comunicarse con su contenedor de servlet, por ejemplo, para obtener el tipo MIME de un archivo, resolver solicitudes o escribir en un archivo histrico. Define una excepcin general que puede lanzar un servlet cuando encuentre dificultades. Suministra un flujo de entradas para leer datos binarios de una solicitud del cliente, incluyendo un eficiente mtodo readLine para leer datos lnea a lnea. Proporciona un flujo de salida para enviar datos binarios al cliente.
Servlet ServletConfig
Interfaz Interfaz
ServletContext
Interfaz
ServletException
Clase
ServletInputStream
Clase
ServletOutputStream
Clase
4-4
La API de servlet
Descripcin
Define un objeto para proporcionar informacin acerca de las solicitudes del cliente a un servlet. Define un objeto para ayudar a un servlet a enviar una respuesta al cliente. Asegura que los servlets manejen solamente una solicitud a la vez. Define una excepcin que un servlet lanza para indicar que no est disponible temporal o permanentemente.
ServletRequest
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: GET POST PUT DELETE HEAD TRACE CONNECT OPTIONS
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.
Los servlets
4-5
La API de servlet
La siguiente tabla presenta una lista de las clases e interfaces ms habitualmente utilizadas en el paquete javax.servlet.http y suministra una breve descripcin de cada una.
Tabla 4.2 Nombre
Cookie
Descripcin
Crea una cookie, un pequeo fragmento de informacin enviada por un servlet a un navegador web que es almacenado por el navegador y posteriormente devuelta al servidor. Proporciona una clase abstracta que se convierte en subclase parra crear un servlet HTTP adecuado para una pgina web. Extiende la interfaz ServletRequest para proporcionar una solicitud de informacin para los servlets HTTP. Extiende la interfaz ServletResponse con el objeto de suministrar una funcionalidad especfica de HTTP en el envo de una respuesta. Proporciona una manera de identificar a un usuario a travs de ms de una solicitud de pgina o de una visita a una sede web y para almacenar la informacin relativa al usuario. Enva un objeto que implementa HttpSessionBindingListener cuando el objeto se enlaza a una sesin o se desenlaza de la misma. Provoca que se notifique a un objeto cuando se enlaza o se desenlaza de una sesin.
HttpServlet
Clase
HttpServletRequest
Interfaz
HttpServletResponse
Interfaz
HttpSession
Interfaz
HttpSessionBindingEvent
Clase
HttpSessionBindingListener
Interfaz
4-6
Los servlets
4-7
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. Para ms informacin sobre hilos y seguridad de los hilos, 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().
4-8
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.
Los servlets
4-9
Distribucin de servlets
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. Para ms informacin y sugerencias de distribucin, consulte el Captulo 11, Distribucin de aplicaciones web.
4-10
Captulo
Captulo5
Desarrollo web es una caracterstica de JBuilder Developer y JBuilder Enterprise JBuilder WebLogic Edition no admite Tomcat.
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: HTML: HyperText Markup Language (Lenguaje de marcado de hipertexto). XHTML: 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).
5-1
comentarios de la cabecera aadidos a otras clases en el proyecto (consulte el tema de Ayuda en lnea Asistente para proyectos), seleccione la opcin Generar comentarios de cabecera. La opcin Modelo de hilo nico implementa la interfaz SingleThreadModel. Si se selecciona esta opcin, el servlet ser un poco menos eficaz, ya que el servidor web pondr en cola las solicitudes e iniciar otra instancia del servlet para atender la demanda. Seleccione de la lista desplegable de WebApp el nombre de la WebApp bajo la cual quiere que se ejecute este servlet. Todos los archivos de contenido web, como un archivo HTML de un servlet, se colocan en el directorio WebApp. Las opciones en la parte inferior del cuadro de dilogo permiten seleccionar el tipo de servlet que se est creando.
Nota:
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 seleccione la WebApp <default> o que se nombre una WebApp. Cuando esta opcin se encuentra seleccionada en el WebApp 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 WebAppp ya tiene nombre, el servlet URL (tambin en la ficha Introduzca los detalles de webapp) tiene por defecto el modelo URL: /servletname (todo en minsculas). Un servlet que acta como un filtro para otro servlet o para la WebApp. 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 un nombre al servlet y se especifica la asignacin del filtro, sera la nica ficha disponible del asistente para servlets. Un servlet que se aade a la lista de monitores de la WebApp. 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
5-3
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 de telefona mvil, 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>");
5-4
out.println("<card>"); out.println("<p>The servlet has received a GET. This is the reply.</p>); out.println(</card></wml>);
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. Para ms informacin sobre el soporte XML de 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
5-5
doDelete
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 Seleccionado No seleccionado Seleccionado
doPost()
No seleccionado No seleccionado Seleccionado Seleccionado
Resultado
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
5-7
El servlet del Captulo 17, 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
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 WebApp conocidos. Una coincidencia produce que la parte restante de la URI sea dirigida a esa particular WebApp/contexto.
Nota:
Si no hay coincidencia de WebApp/contexto, la URI se pasa tal cual a la WebApp 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 para WebApp. 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).
5-9
Figura 5.5
Asistente para servlets Servlet estndar, ficha Introduzca los detalles de webapp
5-10
5-11
Por ejemplo, cualquier URL que cumpliera con uno de los siguientes formatos podra servir para ejecutar un servlet: 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 ese 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 17, Tutorial: Creacin de un servlet simple, puede ejecutarse introduciendo la siguiente URL para el servlet:
http://localhost:8080/servlet/simpleservlet.Servlet1?userName=Mary
5-12
Internacionalizacin de servlets
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 patron de URL /firstservlet, debera escribir:
http://localhost:8080/firstservlet?userName=Mary
Para ms ejecucin sobre cmo se ejecutan servlets, consulte Cmo los URL ejecutan los servlets en la pgina 10-10.
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
5-13
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();
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. Al llamar a System.getProperty("file.encoding"), se devolver 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-14
Captulo
Captulo6
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 estndar 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.
6-1
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
6-2
Gua del desarrollador de aplicaciones web
etiquetas JSP
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 separa el cdigo Java del HTML. Para obtener ms informacin acerca de clases, consulte el Captulo 8, El marco de trabajo Struts en JBuilder. 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. Para enlaces a pginas web que contengan ms informacin sobre tecnologa JavaServer Pages, consulte Recursos adicionales de JSP en la pgina 6-18.
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 Tag Syntax
<% fragmento de cdigo %>
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.
6-4
JSP en JBuilder
etiquetas. Tambin puede haber otros tipos de marcos de trabajo, algunos de los cuales no estn diseados para utilizar con JSP. Existen tres marcos de trabajo ms conocidos que se suministran e integran con JBuilder y que resultan tiles para el desarrollo de JSP. Se describen del siguiente modo. Struts El marco de trabajo Struts ofrece un concepto de diseo de software 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.
Consulte
Las bibliotecas de etiquetas JSP y los marcos de trabajo en JBuilder en la pgina 6-6 Captulo 8, El marco de trabajo Struts en JBuilder Captulo 7, InternetBeans Express
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. Compatibilidad con los marcos de trabajo y las bibliotecas de etiquetas JSP JSP Tag Insight para completar etiquetas especficas de JSP Depuracin dentro 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.
Nota:
6-5
JSP en JBuilder
Consulte
Creacin de una WebApp con el Asistente para aplicaciones 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
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 consiste en una biblioteca de etiquetas y elementos especficos de taglib contenidos en un archivo JAR.
6-6
JSP en JBuilder
Los siguientes marcos de trabajo se suministran con JBuilder, y no es necesario que se configuren: Struts JSTL InternetBeans Express Cocoon 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 WebApp y en el Asistente para JSP si la biblioteca de etiquetas est configurada correctamente mediante el cuadro de dilogo Configurar bibliotecas.
1 Seleccione Herramientas|Configurar bibliotecas y se abrir el cuadro de dilogo homnimo. 2 Pulse el botn Nuevo, abajo a la izquierda, para abrir el Asistente para bibliotecas.
3 Escriba el nombre de la biblioteca de etiquetas en el campo Nombre. Elija su ubicacin en la lista desplegable Ubicacin.
6-7
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. 5 Pulse Aceptar con el fin de cerrar el Asistente para bibliotecas. Se vuelve a abrir el cuadro de dilogo Configurar bibliotecas. La nueva biblioteca aparece en la carpeta asignada, a la izquierda del cuadro de dilogo. 6 Pulse la pestaa Marco de trabajo en la parte derecha del cuadro de dilogo Configurar bibliotecas. 7 Seleccione Biblioteca de etiquetas JSP definidas por el usuario, en la lista desplegable Marco de trabajo.
8 Pulse el botn Aadir para mostrar el cuadro de dilogo Definir nueva biblioteca de etiquetas.
9 Pulse el botn de puntos suspensivos, junto al campo Archivo TLD, con el fin de buscar el archivo TLD que desee definir en su biblioteca de etiquetas. El TLD puede ser un archivo externo distribuido con el JAR, dentro del JAR o ambos. El archivo TLD debe tener una extensin .TLD. Es necesario que las clases manejadoras de etiquetas se encuentren en un archivo JAR. Una vez elegido un archivo TLD vlido, los campos Nombre, Prefijo y URI se rellenan automticamente a partir de la definicin TLD. La Ubicacin es por defecto una ubicacin dentro de WEB-INF/lib. 10 Pulse Aceptar y se cerrar el cuadro de dilogo Definir nueva biblioteca de etiquetas.
6-8
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:
1 Seleccione Herramientas|Configurar bibliotecas y se abrir el cuadro de dilogo homnimo. 2 A la izquierda del cuadro, elija el nombre de la biblioteca del marco de trabajo que contenga la biblioteca de etiquetas cuyas propiedades desee modificar. 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.
5 Pulse el botn Modificar. Aparece el cuadro de dilogo Modificar biblioteca de etiquetas. 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:
6-9
JSP en JBuilder
1 Seleccione Herramientas|Configurar bibliotecas y se abrir el cuadro de dilogo homnimo. 2 A la izquierda del cuadro, elija la biblioteca del marco de trabajo que contenga la biblioteca de etiquetas que desee eliminar. 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. 7 Haga clic en Aceptar para cerrar el cuadro de dilogo Configurar bibliotecas.
6-10
JSP en JBuilder
El panel de estructura en el IDE de JBuilder muestra la estructura de las etiquetas dentro de la JSP, adems de cualquier error de HTML y de Java en el cdigo. Estos errores son muy tiles, por ejemplo, a menudo le recuerdan que tiene que acabar una etiqueta que estaba incompleta.
Consulte
Asistente para JSP en la ayuda en pantalla Captulo 19, Tutorial: Creacin de una JSP mediante el Asistente para JSP
6-11
JSP en JBuilder
1 Seleccione la galera de objetos seleccionando Archivo|Nuevo. Haga clic en la pestaa Web. (Antes, el proyecto debe tener un servidor activado.) 2 Seleccione Pgina JavaServer. Pulse Aceptar. 3 Seleccione una WebApp para que contenga la nueva JSP. Si slo tiene una WebApp en su proyecto, se desactiva la lista desplegable WebApp. 4 Defina un nombre para la JSP. Observe que puede crear una JSP en un subdirectorio de la WebApp si escribe el nombre del directorio con una barra delante. 5 Defina si desea crear un bean de ejemplo y una pgina de errores.
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. 8 Seleccione las bibliotecas de etiquetas que desee que utilice la JSP, marcando las casillas adecuadas en la lista Bibliotecas de etiqueta. El 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.
9 Defina el Paquete y Nombre de clase para el bean de ejemplo. Marque Generar comentarios de cabecera, si desea crearlos en el bean de ejemplo. Si no ha marcado Generar bean de ejemplo en el primer paso del asistente, este paso no aparece.
Pulse Siguiente para pasar al siguiente paso. Tambin puede pulsar Finalizar para evitar los pasos restantes, cerrar el asistente y crear la JSP.
6-12
JSP en JBuilder
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.
11 Defina el Nombre y el color de fondo para la pgina de error. Si no ha marcado Generar pgina de error en el primer paso del asistente, este paso no aparece.
Pulse Siguiente para pasar al siguiente paso. Tambin puede pulsar Finalizar para evitar los pasos restantes, cerrar el asistente y crear la JSP.
12 Marque Crear una configuracin de ejecucin si desea crear una de tipo Servidor. Si esta opcin est marcada, especifique un Nombre. Tambin puede seleccionar una configuracin base para copiar, si ya existe otra configuracin de ejecucin de tipo Servidor en su proyecto.
Pulse Finalizar para cerrar el asistente y crear la JSP.
Consulte
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-6 Captulo 8, El marco de trabajo Struts en JBuilder Captulo 7, InternetBeans Express
6-13
JSP en JBuilder
1 Seleccione Proyecto|Propiedades de proyecto. 2 Seleccione la ficha Generar. 3 Abra la ficha General de la ficha Generar. 4 Seleccione Comprobar errores en JSP durante la generacin 5 Pulse Aceptar.
Puede configurar esta propiedad por cada archivo JSP de su proyecto mediante el men contextual de las JSP en el panel de 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. Consulte Compilacin de servlets o JSP en la pgina 10-14 para ms informacin sobre compilacin y ejecucin.
6-14
JSP en JBuilder
Si cuenta con una configuracin de ejecucin de tipo Servidor, tambin puede Depurar Web (al igual que Ejecutar Web o Optimizar Web). Puede configurar la URI de inicio de esa Configuracin de ejecucin para que coincida con la JSP que le interese, pero se trata simplemente de una ventaja el alcanzar esa JSP cuando se inicia el servidor. Al igual que con las clases normales, puede depurar cualquier JSP durante una sesin, no slo la que haya iniciado. Al depurar JSP, es importante que tenga en cuenta que no todos los servidores ofrecen el mismo nivel de compatibilidad con la depuracin de JSP. En la siguiente tabla se detalla el nivel de compatibilidad con la depuracin de JSP que ofrecen los servidores web y de aplicaciones que funcionan con JBuilder.
JBuilder Enterprise admite servidor de aplicaciones JBuilder WebLogic Edition no es compatible con ninguna versin de Borland Enterprise Server, Tomcat, WebSphere, Sybase EAServer, Oracle o iPlanet.
Tabla 6.2
Compatibilidad de distintos servidores con la depuracin de JSP Comprobacin de errores de sintaxis Java para JSP
Y Y Y Y Y Y Y Y Y N Y Y Y Y
Servidor
Borland Enterprise Server 5.1.1: (Tomcat 4.0.3 based) Borland Enterprise Server 5.2/5.2.1: (Tomcat 4.1 based) Weblogic 6,1 SP 4 Weblogic 7.0 SP 2 Weblogic 8.1 SP 0/SP 1 WebSphere 4.0.1 AE WebSphere 4.0.1 AES WebSphere 5 Sybase EAServer 4.1.1/4.1.3/4.2 Oracle 9.0.2/9.0.3 iPlanet 6.0/6.5 Tomcat 3.3.1 autnomo Tomcat 4.0.6 autnomo Tomcat 4.1.12 autnomo
Importante:
6-15
JSP en JBuilder
servidores. As se evita que el depurador inspeccione las clases de los servidores. Si elige esta opcin tambin se evita que aparezca el siguiente tipo de mensaje de error mientras intenta inspeccionar u omitir la inspeccin de una lnea de cdigo Java de un archivo JSP:
Cannot locate XXXXX.java from project source/class path Nota:
El nombre del archivo en el mensaje de errror 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.
Para solucionar este mensaje de error, puede tambin elegir su JSP en el panel del proyecto, pulsar el botn derecho y seleccionar Propiedades. Desactive la opcin Comprobar errores en JSP durante la generacin. As se desactiva la comprobacin de errores de la JSP seleccionada al generar el proyecto. La JSP se compilar durante la ejecucin.
6-16
JSP en JBuilder
Web. Una vez que se ha iniciado el depurador, ya no est restringido a depurar la JSP que eligi en Depurar Web.
6-17
6-18
Captulo
Captulo7
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) utiilzado 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: 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.
InternetBeans Express
7-1
Tipo de componente
IxControl
IxTable
IxImage
IxLink
IxSpan
IxCheckBox
IxComboBox
IxHidden
7-2
Tabla 7.1
Tipo de componente
IxListBox
IxPassword
IxPushButton
IxRadioButton
IxSubmitButton
IxTextArea
IxTextField
InternetBeans Express
7-3
prediseada, insertando en ella un formulario de datos dinmicos, como cuadros de texto y controles. Este mtodo presenta algunas ventajas: Ya conoce el aspecto de la respuesta. La pgina puede contener datos de prueba, que sern sustituidos. El aspecto se puede cambiar cambiando la pgina, sin necesidad de tocar el cdigo. Por ejemplo, cuando se utiliza InternetBeans Express con un servlet, se puede abrir el servlet en el diseador. Una Database y un QueryDataSet de la pestaa DataExpress de la paleta pueden suministrar los datos para el servlet. Se puede aadir un IxPageProducer desde la pestaa InternetBeans de la paleta. Asigne el nombre de archivo de la pgina web prediseada a la propiedad htmlFile de IxPageProducer. Cuando se ejecuta el servlet, el IxPageProducer llama al HtmlParser interno con el fin de localizar todos los controles HTML sustituibles. La forma ms simple de sustituir controles HTML con controles que contengan datos de generacin dinmica es utilizar IxControls. Se debe aadir un IxControl por cada control HTML en la pgina de plantilla que contendr los datos. Asigne las propiedades pageProducer de IxControl a IxPageProducer. Asigne a la propiedad controlName deIxControl el valor que coincida con el atributo name del control HTML apropiado. Con la asignacin de valores a las propiedades dataSet y columnName de IxControl se completa la asociacin a datos. El mtodo IxPageProducer.servletGet() es uno de los que se llama normalmente para generar la pgina que se va a mostrar. Este mtodo debe ser llamado dentro del mtodo doGet() del servlet. El cuerpo del mtodo doGet() de un servlet puede ser tan sencillo como el siguiente:
ixPageProducer1.servletGet(this, request, response);
Esta nica llamada asigna el tipo de contenido de la respuesta y convierte la pgina dinmica en el flujo de salida de la respuesta. Advierta que el tipo de contenido por defecto de la respuesta es HTML. Situados en el interior, el mtodo IxPageProducer.render() genera la versin dinmica de la pgina, sustituyendo los controles que tienen un IxControl asignado mediante el procedimiento de ordenar la representacin del componente, lo que genera un cdigo HTML equivalente con los valores de datos extrados de la fila actual del conjunto de datos. Puede llamar al mtodo render(), pero resulta ms sencillo llamar al servletGet(). Algunas situaciones en las que no se debera utilizar una IxPageProducer en un servlet son: Cuando no se necesiten las caractersticas de administrar y enviar sesiones de bases de datos de la IxPageProducer y solamente se quiera el motor de plantillas de pgina, se puede utilizar PageProducer.
7-4
Cuando se estn utilizando componentes individuales especficos para convertir en HTML. Por ejemplo, se puede crear una IxComboBox que contenga una lista de pases y utilizarla en un servlet con HTLM codificado a mano. Recuerde que cuando utiliza InternetBeans en un servlet, habitualmente deber utilizar un IxPageProducer. Cuando se utiliza IxControl, se debe utilizar un IxPageProducer.
Debe efectuarse una llamada a este mtodo desde el mtodo doPost() del servlet, junto con cualquier otro cdigo que deba ejecutarse durante la operacin de envo. En el momento del diseo, se debe aadir un IxSubmitButton por cada botn de envo del formulario. Aada un monitor submitPerformed() para cada IxSubmitButtons. El monitor deber llamar al cdigo que se tiene que ejecutar cuando se presiona el botn. Por ejemplo, un botn Siguiente debe ejecutar dataSet.next() y un botn Anterior debe ejecutar dataSet.prior(). En el momento de la ejecucin, cuando se llama al mtodo servletPost(), escribe los nuevos valores del envo en los componentes de InternetBeans correspondientes y transmite esos valores desde el cliente al servidor. A continuacin provoca el suceso submitPerformed adecuado para el botn que ha enviado el formulario. Para enviar y guardar realmente los cambios en el conjunto de datos subyacente, debe llamar a los mtodos post() y saveChanges() del conjunto de datos dentro del mtodo submitPerformed(). Ahora, el mtodo doPost() del servlet puede llamar a doGet() o directamente a IxPageProducer.servletGet(), para representar la pgina nueva.
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.
InternetBeans Express
7-5
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 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 20, Tutorial: Creacin de un servlet con InternetBeans Express.
Express se utilizarn en la JSP y especifica un prefijo para estas etiquetas. La directiva taglib para usar la biblioteca de etiquetas de InternetBeans tiene este aspecto:
<%@ taglib uri="/internetbeans.tld" prefix="ix" %>
Si quiere instanciar clases en sus scriptlets y no quiere escribir el nombre completo de la clase, se pueden importar archivos o paquetes a la JSP mediante una directiva page. Esta directiva page puede especificar que el paquete com.borland.internetbeans debe importarse a la JSP. La directiva page debe tener este aspecto:
<%@ page import="com.borland.internetbeans.*,com.borland.dx.dataset.*, com.borland.dx.sql.dataset.*" %>
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 Configura las dependencias como Incluir todas, en su WebApp, para las bibliotecas InternetBeans Express, dbSwing y DataExpress. Esto quiere decir que los archivos jar necesarios se copian al directorio WEBINF/lib de la WebApp cuando se compila el proyecto. 3 Se incorpora una correspondencia de bibliotecas de etiquetas entre internetbeans.tld y WEB-INF/lib/internetbeans.jar al archivo web.xml.
Necesita realizar estos pasos si est configurando su JSP para usar InternetBeans Express sin utilizar el Asistente para JSP.
InternetBeans Express
7-7
A continuacin puede ver el Asistente para JSP con la biblioteca de etiquetas internetbeans seleccionada:
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>
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. Para leer un tutorial sobre este tema, consulte el Captulo 21, Tutorial: Creacin de una JSP con InternetBeans Express.:
7-8
Descripcin
Define una base de datos DataExpress
Atributos
id - texto usado para identificar esta base de datos driver - propiedad controlador de la base de datos 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. 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.
query
control
InternetBeans Express
7-9
Descripcin
Define una IxImage de InternetBeans Express
Atributos
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
table
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.
7-10
Gua del desarrollador de aplicaciones web
El archivo internetbeans.tld se encuentra disponible en internetbeans.jar. No necesita poder ver los contenidos de dicho archivo para utilizar sus etiquetas en su JSP, pero si desea verlo en el editor, necesita ese paso adicional de incorporacin al proyecto. Para ello:
1 Pulse el botn Aadir Archivos/Paquetes/Clases, que se encuentra en la barra de herramientas encima del panel del proyecto. 2 En su directorio de proyecto, busque internetbeans.jar. Estar en el directorio WEB-INF/lib de su WebApp. 3 En el rbol de directorios, expanda el nodo internetbeans.jar. 4 Situado en com.borland.internetbeans.taglib, localice el archivo internetbeans.tld y seleccinelo. 5 Pulse Aceptar para aadir el archivo a su proyecto.
La informacin de la parte inicial del archivo internetbeans.tld tiene poco inters. La informacin que merece la pena conocer comienza con la primera etiqueta <tag> dentro del archivo. Cada etiqueta <tag> representa una definicin de etiqueta de InternetBeans. Al principio de cada definicin de etiqueta, ver una etiqueta <name> que indica su nombre. La primera es la etiqueta database. Anidadas dentro de cada definicin de etiqueta tambin ver etiquetas <tagclass>, <info> y <attribute>. Para ver un ejemplo del aspecto que tiene una definicin de etiqueta de InternetBeans, consulte el fragmento del archivo internetbeans.tld que define la etiqueta submit a continuacin:
<tag> <name>submit</name> <tagclass>com.borland.internetbeans.taglib.SubmitTag</tagclass> <bodycontent>JSP</bodycontent> <info>Submit button or submit image control</info> <attribute> <name>id</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> <attribute> <name>methodName</name> <required>true</required> <rtexprvalue>false</rtexprvalue> </attribute> </tag>
La etiqueta <tagclass> indica el nombre de la clase dentro del paquete com.borland.internetbeans.taglib que es responsable de interpretar esta etiqueta de InternetBeans cuando se usa en una JSP. La etiqueta <info> suministra una descripcin de la etiqueta de InternetBeans. La etiqueta <attribute> describe un atributo para una etiqueta de InternetBeans. Hay una etiqueta <attribute> para cada atributo. Pueden
InternetBeans Express
7-11
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.
7-12
Captulo
Captulo8
El marco de trabajo de cdigo abierto Struts se conoce como el concepto de diseo de software Modelo 2 o Controlador Modelo-Vista. Este marco evolucion a partir del diseo de Modelo 1, la tecnologa de 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: Controlador, Modelo y Vista. Struts incorpora su propio componente Controlador y se integra con otras tecnologas con el fin de proporcionar el Modelo y la Vista. La capa Controlador controla el flujo de la aplicacin. Recibe solicitudes de un visualizador y decide cmo procesarlas. Con Struts, el controlador se implementa como un servlet de la clase org.apache.struts.action.ActionServlet. El archivo struts-config.xml configura el Controlador mediante elementos <action-mapping>. Se establece una capa lgica empresarial entre el Controlador y el Modelo. Esta se implementa con una clase Action, un fino englobador alrededor de la lgica empresarial real. La clase Action recibe el envo de un formulario o la solicitud de una pgina, y delega en las clases lgicas empresariales. Se guarda toda la informacin necesaria para las pginas futuras. La clase
8-1
Action separa la lgica empresarial de la presentacin y decide qu se muestra a continuacin. El Modelo representa el estado de la aplicacin. Los objetos empresariales actualizan el estado de la aplicacin. Un bean ActionForm representa el estado del modelo a nivel de peticin de sesin. La clase ActionForm contiene mtodos de obtencin y definicin para las propiedades y un mtodo de validacin. El archivo JSP (o la vista) lee la informacin de la clase ActionForm mediante etiquetas JSP. Debe haber una clase ActionForm para cada formulario de entrada. La Vista es un archivo JSP. En la JSP no hay lgica de flujo, lgica empresarial o informacin de Modelo; slo es una presentacin. Struts ofrece un amplio conjunto de bibliotecas de etiquetas para utilizar en la capa Vista. Hay cuatro bibliotecas principales de etiquetas Struts: HTML, Bean, Logic y Template. Biblioteca de etiquetas HTML: Contiene etiquetas HTML que sustituyen a la mayora de los elementos HTML comunes. Biblioteca de etiquetas Bean: Contiene etiquetas para mostrar datos de JavaBeans, como los que devuelve una consulta a una base de datos. Biblioteca de etiquetas Logic: Contiene etiquetas para realizar iteraciones y procesamiento condicional de datos, como la presentacin de la informacin de una base de datos en formato de tabla. Biblioteca de etiquetas Template: Contiene etiquetas para importar fragmentos de cdigo a pginas JSP; por ejemplo, el logotipo y cabecera de una empresa que se repiten en todas las pginas de una sede web. La capa Vista puede utilizar un archivo de propiedades para guardar cadenas y facilitar, de este modo, la internacionalizacin. En conjunto, la utilizacin del marco de trabajo Struts ha cambiado de forma significativa el diseo de aplicaciones web. En el siguiente diagrama se muestra la composicin de una aplicacin web antes y despus de utilizar Struts. Observe cmo Struts separa limpiamente el cdigo Java del Javascript y del cdigo HTML.
8-2
Versiones de Struts
Figura 8.1
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.
Versiones de Struts
JBuilder admite Struts 1.0 pero no admite oficialmente la versin beta 1.1. Sin embargo, si activa el archivo struts-config.xml para Struts 1.1 y descarga el archivo JAR de Struts 1.1 en la carpeta <jbuilder>/extras, se logra la compatibilidad con Struts 1.1. El Editor de configuracin de Struts muestra elementos y atributos especficos de 1.1. Adems, si su aplicacin web Struts utiliza un archivo tiles.xml para la presentacin, dispondr de un editor visual para el archivo de configuracin de Tiles. Para configurar Struts 1.1 y utilizarlo en JBuilder, siga estos pasos:
1 Descargue Struts 1.1 en una carpeta dentro de la carpeta <jbuilder>/ extras. 2 Utilice el cuadro de dilogo Configurar bibliotecas (Herramientas| Configurar bibliotecas) para crear una nueva biblioteca de nombre Struts 1.1. Para ms informacin sobre crear nuevas bibliotecas y marcos de trabajo, consulte Las bibliotecas de etiquetas JSP y los marcos de trabajo en JBuilder en la pgina 6-6. Aada todas las
8-3
Versiones de Struts
3 Cree su aplicacin web, como lo hara normalmente, con el Asistente para aplicaciones web. No obstante, seleccione el marco de trabajo de Struts 1.1 en lugar del de Struts 1.0. 4 Abra el archivo struts-config.xml en el editor de fuentes. Cambie la definicin DTD para que apunte a Struts 1.1 en lugar de a Struts 1.0. Cambie la siguiente lnea del archivo:
<!DOCTYPE struts-config PUBLIC -//Apache Software Foundation //DTD Struts Configuration 1.0//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
a
<!DOCTYPE struts-config PUBLIC -//Apache Software Foundation //DTD Struts Configuration 1.1//EN http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd" >
5 Guarde el archivo.
Observe que tanto Struts 1.0 como Struts 1.1 utilizan un archivo struts.jar. Para la distribucin, este archivo se copia en el directorio WEBINF/lib. En teora, para poder admitir ambas versiones de Struts en la misma WebApp, puede cambiar el nombre de uno de los archivos JAR en el 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. Struts 1.1 admite ms de un archivo de configuracin. Las ubicaciones de los archivos se recogen en el parmetro config para el ActionServlet de Struts del archivo web.xml. Por defecto, el archivo de configuracin de Struts se llama struts-config.xml. No obstante, puede dar al archivo de configuracin de Struts 1.1 cualquier nombre vlido. Tenga en cuenta que los archivos de configuracin 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) le permiten elegir el archivo de configuracin que se utiliza. Struts 1.1 tambin admite archivos de definicin de Tiles. Estos archivos se recogen en el archivo de configuracin de Struts.
8-4
8-5
Al aadir un archivo, es necesario que apunte hacia un archivo ya creado con un DTD vlido. Este cuadro de dilogo no se puede utilizar para crear archivos DTD. Para obligar a JBuilder a que vuelva a leer el archivo web.xml:
1 Pulse el botn derecho en el nodo de Struts del directorio WebApp y seleccione Propiedades en el panel del proyecto. Se muestra el cuadro de dilogo Propiedades de Struts.
2 Seleccione Volver a examinar los archivos descriptores para que JBuilder tenga que leer el archivo web.xml para buscar los archivos struts-config.xml. En el caso de Struts 1.1, JBuilder examina esos archivos de configuracin para buscar archivos de definicin de Tiles. 3 Pulse Aceptar para guardar los cambios y cierre el cuadro de dilogo Propiedades de Struts.
8-6
1 En el cuadro de dilogo Propiedades de Struts, seleccione el botn Aadir para aadir un nuevo archivo de configuracin a web.xml. JBuilder abre el cuadro de dilogo Seleccione archivo de configuracin de Struts, en el que puede elegir el archivo de configuracin que desee aadir.
2 Haga clic en Aceptar para cerrar el cuadro de dilogo. 3 En el cuadro de dilogo Propiedades de Struts, elija Volver a examinar los archivos descriptores para hacer que JBuilder lea el archivo web.xml y, a continuacin, seleccione Aceptar para cerrar el cuadro de dilogo y guardar el archivo de configuracin. Si observa la fuente de web.xml, ver el nuevo archivo de configuracin en el parmetro config para el ActionServlet de Struts.
Para eliminar un archivo de configuracin de web.xml:
1 En el cuadro de dilogo Propiedades de Struts, seleccione el archivo de configuracin que desea eliminar y pulse el botn Eliminar. 2 Seleccione Volver a examinar los archivos descriptores para hacer que JBuilder lea el archivo web.xml y, a continuacin, pulse Aceptar para cerrar el cuadro de dilogo y guardar el archivo de configuracin. Si observa la fuente de web.xml, ver que el archivo de configuracin seleccionado se ha eliminado del parmetro config para el ActionServlet de Struts.
Para reordenar los archivos de configuracin en web.xml:
1 En el cuadro de dilogo Propiedades de Struts, seleccione el archivo de configuracin del que desee cambiar el orden. Seleccione Desplazar hacia arriba o Desplazar hacia abajo. Desplazar hacia arriba mueve el archivo seleccionado hacia arriba en la lista; Desplazar hacia abajo lo hace hacia abajo. web.xml procesa en primer lugar el archivo de configuracin de la parte superior de la lista.
El marco de trabajo Struts en JBuilder
8-7
2 Seleccione Volver a examinar los archivos descriptores para hacer que JBuilder lea el archivo web.xml y, a continuacin, pulse Aceptar para cerrar el cuadro de dilogo y guardar el archivo de configuracin. Si observa la fuente de web.xml, ver que el orden de los archivos de configuracin en el parmetro config para el ActionServlet de Struts ha cambiado.
La pestaa Marco de trabajo del cuadro de dilogo Configurar bibliotecas (Herramientas|Configurar bibliotecas) permite configurar marcos con el fin de utilizarlos en JBuilder. Un marco de trabajo consiste en una biblioteca de etiquetas y elementos especficos de taglib contenidos en un archivo JAR. Los siguientes marcos de trabajo se suministran junto con JBuilder, y estn disponibles en la carpeta de JBuilder del lado izquierdo del cuadro de dilogo Configurar bibliotecas. Struts JSTL InternetBeans Cocoon En el siguiente cuadro se muestra el marco de trabajo Struts que aparece en la pestaa del cuadro de dilogo Configurar bibliotecas.
Figura 8.3 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. Si desea obtener ms informacin acerca de las bibliotecas de JBuilder y del cuadro de dilogo Configurar bibliotecas, consulte Las bibliotecas
8-8
en el captulo Gestin de las vas de acceso de Creacin de aplicaciones con JBuilder. Para obtener ms informacin sobre JSP y bibliotecas de etiquetas, consulte Las bibliotecas de etiquetas JSP y los marcos de trabajo en JBuilder en la pgina 6-6.
El Asistente para aplicaciones web est preparado para el marco de trabajo Struts. Con el fin de elegir el marco de trabajo Struts para su aplicacin web, seleccione Struts 1.0 en la lista Marcos de trabajo JSP/ Servlet. El asistente para aplicaciones web tendr este aspecto:
Figura 8.4 Asistente para aplicaciones web
Nota:
Se puede utilizar ms de un marco de trabajo en una aplicacin web. Por ejemplo, puede utilizar Cocoon, Struts y JSTL en una WebApp. Una vez que haya elegido el marco de trabajo Struts para su WebApp, JBuilder aade correspondencias al archivo web.xml y copia o crea archivos si es necesario. En el caso del marco de trabajo Struts, los archivos *.tld 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 de la WebApp. Algunos marcos de trabajo web pueden declarar una pgina de bienvenida estndar que utiliza el URI. En este caso, el campo URI de inicio se actualiza automticamente con el nombre de la pgina de bienvenida. Por ejemplo, si selecciona el marco de trabajo Cocoon, el valor de URI de inicio es /index.xml. Una vez creada la aplicacin web, puede cambiar las propiedades del nodo, incluida la seleccin de marcos de trabajo, si pulsa el nodo WebApp
8-9
con el botn derecho del ratn en el panel del proyecto y selecciona Propiedades. Puede cambiar el marco de trabajo en la pestaa Marcos de trabajo JSP/Servlet de la ficha WebApp.
Importante:
Para generar una aplicacin web, lo primero que se ha de hacer es crear una webapp. Para ms informacin sobre la secuencia de pasos necesarios para crear una aplicacin web Struts, consulte Creacin de una aplicacin web preparada para Struts en JBuilder en la pgina 8-22.
Para ms informacin sobre la secuencia de pasos necesarios para crear una aplicacin web Struts, consulte Creacin de una aplicacin web preparada para Struts en JBuilder en la pgina 8-22.
Figura 8.5 Ficha Modificar los detalles del archivo JSP Asistente para JSP
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.
8-10
Est creando una clase ActionForm para una JSP. Para poder utilizar el asistente, debe tener una JSP en el proyecto. Para ms informacin sobre la secuencia de pasos necesarios para crear una aplicacin web Struts, consulte Creacin de una aplicacin web preparada para Struts en JBuilder en la pgina 8-22. El Asistente para ActionForm permite crear rpida y fcilmente una ActionForm. Puede aadir campos mediante el asistente o rellenarlos previamente a partir de una pgina JSP ya creada. El asistente crea la clase ActionForm y la registra en el archivo web.xml.
8-11
Figura 8.6
Ficha Aplicacin web e informacin de clases para ActionForm Asistente para ActionForm
8-12
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.
8-13
Est creando una clase Action para una clase ActionForm. Para poder utilizar el asistente, debe tener una JSP y una clase ActionForm en el proyecto. Para ms informacin sobre la secuencia de pasos necesarios para crear una aplicacin web Struts, consulte Creacin de una aplicacin web preparada para Struts en JBuilder en la pgina 8-22.
Figura 8.9 Ficha Nombre y WebApp para Action Asistente para Action
8-14
8-15
Figura 8.11 Ficha WebApp, JSP y ActionForm Asistente para JSP a partir de ActionForm
8-16
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 de Struts se encuentra disponible en la ficha Web de la galera de objetos. Tambin est disponible desde el men contextual 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
El marco de trabajo Struts en JBuilder
8-17
lista Archivos JSP y HTML para su conversin en Struts, de la primera ficha del asistente.
8-18
Figura 8.15 Ficha Etiquetas que se han de convertir Asistente para conversin de Struts
8-19
JBuilder tambin proporciona un Editor de definiciones de Tiles para modificar los archivos de definiciones.
Figura 8.17 Editor de configuracin de Struts
Para ms informacin sobre el Editor de configuracin de Struts, consulte el Captulo 13, Modificacin del archivo struts-config.xml.
8-20
La activacin de la depuracin a nivel 2. El establecimiento del valor por defecto para el archivo de configuracin, struts-config.xml. La correspondencia del servlet mediante la correspondencia de extensiones *.do. Para hacer esto, JBuilder aade el siguiente cdigo en la parte superior del archivo web.xml:
<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> Nota:
Si el archivo web.xml ya se corresponde con un servlet de nombre action, no se realiza ninguno de estos cambios.
2 Cree un WEB-INF/struts_config.xml si todava no existe ninguno. 3 Copie los archivos TLD en el directorio WEB-INF. 4 Aada las correspondencias para los archivos TLD en web.xml, utilizando sus ubicaciones en el directorio WEB-INF. Las correspondencias tendrn este aspecto:
<taglib> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri> <taglib-location>/WEB-INF/struts-logic.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
8-21
<taglib-location>/WEB-INF/struts-template.tld</taglib-location> </taglib>
5 Aade la biblioteca Struts a su proyecto y la incluye automticamente en todas las dependencias WebApp.
1 Cree un nuevo proyecto y active un servidor. 2 Utilice el Asistente para aplicaciones web (Archivo|Nuevo|pestaa Web|Aplicaciones web) con el fin de crear su aplicacin web preparada para Struts. Seleccione el marco de trabajo Struts. 3 Utilice el Asistente para JSP (Archivo|Nuevo|Web|Pgina JavaServer) con el fin de crear la pgina JSP de la vista introductoria de la aplicacin. Esta es la capa de vista de la aplicacin web Struts. a En la ficha Declarar JSP y componentes, del asistente, escriba el nombre de la JSP. No seleccione ninguna de las opciones. 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:
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.
8-22
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.
c Puede pulsar Finalizar en esta ficha, no es necesario que configure opciones en otras fichas. 4 Aada etiquetas Struts a la JSP para disear la vista. Si desea obtener ms informacin acerca de la generacin de la capa de vista en la aplicacin web Struts, consulte Building View Components en Struts Users Guide en http://jakarta.apache.org/struts/userGuide. El documento tambin incluye informacin acerca de la creacin de formularios con Struts y la internacionalizacin de la aplicacin web Struts. Tambin se discuten otras tcnicas de presentacin, como la inclusin, la organizacin en mosaico (una funcin de Struts 1.1), los componentes de visualizacin de imgenes y la visualizacin de texto.
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.
5 Utilice el Asistente para ActionForm (Archivo|Nuevo|pestaa Web| ActionForm) con el fin de disear el ActionForm para la capa de vista. a En la ficha Aplicacin web e informacin de clases para ActionForm del asistente, seleccione la aplicacin web, el archivo de configuracin de Struts y el paquete para ActionForm. Normalmente stos sern los valores por defecto. Introduzca el nombre de la clase. Utilice un nombre parecido al nombre de la JSP. b En la ficha Definicin de campos para ActionForm, elija Aadir desde JSP si ya ha aadido los campos a la JSP. Seleccione la JSP del cuadro de dilogo Aadir JSP. Los campos y sus tipos se rellenan automticamente. c Configure las opciones por defecto en la ficha Seleccin de opciones adicionales. La opcin por defecto crea automticamente la correspondencia <form-bean> en struts-config.xml. d Pulse el botn Finalizar. 6 JBuilder crea automticamente los mtodos de obtencin y definicin en ActionForm, segn los nombres de los campos. No es necesario que modifique este archivo. Si desea obtener ms informacin acerca de la clase ActionForm, consulte ActionForm classes en Struts Users Guide en http://jakarta.apache.org/struts/userGuide. 7 Utilice el Asistente para Action (Archivo|Nuevo|pestaa Web| Action) con el fin de crear la clase Action para la capa de vista. a En la ficha WebApp y nombre para Action, seleccione la aplicacin web, el archivo de configuracin de Struts, el paquete y la clase base. stos
El marco de trabajo Struts en JBuilder
8-23
son normalmente los valores por defecto. Cambie el nombre de Action por el que desee. Debe ser un nombre parecido al nombre del archivo JSP.
b En la ficha Informacin de configuracin, asigne el valor por defecto a Va de acceso a Action. Elija el form bean de la lista desplegable (es el nombre asignado a la clase ActionForm que cre con el Asistente para ActionForm). Establezca la JSP de entrada como la JSP a la que se devuelve el control si se produece un error de validacin. No es necesario que configure las opciones mbito o Validar FormBean. c Pulse Finalizar para crear la clase Action. 8 Abra la clase Action en el editor. Aada lgica empresarial al mtodo perform(). Una vez aadido el cdigo al mtodo, puede borrar la ltima lnea del mtodo, la lnea de gestin de errores. (Esta lnea estar fuera de mbito, una vez que haya implementado el mtodo.) Si desea obtener ms informacin acerca de la clase Action, consulte Action classes en Struts Users Guide en http://jakarta.apache.org/struts/ userGuide. 9 Aada la correspondencia de accin a la JSP en el elemento action de la etiqueta <html:form />. 10 Seleccione Archivo|Guardar todo y, a continuacin, elija Ejecutar| Ejecutar el proyecto.
8-24
Captulo
Captulo9
Desarrollo web es una caracterstica de JBuilder Developer y JBuilder Enterprise JBuilder WebLogic Edition no admite Tomcat, Borland Enterprise Server, Sun iPlanet, Sybase Enterprise Application Server ni IBM WebSphere.
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. JBuilder Enterprise admite los servidores de aplicaciones Borland Enterprise Server, Sun iPlanet, IBM WebSphere y BEA WebLogic. Estos servidores de aplicaciones contienen servidores web. No obstante, para utilizar el servidor web incluido, se debe tener instalado y configurado el correspondiente servidor de aplicaciones. No se puede utilizar el servidor web fuera del servidor de aplicaciones que lo contiene. Despus de que se haya configurado la aplicacin web y el servidor web, se pueden compilar, ejecutar y depurar los servlets y las JSP. Para ms informacin, consulte el Captulo 10, Las aplicaciones web en IDE de JBuilder. No obstante, en JBuilder Enterprise se puede utilizar el servidor web Tomcat como servidor web autnomo.
Nota:
9-1
En JBuilder Enterprise, Tomcat 4.0 es el servidor por defecto. Para cambiar el servidor por defecto de su proyecto, consulte Eleccin de un servidor para su proyecto en la pgina 9-4.
9-2
Nota:
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.
2 Escoja una de las instalaciones de Tomcat en la carpeta Directorio inicial. La opcin Activar servidor del extremo superior derecho del cuadro de dilogo se marcar automticamente. No necesita cambiar ningn parmetro. 3 Haga clic en Aceptar para cerrar el cuadro de dilogo.
Si ha instalado Tomcat en otro directorio, y desea ejecutarlo desde l y no desde el predeterminado, puede cambiar los parmetros de modo que se dirijan a dicho directorio. La siguiente tabla explica los parmetros de configuracin.
Tabla 9.1 Opcin
Directorio de inicio
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. 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.1.12-LE-jdk14/ webapps/tomcat-docs
Nota:
9-3
JBuilder es compatible con otros servidores web, adems de Tomcat: Borland Enterprise Server iPlanet de Sun Sybase Enterprise Application Server WebLogic de BEA WebSphere de IBM Estos servidores web se configuran automticamente cuando se configura el correspondiente servidor de aplicaciones en el cuadro de dilogo Configurar servidores (Herramientas|Configurar servidores). No se pueden utilizar estos servidores web fuera del servidor de aplicaciones que los contiene. Si desea configurar los servidores de aplicaciones que contienen a estos servidores web, consulte Configuracin del servidor de aplicaciones de destino en Desarrollo de aplicaciones J2EE.
Nota:
El servidor de aplicaciones Borland Enterprise Server utiliza Tomcat internamente como su servidor web de produccin. No se necesita configurar Tomcat por separado.
Si no se tiene ningn servidor de aplicaciones instalado, JBuilder dirigir automticamente su proyecto a Tomcat 4.0. No obstante, si los iconos web de la ficha Web de la galera de objetos estn desactivados, debera seleccionar un servidor para su proyecto. Para ello, siga estos pasos: 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.
Importante:
9-4
Para seleccionar uno o ms servidores de aplicaciones (y sus servidores web incluidos) con el fin de utilizarlos en su proyecto,
Nota:
Para que un servidor de aplicaciones se muestre en la lista desplegable de la parte superior de este cuadro de dilogo, debe haber sido previamente configurado en el cuadro de dilogo Configurar servidores.
3 Si tiene instalados y configurados uno o ms servidores de aplicaciones, decida si quiere utilizar un nico servidor web y de aplicaciones para todos los aspectos del desarrollo o si desea distintos servidores de aplicaciones para gestionar diferentes reas de desarrollo.
Para utilizar un nico servidor,
1 Seleccione la opcin Servidor nico para todos los servicios del proyecto y elija el servidor en la lista desplegable. Este servidor puede ser un servidor de aplicaciones que contenga un servidor web o bien el servidor web Tomcat instalado con JBuilder. 2 Si quiere evitar que se aadan a su proyecto libreras que no va a utilizar, en la lista Servicios desactive la casilla de seleccin junto al servicio o servicios que no necesita. Si desactiva servicios, se desactivarn las correspondientes caractersticas de JBuilder. Por ejemplo, si desactiva el servicio JSP/Servlet, se desactivarn la mayora de los Asistentes web y la caracterstica de compilacin JSP.
9-5
3 Si desea realizar cambios a los parmetros de configuracin del servidor seleccionado, haga clic sobre el botn con puntos suspensivos, a la derecha del nombre del servidor, y modifique los parmetros deseados en las fichas General y Personalizada. Pulse Aceptar cuando haya terminado.
Para utilizar diferentes servidores en diferentes servicios,
1 Seleccione la opcin Servicios modulares de distintos servidores. 2 Si quiere evitar que se aadan a su proyecto libreras que no va a utilizar, en la lista Servicios desactive la casilla de seleccin junto al servicio o servicios que no necesita. Si desactiva servicios, se desactivarn las correspondientes caractersticas de JBuilder. Por ejemplo, si desactiva el servicio JSP/Servlet, se desactivarn la mayora de los Asistentes web y la caracterstica de compilacin JSP. 3 Actualice la configuracin del servicio seleccionado en el lado derecho del cuadro de dilogo. Dependiendo del servidor/ servicio seleccionado, esta informacin ser configurable o de slo lectura. Para ms informacin, consulte Seleccin un servidor en Desarrollo de aplicaciones J2EE. 4 Para utilizar un servidor web, haga clic en el servicio JSP/Servlet. En la lista desplegable Servidores del lado derecho del cuadro de dilogo, seleccione el servidor web que desea utilizar. Si quiere hacer cambios en los parmetros de configuracin del servidor web, haga clic sobre el botn con puntos suspensivos y modifique los parmetros que desee en la ficha General. Pulse Aceptar cuando haya terminado. 5 Pulse Aceptar de nuevo para cerrar la ficha Servidor.
9-6
1 Seleccione la pestaa Web en el cuadro de dilogo Opciones del IDE (Herramientas|Opciones del IDE). La ficha Web tendr este aspecto:
2 Seleccione la opcin Copiar URL de depuracin o ejecucin web al portapapeles, con el fin de copiar la URL utilizada para iniciar la aplicacin web. Esto facilita la posibilidad de ir a la misma URL con un visualizador externo. Active esta opcin si est creando una aplicacin o un applet Java Web Start. 3 Seleccione Opciones de vista web Estas opciones se usan en conjuncin con la opcin Buscar puerto disponible, en el cuadro de dilogo Configuracin de ejecucin, cuando el puerto especificado est siendo utilizado por un proceso ajeno a la web. (Consulte Creacin de una configuracin de ejecucin en la pgina 10-2 para ms informacin.)
Seleccione la opcin Ejecutar en proceso separado y usar vista web, con el fin de utilizar tanto un visualizador web interno como uno externo. Esta opcin muestra automticamente el servlet o la pgina JSP en la ficha Ver web del panel de contenido. Si desea utilizar el visualizador web interno para ver su pgina, seleccione la opcin Usar vista web con el proceso si es posible. Esta opcin muestra automticamente el servlet o la pgina JSP en la
9-7
ficha Ver web del panel de contenido. Si ya se est ejecutando un servidor web, JBuilder utiliza el mismo proceso en el puerto existente. sta es la opcin por defecto. Cuando inicie su aplicacin web en un visualizador web externo, seleccione la opcin No usar vista web, ejecutar en proceso separado.
9-8
Captulo
Captulo10
Desarrollo web es una caracterstica de JBuilder Developer y JBuilder Enterprise JBuilder WebLogic Edition no admite Tomcat, IIS, Borland Enterprise Server, Apache ni iPlanet.
JBuilder proporciona comandos en el men contextual del panel de 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 WebApp. Si el archivo JSP, HTML o SHTML no est en una WebApp, no puede ser ejecutado o depurado en web y no aparecen los comandos Ejecutar web ni Depurar web en el men contextual. Para ms informacin acerca de WebApps, consulte La WebApp y sus propiedades en la pgina 3-5.
Nota:
Si se establece una URI de inicio para una webapp (en el Asistente para aplicaciones web), se puede ejecutar la webapp desde esa ubicacin especfica, desde el men contextual del nodo WebApp. 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.
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
10-1
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-22. 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.
10-2
Cuando crea una configuracin de ejecucin del applet con el asistente, el ejecutor de applet se activa. El applet se ejecuta en el visualizadorde applets 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 tienen un contexto de aplicacin web, o WebApp.) Cuando crea una configuracin de ejecucin de servlet 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. La URI a ejecutar se toma de la entrada del campo Patrn de URL en la ficha Introduzca los detalles de webapp del Asistente para servlet y desde la WebApp del servlet. 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. La URI a ejecutar se toma de la WebApp y del nombre de archivo JSP.
1 Seleccione Ejecutar|Configuraciones. Aparece la ficha Ejecutar de Propiedades de proyecto. 2 Pulse Nueva para crear una configuracin. Se muestra el cuadro de dilogo Propiedades de configuracin de ejecucin.
10-3
3 Introduzca el nombre de la configuracin en el campo Nombre. 4 Elija el tipo de generacin que desee ejecutar antes de iniciar. Para ms informacin, consulte Tipos de generacin en el captulo Definicin de configuraciones de ejecucin de 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. 7 Elija la opcin Archivo HTML con el fin de ejecutar el applet en el appletviewer de Sun. El archivo HTML debe contener la etiqueta <applet>. El atributo code debe contener el nombre de clase completo. Busque el archivo HTML pulsando el botn con puntos suspensivos (...) y seleccinelo en el cuadro de dilogo Seleccione el archivo HTML que se va a ejecutar. 8 En el campo Parmetros de la MV, introduzca cualquier parmetro que quiera pasar a la Mquina Virtual (MV) de Java. Si desea ms informacin sobre la MV de Java y las opciones que se le pueden pasar, consulte "Basic Tools: java - The launcher for Java technology applications". 9 Si seleccion la opcin Clase principal para ejecutar el applet, introduzca el tamao y cualquier otro parmetro inicial: a Introduzca el ancho y alto iniciales del applet en los campos Anchura y Altura. b Introduzca los parmetros del applet en la lista Parmetros de applet. Escriba el nombre del parmetro en la columna Nombre y su valor inicial en la columna Valor.
Nota:
Si ejecuta el applet desde la pgina HTML, no necesita declarar parmetros, porque ya estn configurados en la pgina HTML.
10 Al terminar, pulse Aceptar con el fin de cerrar el cuadro de dilogo Propiedades de configuracin de ejecucin. A continuacin se muestra la ficha Ejecutar del cuadro de dilogo Propiedades de proyecto. Su nueva configuracin est resaltada. 11 Si desea que esta configuracin sea la configuracin por defecto, marque la casilla de verificacin en la columna Por defecto. (Slo una configuracin del proyecto puede ser la configuracin por defecto.) Si desea aadir esta configuracin al men contextual del panel del proyecto, marque la casilla de la columna Men contextual. Haga clic en Aceptar para cerrar el cuadro de dilogo.
10-4
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-22. Para obtener ms informacin acerca de las configuraciones para la ejecucin, consulte "Definicin de las configuraciones para la 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:
10-5
ficha del cuadro de dilogo. Elija un servidor en la lista desplegable del lado derecho de la ficha; asegrese de que no est seleccionado <Ninguno>.
Nota:
Observe que el servidor seleccionado puede permitir que los servicios estn desactivados durante la ejecucin. Por ejemplo, Borland Enterprise Server 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.
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:
1 Seleccione Ejecutar|Configuraciones. Aparece la ficha Ejecutar de Propiedades de proyecto. 2 Pulse Nueva para crear una configuracin. Se muestra el cuadro de dilogo Propiedades de configuracin de ejecucin.
10-6
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 obtener ms informacin, consulte Tipos de generacin en el captulo Definicin de las configuraciones de ejecucin de Creacin de aplicaciones con JBuilder 5 Seleccione Servidor en la lista desplegable Tipo. 6 Elija el servicio JSP/Servlet en la lista Categora de la parte izquierda del cuadro de dilogo. 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.
Se puede introducir directamente el URI (Universal Resource Identifier - Identificador uniforme de recursos) en el campo de texto URI en la parte superior del cuadro de dilogo o seleccionar la WebApp y el URI de los rboles en la parte inferior del cuadro de dilogo:
a Seleccione la WebApp del URI que quiere ejecutar de la lista desplegable WebApp. La lista muestra todas las WebApps definidas en el proyecto. b Seleccione el URI directamente de uno de los tres rboles que se encuentran en la parte inferior del cuadro de dilogo URI de inicio. Estos rboles corresponden a los distintos tipos de correspondencias de servlets. El rbol Archivo, o contenido web, en la izquierda, crea los URI que o bien coincidiran probablemente con las correspondencias de extensiones (como *.jsp) o bien no coinciden con nada y son atendidas por el servlet por defecto. El rbol
Las aplicaciones web en IDE de JBuilder
10-7
Correspondencia de servlets, en el centro, contiene modelos de URL para coincidencias exactas. El rbol de Clases de servlet, que se muestra slo si el servidor tiene un invocador de servlets, crea URI que coincidan con el invocador de servlets. (Tomcat 3.3 y 4.0 cuentan con un invocador de servlets, pero Tomcat 4.1 no.) Para ms informacin acerca de las correspondencias URL, consulte Cmo los URL ejecutan los servlets en la pgina 10-10.
Tabla 10.1rboles URI Nombre de rbol
Archivo (HTML, JSP, etc.) Correspon dencia de servlets
Descripcin
Todos los archivos de tipo HTML de la WebApp seleccionada. 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 valor fue introducido en los campos Nombre/Modelo de URL en el 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.
/selectedwebapp/servlet/ com.test.MyServlet
8 Pulse Aceptar para cerrar el cuadro de dilogo Escriba o seleccione el URI que se va a lanzar. 9 Introduzca los parmetros de usuario en el campo Cadena de consulta, del cuadro de dilogo Propiedades de configuracin de ejecucin. Los parmetros de usuario son una serie de parejas nombre/valor separadas por un smbolo de unin (&), por ejemplo, a=1&b=2. Puede introducir tambin una cadena de consulta si el cliente est utilizando el mtodo doGet() para leer informacin del servlet o la JSP. Esta cadena se aade a cualquier URL generado para una ejecucin de web y, habitualmente, incluye parmetros para el servlet o la JSP. Por ejemplo, su aplicacin web puede contener tanto un servlet (SalesHistory.java,
10-8
Gua del desarrollador de aplicaciones web
dado el nombre del servlet saleshistory) como una JSP (showproduct.jsp) que utilicen un nmero de ID de producto. Cuando se ejecuta la aplicacin web, el comando Ejecutar web genera las siguientes URL:
http://localhost:8080/showproduct.jsp http://localhost:8080/saleshistory
El signo de interrogacin (?) separa el nombre de la JSP o del servlet a ejecutar de la cadena de consulta. Esto permite al servlet y a la JSP pedir el parmetro product y devolver 1234. Tenga en cuenta que los valores de parmetro son siempre cadenas. Los diferentes parmetros se separan con el signo (&), p.e. producto=1234&cliente=6789.
10 En el campo Nombre de host, escriba el nombre que el servidor web debe tener. No escoja un nombre que ya est en uso en la subred. localhost es el nombre por defecto. 11 Introduzca el nmero de puerto que debe monitorizar el servidor web en el campo Nmero de puerto. Por lo general, se debe utilizar el nmero de puerto por defecto, 8080. No cambie este valor a no ser que el valor por defecto ya se est usando. 12 Seleccione la opcin Buscar puerto disponible con el fin de indicar a JBuilder que elija otro puerto si el especificado se encuentra en uso. Resulta til seleccionar esta opcin cuando se ejecuta ms de un servlet o una JSP, pues de otra forma se podra recibir un mensaje 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. Con esta opcin seleccionada, est protegido en el caso de que el servidor web no se cierre de manera adecuada. Esta opcin se usa en conjuncin con las opciones de inicio de la ficha Opciones del IDE cuando el puerto especificado est siendo utilizado por un proceso ajeno a la web. (Consulte Configuracin del IDE para ejecutar/ depurar web en la pgina 9-7 para ms informacin.)
Para crear una configuracin de ejecucin con opciones de depuracin:
1 Pulse la pestaa Depurar del cuadro de dilogo Propiedades de configuracin de ejecucin. 2 Si desea informacin sobre las opciones, consulte "Configuracin de opciones de depuracin" en "Depuracin de programas en Java" de Creacin de aplicaciones con JBuilder.
Cuando haya terminado, pulse Aceptar para cerrar el cuadro de dilogo Propiedades de configuracin de ejecucin Pulse Aceptar de nuevo para
10-9
cerrar la ficha Ejecutar de Propiedades del proyecto y guardar los cambios hechos a su configuracin de ejecucin.
/nombre_de_archivo.html es la va de acceso al URI de solicitud. En un servidor web que no gestione contenedores de servlets como IIS o Apache sin Tomcat, el manejo bsico de la va de acceso a URI de solicitud es simple. El contenido web est establecido en un directorio particular, de forma que el servidor web pueda resolver esa va de acceso utilizando la barra invertida inicial para indicar el directorio raz de la web. Entonces puede devolver el archivo correspondiente, si est all. Los contenedores de Servlets como Tomcat y WebLogic son ms complejos, pero ms flexibles. Estos contenedores permiten contextos y redefiniciones, de forma que su aplicacin web pueda tener cualquier nmero de contextos denominados. Cada contexto es asignado a su propio directorio raz. El trabajo principal de un contenedor de servlets en lo que respecta a la evaluacin de la va de acceso a URI de solicitud consiste en ver si la primera parte de la va coincide con un nombre de contexto. En JBuilder, estos son los nombres de las WebApps. Cuando se selecciona Ejecutar web, esos nombres se asocian con los directorios races de las WebApps. (Para ms informacin sobre WebApps, consulte La WebApp 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 una WebApp simple denominada myprojectwebapp, la va de acceso a URI de solicitud /myprojectwebapp/ subpackage/somename.jsp se evaluara como sigue: La va de acceso de contexto sera /myprojectwebapp. La va de acceso a la URL a asignar sera /subpackage/somename.jsp.
10-10
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 la nica WebApp existente es myprojectwebapp. 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 a asignar se hace por medio de las entradas que direccionan el servlet en cada descriptor de distribucin de WebApp 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 10.2 Patrones de URL Descripcin
Comienza con / y acaba con /* Empieza con *. Slo incluye /
Tipo de patrn
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. Para detalles ms concretos sobre cmo se utilizan estas correspondencias en el cuadro de dilogo URI de inicio, consulte Creacin de una configuracin de ejecucin del servidor en la pgina 10-5. 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 la WebApp somewebapp incluye un patrn de URL /test/ jspname.jsp, se utilizara el servlet correspondiente. 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: /testwebapp/subpackage/jspname.jsp y /myprojectwebapp/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:
10-11
1 Tomando la va de acceso que coincide (p.e. /sub/somename.jsp o /test/ subpackage/somename.jsp) 2 Buscando el archivo correspondiente en relacin con el directorio raz de la web del contexto 3 Convirtindolo en un servlet si todava no se ha hecho 4 Ejecutando ese servlet
Otro direccionamiento tpico por defecto es /servlet/*, que es un servlet invocador. Un servlet invocador:
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 /):
1 Toma la va de acceso a la URL a asignar (que no tiene ningn direccionamiento) 2 Busca el archivo correspondiente con relacin al directorio raz de la web de contexto 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:
1 Crea un servlet con el nombre de servlet myservlet asociado con la clase del servlet myproject.MyServlet 2 Crea el patrn de URL /myservlet y lo asigna al nombre de servlet myservlet
Si se hizo eso para la WebApp test, entonces /test/myservlet podra ejecutar la clase del servlet myproject.MyServlet dentro del contexto de la WebApp test. Para ms informacin sobre cmo el Asistente para servlets crea un direccionamiento, consulte Ficha Introduzca los detalles de webapp en la pgina 5-8. 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 bajo la test de WebApp ejecutara /test/myservlet/myproject.MyServlet.
10-12
1 Haga clic con el botn derecho del ratn en el archivo .java en el panel del proyecto. 2 Seleccione Propiedades con el fin de que aparezca el cuadro de dilogo homnimo.
3 Seleccione la opcin Activar Ejecutar/Depurar(Optimizar web en el men contextual, de la pestaa Servlet de la ficha Ejecutar web. Esta opcin muestra los comandos Ejecutar web y Depurar web cuando se hace clic con el botn derecho en el archivo de servlet en el panel del proyecto. (Si se ha creado el archivo utilizando los asistentes para servlet o para JSP, esta opcin est activada por defecto.) 4 Seleccione la WebApp a ejecutar de la lista desplegable Ejecutar en la va de contexto. Esta es la va de acceso que se utiliza cuando se elige el comando Ejecutar web. Se configura en el Asistente para aplicaciones web. 5 Haga clic en Aceptar para cerrar el cuadro de dilogo.
10-13
Se puede configurar esta propiedad para cada archivo JSP 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.
10-14
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-22.
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.
10-15
A continuacin se muestra un ejemplo de salida del panel de mensajes del servidor web Tomcat:
Figura 10.1 Mensajes Tomcat
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.
Nota:
Las pestaas Vista web y Ver cdigo fuente web no se mostrarn si ha seleccionado la opcin No usar vista web, en la ficha Web del cuadro de dilogo Opciones del IDE. Si desea ms informacin, consulte Configuracin del IDE para ejecutar/depurar web en la pgina 9-7.
Vista web
La salida con formato puede verse en el panel Vista 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 Vista web. Con el fin de ver los cambios ms recientes, pulse el botn Actualizar, en la parte superior de la Vista web. La Vista 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 Opciones del IDE agiliza el uso reiterado de esta funcin. Consulte Configuracin del IDE para ejecutar/depurar web en la pgina 9-7.
10-16
10-17
Nota:
La primera vez que se pulsa el botn Terminar el programa, simplemente enva un comando al servidor para que se apague. Ms concretamente, si se intenta depurar los manejadores de sucesos del ciclo de vida de la webapp, 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.
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 no se necesita efectuar un seguimiento del servlet en el que se compila la JSP ni tratar de hacer coincidir los nmeros de lnea para encontrar los errores. Tenga en cuenta que Tomcat 4.1 no admite la depuracin de cdigo fuente de pginas JSP. 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.
Figura 10.4 Depuracin web
10-18
Nota:
Intercambio inteligente no funciona con archivos JSP. Si desea obtener ms informacin acerca de la depuracin, consulte los siguientes temas: Depurar pginas JSP en la pgina 6-14 "Depuracin de programas en Java" en Creacin de aplicaciones con JBuilder "Tutorial de compilacin, ejecucin y depuracin" en Creacin de aplicaciones con JBuilder "Depuracin remota" Creacin de aplicaciones con JBuilder
10-19
10-20
Captulo
Captulo11
La distribucin de una aplicacin web es el proceso de trasladar la aplicacin web al servidor web, colocndola en el lugar correcto y completando 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 de la aplicacin web en un recopilatorio puede simplificar la distribucin. Algunos servidores requieren que una WebApp est empaquetada en un archivo WAR (Web Archive Recopilatorio web). Un archivo WAR organiza en la jerarqua correcta los archivos que necesita para su aplicacin 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. Contiene la aplicacin web completa en una estructura apropiada, lo que facilita la copia de la
11-1
Aspectos generales
estructura en el servidor web. Los archivos WAR files se explican con ms detalle en el Captulo 3, Las WebApps y los archivos WAR. Si la aplicacin web contiene applets, debera colocarlos en un archivo JAR. Para ms informacin sobre la utilizacin de archivos JAR para que contengan applets, consulte el Captulo 14, Las applets. Su aplicacin web, archivo WAR o archivo JAR tambin pueden empaquetarse en un archivo EAR. Consulte la ayuda en lnea del "Asistente para EAR".
Descriptores de distribucin
Los descriptores de distribucin son archivos XML que contienen informacin sobre la WebApp. 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-14 si desea obtener ms informacin acerca de la distribucin de un applet.
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: servlet-name - un nombre para el servlet servlet-class - el nombre completo de la clase del servlet
11-2
Aspectos generales
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: servlet-name - el nombre utilizado en la etiqueta del servlet url-pattern - el patrn de URL al cual est direccionado el servlet
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 WebApp si desea obtener 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: taglib-uri - el URI usado en la JSP para identificar la biblioteca de etiquetas This matches the taglib directive (<%@ taglib uri="whatever" prefix="whatever">) in the 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.
11-3
Los descriptores de distribucin son archivos XML que contienen la informacin sobre la WebApp necesaria para el servidor web. Todos los servidores web aptos para Java esperan un descriptor de distribucin estndar llamado web.xml. Si utiliza el marco de trabajo Struts en la WebApp, se requiere el descriptor de distribucin de nombre 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 WebApp. 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 Visualizador de aplicaciones muestra el Editor DD de WebApp y el editor de cdigo fuente. El archivo web.xml se puede modificar en el Editor DD de WebApp o en el editor de cdigo fuente. Los cambios efectuados en el Editor DD de WebApp se reflejarn en el cdigo fuente y los cambios en el cdigo fuente se reflejarn en el WebApp DD Editor.
Precaucin:
Si introduce comentarios en el archivo web.xml utilizando el editor original, se borrarn si posteriormente abre el archivo en el Editor DD de WebApp. 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.
11-4
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. 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 Visualizador de aplicaciones presenta el editor de cdigo fuente y la vista Histrico, junto con cualquier editor de interfaz grfica de usuario especfica del fabricante que pudiera aportar el plugin del servidor web.
11-5
11-6
Captulo
Captulo12
El Editor DD de WebApp est activo cuando se abre el archivo web.xml en el panel de contenido. Al mismo tiempo, el panel de estructura mostrar un esquema del contenido del archivo. Pulsando sobre los diferentes nodos dentro del panel de estructura se muestran las diferentes fichas del editor. Hay 15 nodos principales y algunos de ellos tienen nodos dependientes. Los nodos principales son: Descriptor de distribucin para la WebApp Parmetros de contexto Filtros (especificacin Servlet 2.3) Monitores (especificacin Servlet 2.3) Servlets Bibliotecas de etiquetas Tipos de MIME Pginas de error Entradas de entorno Referencias EJB Referencias EJB locales (especificacin de Servlet 2.3) Referencias de la factora de conexin del gestor de recursos Referencias de entorno de recursos (especificacin de Servlet 2.3) Conexin Seguridad
Modificacin del archivo web.xml
12-1
Cada uno de estos nodos contiene etiquetas que se pueden modificar en el Editor DD de WebApp. El Editor DD de WebApp cubre todas las etiquetas de descriptores de distribucin del web.xml en la especificacin de Servlet 2.3. Tambin puede modificar el cdigo fuente del archivo web.xml.
Precaucin:
Si introduce comentarios en el archivo web.xml mediante el editor de fuente, se borrarn si posteriormente abre el archivo en el Editor DD de WebApp. Las etiquetas contenidas en cada uno de los nodos del Editor DD de WebApp se explican en las siguientes secciones.
12-2
Icono pequeo
Nombre en pantalla Descripcin Duracin de la sesin Distribuible Archivos del proyecto Welcome
Figura 12.1 Ficha Descriptor de distribucin para la WebApp del Editor DD de WebApp
12-3
Ficha Filtros
La ficha Filtros ser visible solamente si su servidor web admite la especificacin de Servlet 2.3. Esta ficha contiene una rejilla para asignar los filtros (por filter-name) bien a un patrn de URL o a un nombre de servlet (pero no a ambos). 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. La informacin que se presenta en la ficha de filtros es:
Tabla 12.2 Elemento
Patrn de URL Nombre de Servlet Nombre de Filtro
12-4
Ficha Filtros
Si para crear un servlet de filtro utiliza el Asistente para servlets de JBuilder, el asistente aadir automticamente la asignacin de filtro necesaria.
Figura 12.3 Ficha Filtros del Editor DD de Webapp
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. Se puede renombrar o eliminar un filtro si hace clic con el botn derecho en el nodo de un filtro determinado y selecciona Renombrar o Eliminar en el men contextual. Si se renombra o se elimina un filtro, este cambio se extender en cascada a todas las partes relacionadas del descriptor de distribucin. Cuando se abre un filtro individual, el Editor DD de WebApp muestra una ficha para ese filtro especfico. Esta ficha contiene la siguiente informacin de identificacin para el filtro:
Tabla 12.3 Elemento
Icono grande
Icono pequeo
12-5
Ficha Monitores
Ficha Monitores
La ficha Monitores slo ser visible si el servidor web admite la especificacin de Servlet 2.3. La ficha Monitores tiene un cuadro de lista de las clases de monitores de una aplicacin web. 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. La informacin de la ficha Monitores es necesaria cuando se distribuye un servlet monitor. Si para crear un servlet monitor utiliza el Asistente para servlets de JBuilder, la clase de servlet se aadir a la lista automticamente.
Figura 12.5 Ficha Monitores del Editor DD de Webapp
12-6
Ficha Servlets
Ficha Servlets
La ficha Servlets tiene una rejilla que mapea los patrones de URL hacia un nombre de servlet. Un servlet puede estar asignado a ms de un patrn de URL. Se recomienda al menos una asignacin por cada servlet. Si para crear un servlet estndar utiliza el Asistente para servlets de JBuilder, se crear la asignacin automticamente.
Figura 12.6 Ficha Servlets del Editor DD de Webapp
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 muestra en el rbol. Se puede renombrar o eliminar un servlet si hace clic con el botn derecho en el nodo del servlet individual y selecciona Renombrar o Eliminar en el men contextual. Si se renombra o se elimina un servlet, este cambio se extender en cascada 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.
12-7
Ficha Servlets
Cuando se abre un nodo de un servlet individual, el Editor DD de WebApp presenta una ficha para ese servlet especfico. Esta ficha contiene informacin de identificacin del servlet:
Tabla 12.4 Elemento
Icono grande
Icono pequeo
Clase del servlet Archivo JSP Nombre en pantalla Descripcin Prioridad de carga
Ejecutar como
12-8
12-9
12-10
12-11
12-12
Figura 12.13 Ficha Referencias de la factora de conexin del gestor de recursos en Editor DD de WebApp
12-13
Ficha Conexin
Ficha Conexin
La ficha Conexin muestra un conjunto de botones de radio para elegir el mtodo de autentificacin de la WebApp. El valor por defecto es Ninguna. Otras opciones son Resumen, Client Cert, Bsico y Formulario. Para la opcin Bsico, se puede especificar un nombre de Reino. Para Formulario, se puede especificar una ficha de conexin y una Pgina de error (de conexin).
Figura 12.15 Ficha Conexin en el Editor DD de WebApp
Ficha Seguridad
La ficha Seguridad tiene una rejilla con nombres de competencias y sus descripciones.
Figura 12.16 Ficha Seguridad en el Editor DD de WebApp
12-14
Ficha Seguridad
restricciones de seguridad
Cada restriccin de seguridad se lista como un nodo dependiente separado del nodo Seguridad. Una restriccin de seguridad puede borrarse si hace clic con el botn derecho en el nodo de la restriccin individual y selecciona Eliminar en el men contextual. Si se borra una restriccin, este cambio se extender en cascada a todas las partes relacionadas del descriptor de distribucin. Cuando se abre un nodo de restriccin de seguridad individual, el Editor DD de WebApp muestra la informacin de esa restriccin de seguridad: la garanta de transporte, los nombres de competencias autorizadas y descripciones de ambos. Adicionalmente a la especificacin por separado de autorizaciones, el nombre de competencia reservado * indica todas las competencias. Si se utiliza esta designacin junto a nombres de competencias individuales, estas ltimas no se tienen en cuenta. La ficha Restricciones de seguridad del Editor DD de WebApp incluye una casilla de seleccin Autorizadas todas las competencias, visible slo cuando se modifica un archivo Servlet 2.3 web.xml.
Figura 12.17 Restriccin de seguridad en el Editor DD de WebApp
12-15
Ficha Seguridad
Renombrar o Eliminar en el men contextual. Si se renombra o se elimina una coleccin de recursos web, este cambio se extender en cascada a todas las partes relacionadas del descriptor de distribucin. Si elimina la ltima coleccin de recursos web de una restriccin, tambin se elimina la restriccin. Cuando se abre un nodo de coleccin de recursos web, el Editor DD de WebApp contiene la informacin de identificacin de la coleccin de recursos web:
Tabla 12.5 Elemento
Descripcin Mtodos HTTP
Patrones de URL
12-16
Captulo
Captulo13
El archivo struts-config.xml es el descriptor de distribucin de una aplicacin web preparada para Struts. Debe adaptarse a un formato especfico, tal y como se describe en el DTD que se encuentra en: Struts 1.0: http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd. Struts 1,1: http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd. Si desea obtener ms detalles acerca de los elementos ms importantes del DTD, consulte The Struts Configuration File en Struts Users Guide en http://jakarta.apache.org/struts/userGuide. Se puede utilizar el Editor de configuracin de Struts visual de JBuilder con el fin de modificar y mantener el archivo struts-config.xml. Si abre el archivo struts-config.xml en el IDE de JBuilder, el contenido aparece en el panel de estructura, y el Visualizador de aplicaciones abre el Editor de configuracin de Struts. Al pulsar un nodo en el panel de estructura aparecen las fichas correspondientes del editor. Las fichas son: Ficha Fuentes de datos ficha Form Beans Ficha Excepciones globales (Struts 1.1) ficha Reenvos globales ficha Correspondencias Action Ficha Controlador (Struts 1.1) Ficha Recursos de mensajes (Struts 1.1) Ficha Plug Ins (Struts 1.1)
13-1
Cada una de estas fichas configura elementos y atributos del descriptor de distribucin. El Editor de configuracin de Struts abarca todos los elementos del descriptor de distribucin struts-config.xml de las especificaciones de Struts 1.0 y 1.1. El editor muestra los elementos adecuados para la versin de Struts que est utilizando.
Nota:
Los valores true, yes, false, y no se aceptan como valores booleanos segn el DTD de Struts. Por este motivo, todos estos valores aparecen en listas desplegables para los campos booleanos en el Editor de configuracin de Struts. Los valores true y yes son equivalentes. Los valores false y no tambin son equivalentes. 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.
Nota:
Si utiliza los asistentes de JBuilder para crear los fragmentos de su aplicacin web Struts, puede que no necesite modificar el archivo strutsconfig.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. Para ms informacin, consulte Implementaciones del marco de trabajo Struts en JBuilder en la pgina 8-20.
Importante:
JBuilder admite Struts 1.0 pero no admite oficialmente la versin beta de Struts 1.1. Sin embargo, si activa el archivo struts-config.xml para Struts 1.1 y descarga el archivo JAR de Struts 1.1 en la carpeta <jbuilder>/extras, se logra la compatibilidad con Struts 1.1. El Editor de configuracin de Struts muestra elementos y atributos especficos de 1.1. JBuilder tambin proporciona un Editor de definiciones de Tiles para editar visualmente el archivo tiles.xml.
1 Hacer doble clic en el archivo struts-config.xml, en el panel del proyecto. Se abre la ficha de visin general del editor en el panel de contenido, y su estructura aparece en el panel de estructura. 2 En el panel de estructura, pulse el nodo que desee modificar. Para dirigirse a un elemento ya creado, ample el nodo en el panel de
13-2
estructura y, a continuacin, haga clic sobre el elemento. El elemento y sus atributos se muestran en el Editor de configuracin de Struts.
13-3
</data-source> </data-sources>
Para que se abra la ficha de 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. Si desea aadir un <data-source>, pulse el botn Aadir. El elemento nuevo se aade con el nombre por defecto dataSource. Para eliminar un elemento, seleccinelo y pulse Eliminar. Para modificar un elemento recin aadido o ya presente, seleccinelo y pulse Modificar.
Figura 13.1 Ficha de visin general de Fuentes de datos
La ficha de atributos de Fuentes de datos se utiliza para modificar los atributos de un elemento <data-source>. La ficha de atributos tendr este aspecto:
Figura 13.2 Ficha de atributos de Fuentes de datos
13-4
Descripcin
Clave de atributos de contexto de Servlet bajo la que se guarda esta fuente de datos. El valor por defecto lo especifica la cadena constante Action.DATA_SOURCE_KEY. El nombre de la clase Java del controlador JDBC que se utiliza. El bean de configuracin para este objeto DataSource. Si se especifica, el objeto debe ser una subclase del bean de configuracin por defecto. Por defecto es org.apache.struts.config.DataSourceC onfig. Nuevo a partir de Struts 1.1. Una propiedad para esta conexin de fuentes de datos.
type className
Propiedad
property-name, por ejemplo autoCommit, 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 URL de la fuente de datos.
Valor
13-5
Descripcin
Abre la ficha de atributos Fuentes de datos del editor, en la que se aade un nuevo elemento <data-source>. Aade un elemento de <data-source>.
Con el fin de abrir la ficha de visin general de Form Bean del Editor de configuracin de Struts, seleccione el nodo Form Beans en el panel de estructura. La ficha de visin general de Form Beans muestra los elementos <form-bean> existentes. Esta ficha se utiliza para aadir y eliminar elementos. Si desea aadir un <form-bean>, pulse el botn Aadir. El elemento nuevo se aade con el nombre por defecto formBean. Para eliminar un elemento, seleccinelo y pulse Eliminar. Para modificar un elemento recin aadido o ya presente, seleccinelo y pulse Modificar.
13-6
La ficha de atributos de Form Bean se utiliza para configurar los atributos de un elemento <form-bean>. La ficha de atributos tendr este aspecto:
Figura 13.4 Ficha de atributos de Form Bean
Nombre de atributo
name
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.
Clase de implementacin
type
13-7
Tabla 13.3
Nombre de atributo
dynamic
Descripcin
Si la Clase de implementacin es una subclase de DynaActionForm, asigne el valor true o yes a este atributo. Si la clase de implementacin est configurada en la DynaActionForm por defecto o en cualquier subclase ActionForm convencional, se puede omitir este atributo. Nuevo a partir de Struts 1.1. 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 form.
Bean de configuracin
className
Nombre Tipo (pestaa Propiedades de form) Escriba Tipo (pestaa Propiedades de form) Inicial Tipo (pestaa Propiedades de form) Nombre de clase Tipo (pestaa Propiedades de form) Propiedad Valor (pestaa Definir propiedades) Valor Valor (pestaa Definir propiedades) Icono grande Descripcin (pestaa Descripcin)
name
type
initial
className
property
value
large-icon
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.
small-icon
13-8
Tabla 13.3
Nombre de atributo
display-name
Descripcin
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.
description
Descripcin
Abre la ficha de atributos Form Bean, en la que se aade un elemento <form-bean>. Abre el Asistente para ActionForm, en el que se crea una clase ActionForm. Aade un elemento <form-bean>.
13-9
Descripcin
Abre el Asistente para ActionForm, en el que se crea una clase ActionForm. Elimina el elemento seleccionado.
Para que se abra la ficha Visin general de excepciones globales del Editor de configuracin de Struts, seleccione el nodo Excepciones globales en el panel de estructura. La ficha Visin general de excepciones globales muestra los elementos <global-exceptions>. Esta ficha se utiliza para aadir y eliminar elementos. Si desea aadir un elemento <global-exception>, pulse el botn Aadir. El elemento nuevo se aade con el nombre por defecto exception. Para eliminar un elemento, seleccinelo y pulse Eliminar. Para modificar un elemento recin aadido o ya presente, seleccinelo y pulse Modificar.
13-10
La ficha de atributos Excepciones globales se utiliza para modificar los atributos de un elemento <global-exceptions>. La ficha de atributos tendr este aspecto:
Figura 13.6 Ficha de atributos Excepciones globales
13-11
Nombre de campo
Clase Exception
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. Una propiedad del manejador de excepciones. El valor por defecto de la propiedad. 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. 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.
Va de acceso
path
Manejador
manejador
Clave
key
mbito
scope
Propiedad Valor (pestaa Definir propiedades) Valor (pestaa Definir propiedades) Icono grande Descripcin (pestaa Descripcin)
property
value large-icon
small-icon
displayname description
13-12
Aadir excepcin
Borrar
13-13
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 que se abra la ficha de visin general de Reenvos globales del Editor de configuracin de Struts, seleccione el nodo Reenvos globales en el panel de estructura. La ficha de visin general de Reenvos globales muestra los elementos <forward> existentes. Esta ficha se utiliza para aadir y eliminar elementos. Si desea aadir un elemento <forward>, pulse el botn Aadir. El elemento nuevo se aade con el nombre por defecto /forward. Para eliminar un elemento, seleccinelo y pulse Eliminar. Para modificar un elemento recin aadido o ya presente, seleccinelo y pulse Modificar.
Figura 13.7 Ficha de visin general de Reenvos globales
13-14
La ficha de atributos de Reenvo se utiliza para configurar los atributos de un elemento. La ficha de atributos tendr este aspecto:
Figura 13.8 Ficha de atributos de Reenvo
Nombre de campo
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 WebApp, y no slo al mdulo, asigne el valor true o yes a este campo. Nuevo a partir de Struts 1.1. Asgnele el valor true si se utiliza sendRedirect() para reenviar este recurso, o como 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.
path contextRelative
Desviar
redirect
Bean de configuracin
className
13-15
Tabla 13.7
Nombre de campo
Propiedad Valor (pestaa Definir propiedades) Valor Valor (pestaa Definir propiedades) Icono grande (pestaa Descripcin)
Descripcin
Una propiedad para este reenvo.
value
large-icon
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. 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.
small-icon
display-name
description
13-16
Descripcin
Abre la ficha de atributos de Reenvo, en la que se aade un elemento <global-forward>. Aade un elemento <globalforward>. Elimina el elemento seleccionado.
Para que se abra la ficha de visin general de Correspondencias Action del Editor de configuracin de Struts, seleccione el nodo Correspondencias Action en el panel de estructura. La ficha de visin general de Correspondencias Action muestra los elementos <action> existentes. Esta ficha se utiliza para aadir y eliminar elementos. Si desea aadir un elemento <action>, pulse el botn Aadir. El elemento nuevo se aade con el nombre por defecto /action. Para eliminar un elemento, seleccinelo y pulse Eliminar.
13-17
La ficha de atributos de Action se utiliza para configurar los atributos de un elemento. La ficha de atributos tendr este aspecto:
Figura 13.10 Ficha de atributos de Action
13-18
Descripcin
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. 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. La va de acceso relativa al contexto de la solicitud enviada, que comienza con una barra diagonal (/ ), y sin la extensin de archivo si se ha utilizado la correspondencia de extensiones. 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. 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.
Adelante
forward
Incluir
include
Va de acceso
path
Bean de configuracin
className
Parmetro
parameter
unknown
name
prefix
scope
13-19
Descripcin
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. 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. Especifica el nombre y valor de una propiedad adicional de configuracin JavaBeans cuyo mtodo de definicin llama el objeto que representa al elemento en cuestin. Esto resulta de gran utilidad cuando se configura una clase de implementacin ampliada (con propiedades adicionales) en los elementos <global-forwards> o <action-mappings>. Representacin en cadena del valor que se asignar a esta propiedad, despus de realizar la conversin adecuada. La va de acceso relativa al contexto del recurso relacionado. Modifica de forma lgica un forward global con el mismo nombre. El identificador nico de este forward Modifica de forma lgica un forward global con el mismo nombre. La clave que se utiliza para recuperar el texto de un mensaje desde un recurso de mensajes. El nombre completo de clase de la clase de excepcin. 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.
attribute
suffix
validate
property
Valor (pestaa Definir propiedades) Va de acceso (ficha Reenvos) Nombre (pestaa Reenvos) Clave (pestaa Excepciones) (Struts 1.1) Tipo (pestaa Excepciones) (Struts 1.1) Icono grande (pestaa Descripcin)
value
path
name
key
type
large-icon
13-20
Descripcin
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. 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.
Icono pequeo (pestaa Descripcin) Nombre en pantalla (pestaa Descripcin) Descripcin (pestaa Descripcin)
displayname
description
13-21
de men varan ligeramente de acuerdo con el nodo seleccionado. En la siguiente tabla se describen los comandos del men contextual:
Tabla 13.10 Men contextual de la ficha Correspondencias Action Nodo
Nodo Correspondencias Action Nodo Correspondencias Action Elemento Correspondencias Action Elemento Correspondencias Action Elemento Correspondencias Action Elemento Correspondencias Action
Comandos de men
Aade una accin
Descripcin
Abre la ficha de atributos Action, en la que se aade un elemento <action>. Abre el Asistente para Action, en el que se crea una clase Action. Aade un elemento <action>.
Aadir excepcin
Aade un reenvo
Borrar
Para abrir la ficha de atributos Controlador del Editor de configuracin de Struts, seleccione Controlador en el panel de estructura.
13-22
Nombre de atributo
bufferSize
Descripcin
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 org.apache.struts.config.ControllerConfig. 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.
Bean de configuracin
className
Content-Type:
contentType
13-23
Nombre de atributo
depurar
Descripcin
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. 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. El nombre completo de clase Java de la clase del manejador de peticiones multiparte que se utiliza con este mdulo. Por defecto es org.apache.struts.upload.CommonsMultipartRe questHandler. Asigne el valor true o yes si desea que el controlador aada cabeceras HTTP para evitar que las respuestas de este mdulo se guarden en cach. Por defecto se le asigna false. El nombre completo de clase Java de la subclase RequestProcessor que se utiliza con este mdulo. Por defecto es org.apache.struts.action.RequestProcessor. Directorio temporal de trabajo que se utiliza al procesar cargas de archivos. El directorio por defecto es el que suministra el contenedor de servlets. Una propiedad para este elemento controller. El valor de propiedad por defecto.
Versin localizada
versin localizada
maxFileSize
Clase multiparte
multipartClass
Nocache
nocache
processorClass
tempDir
property value
13-24
Para que se abra la ficha de visin general de Recursos de mensajes del Editor de configuracin de Struts, seleccione el nodo Recursos de mensajes en el panel de estructura. La ficha de visin general Recursos de mensajes muestra los elementos <message-resources>. Esta ficha se utiliza para aadir y eliminar elementos. Si desea aadir un elemento <message-resources>, pulse el botn Aadir. El elemento nuevo se aade con el nombre por defecto parameter. Para eliminar un elemento, seleccinelo y pulse Eliminar. Para modificar un elemento recin aadido o ya presente, seleccinelo y pulse Modificar.
13-25
La ficha de atributos Recursos de mensaje se utiliza para configurar los atributos de un elemento. La ficha de atributos tendr este aspecto:
Figura 13.13 Ficha de atributos Recursos de mensajes
13-26
Nombre de atributo
parameter key
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, org.apache.struts.config.MessageResourcesConfig. Nombre completo de clase Java de la subclase MessageResourcesFactory que se utiliza para este objeto de recursos de mensajes. Por defecto es org.apache.struts.util.PropertyMessageResourcesF actory. 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.
Bean de configuracin
className
Factora
factory
Null
null
13-27
ligeramente de acuerdo con el nodo seleccionado. En la siguiente tabla se describen los comandos del men contextual:
Tabla 13.13 Men contextual de la ficha Recursos de mensajes Nodo
Elemento Recursos de mensajes Elemento Recursos de mensajes Elemento Recursos de mensajes
Comandos de men
Aadir recursos de mensajes Aadir recursos de mensajes Borrar
Descripcin
Abre la ficha de atributos Recursos de mensajes, en la que se aade un elemento <message-resources>. Abre la ficha de atributos Recursos de mensajes, en la que se aade un elemento <message-resource>. Elimina el elemento seleccionado.
Con el fin de abrir la ficha de visin general Plug Ins del Editor de configuracin de Struts, seleccione el nodo Plug Ins en el panel de estructura. La ficha de visin general Plug Ins muestra los elementos <plug-ins>. Esta ficha se utiliza para aadir y eliminar elementos. 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 eliminar un elemento, seleccinelo y pulse Eliminar. Para modificar un elemento recin aadido o ya presente, seleccinelo y pulse Modificar.
13-28
La ficha de atributos Plug Ins se utiliza para configurar los atributos de un elemento. La ficha de atributos tendr este aspecto:
Figura 13.15 Ficha de atributos Plug Ins
Nombre de atributo
className
Descripcin
Nombre completo de clase Java de la clase plug-in; debe implementar org.apache.struts.action.PlugIn. Una propiedad para este elemento plugin. El valor de propiedad por defecto.
property value
13-29
Comandos de men
Aadir Plug In Aadir Plug In Borrar
Descripcin
Abre la ficha de atributos Plug In, en la que se aade un elemento <plug-in>. Abre la ficha de atributos Plug In, en la que se aade un elemento <plug-in>. Elimina el elemento seleccionado.
Tiles est agrupado con Struts 1.1. Para abrir el Editor de definiciones de Tiles, haga doble clic en el archivo tiles.xml del panel del proyecto. El editor se abre en el panel de contenido. Consulte el formato de descripcin de distribucin de Tiles en http:// jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd si desea obtener una descripcin de los elementos del archivo.
13-30
Captulo
Captulo14
Las applets
Si ya ha intentado escribir applets y distribuirlos en una pgina Web, habr comprobado que, comparados con las aplicaciones, las applets exigen que se resuelvan problemas adicionales para que funcionen. Las dificultades empiezan normalmente desde el momento que se distribuyen y comprueban las applets fuera del entorno IDE (Entorno integrado de desarrollo) y, si no se manejan de forma correcta algunas cuestiones bsicas de las applets, stas no funcionarn correctamente. Por ello es importante que sepa cmo funcionan las applets y cmo encajan todas las piezas, especialmente cuando se tenga intencin de distribuirlas y cargarlas en una sede web externa.
Consulte
"Tutorial: Creacin de un applet en Introduccin a JBuilder El tutorial de Java Writing Applets en http://java.sun.com/docs/books/ tutorial/applet/index.html La pgina web de Sun en http://java.sun.com/applets/index.html Las Java FAQ en http://www.afu.com/javafaq.html La obra de Charlie Calvert, "Java Madness, Part II: Applets en http://homepages.borland.com/ccalvert/JavaCourse/index.htm La pgina Web Java Curmudgeon de Rich Wilkman en http:// formlessvoid.com/jc/applets/ John Moores Applet design and deployment en http://www.microps.com/mps/p_appletdesign.html
Las applets
14-1
Cmo funcionan
Cmo funcionan
Las applets son programas de Java que se guardan en un servidor de Internet/intranet. Una vez transferidas a las diferentes plataformas cliente, se ejecutan en una mquina virtual (MV) de Java suministrada por el navegador instalado en el ordenador cliente. Esta distribucin y ejecucin se llevan a cabo bajo la supervisin de un administrador de seguridad. Un administrador de seguridad puede evitar que los applets realicen tareas no deseadas, como el formateo del disco duro o la apertura de conexiones a equipos no fiables. Cuando el navegador encuentra una pgina web con un applet, arranca la MV de Java y le suministra la informacin de la etiqueta <applet>. El cargador de clases interno de la MV de Java controla qu clases se necesitan para el applet. Como parte del proceso de carga de clases, los archivos de clase se ejecutan a travs de un verificador que comprueba que son vlidos y no cdigo daino. Una vez verificado, el applet se ejecuta. Por supuesto, sta es una visin simplificada de todo el proceso. Este mecanismo de transferencia es el principal valor de las applets. No obstante, deben tenerse en cuenta algunas cuestiones propias del desarrollo de un applet con el fin de garantizar una correcta implementacin.
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.
14-2
La <etiqueta> applet
archive
code (necesario)
Las applets
14-3
La <etiqueta> applet
hspace/vspace (optativo)
param (optativo)
14-4
Los navegadores
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. Un valor codebase incorrecto 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 presentado anteriormente, se utiliz 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. 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.
Las applets
14-5
Los navegadores
porque el Cargador de clases determin la necesidad de una clase o mtodo Java que no admite el JDK del navegador. Los JDK 1.2, 1.3 y 1.4 todava no son plenamente compatibles con todos los navegadores. Aunque prcticamente todas las ltimas versiones de los navegadores admiten Java, conviene que se informe sobre cul es la versin especfica de Java compatible con el navegador en el que se ejecutar el applet. Esto es importante para que tome las medidas necesarias con el fin de garantizar la compatibilidad entre la versin del JDK utilizada en el applet y el JDK admitido por 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: 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
seguridad. Lo que en un navegador se permite con una seguridad "media" podra no estar permitido en otro. El ajuste de la seguridad se realiza en el equipo cliente y cada navegador lo resuelve de forma diferente. Por ejemplo, el mecanismo para rebajar un poco la seguridad en un applet es la autenticacin. Autenticar un applet, y lograr que el navegador acepte dicha firma, le otorga ms flexibilidad al applet. El mecanismo apropiado se incluye en Java con la utilidad Javakey. Lamentablemente, los navegadores no estn obligados a utilizar este mecanismo. De hecho, algunos utilizan sus propios mecanismos de autenticacin que slo funcionan en su navegador. Otra diferencia es que los fabricantes de navegadores modifican a veces algunas funciones bsicas de Java o incluso excluyen algunas de ellas. Esto 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.
14-7
Los navegadores
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.2x, 1.3x y 1.4. Debe utilizar el que corresponda a la versin de JDK utilizada por su applet. Adems, la versin del Convertidor HTML debe coincidir con la versin del plug-in. Observe tambin que slo puede tener una versin del Plug-in en la mquina cliente. 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
14-8
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 15, Ejecucin de aplicaciones web con Java Web Start, y visite la pgina Java Web Start en http://java.sun.com/products/ javawebstart/.
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.
Las applets
14-9
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 precisin de la estructura de directorios y de las maysculas y minsculas de los nombres de archivo en el archivo recopilatorio. Consulte Distribucin de las applets en la pgina 14-14 y Distribucin de applets en JBuilder en la pgina 14-25 para ms informacin sobre creacin de archivos recopilatorios.
Importante:
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-14 para ms informacin. 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
14-10
<applet> coincide con la distribuida en el servidor, adems de encontrar posibles problemas relacionados con el navegador. Para 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 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.
Las applets
14-11
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.
14-12
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 los 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.
Las applets
14-13
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
Distribucin de applets en JBuilder en la pgina 14-25 "Depuracin de programas en Java" en Creacin de aplicaciones con JBuilder herramientajar en el Herramientas Java 2 SDK y Utilidades. Java Web Start y JBuilder en la pgina 15-5
14-14
Cuando se ejecuta el applet en un navegador, el applet necesita disponer de informacin suficiente dentro de la etiqueta <applet> del archivo HTML, de modo que el cargador del applet encuentre todas las clases, imgenes y dems archivos necesarios. ste es el "entorno real" del applet y es el nico lugar en el que el applet obtiene la informacin necesaria para encontrar los archivos. Para las primeras pruebas del applet distribuido, puede utilizar el "navegador" de prueba del JDK denominado appletviewer. Esta herramienta de lnea de comandos incluida en JDK proporciona tiles pantallas de mensajes de error y seguimiento de la pila. Como se demuestra en los siguientes pasos, elimine CLASSPATH en la sesin de prueba.
2 Abra una ventana de lnea de comandos. 3 Borre cualquier CLASSPATH que haya asignado a esa sesin. El appletviewer sabe dnde encontrar los archivos Java bsicos. 4 Cambie al directorio que contiene el archivo HTML y el archivo JAR (o archivos de clase). 5 Ejecute el appletviewer.
<jbuilder>/<jdk>/bin/appletviewer TestApplet.html
Las applets
14-15
en donde <jbuilder> es el nombre del directorio de JBuilder y <jdk> es el nombre del directorio de JDK. Por ejemplo, JBuilder9/jdk1.4/.
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. 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.
14-16
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 JDK antes de disear su applet.
1 Seleccione Archivo|Nuevo proyecto si debe crear un proyecto para su applet. Aparece el Asistente para proyectos, el cual sugiere un directorio y un nombre de proyecto por omisin. Cambie los nombres del archivo y del directorio del proyecto si quiere darles un nombre y ubicacin determinados. Pulse la opcin Generar archivo de notas del proyecto, con el fin de crear un archivo HTML para las notas del proyecto.
Nota:
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. Para ms informacin sobre las propiedades por defecto del proyecto, consulte Creacin y gestin de proyectos 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 proprondr utilizar el nombre de paquete appletproject.
Las applets
14-17
Para ms informacin sobre los paquetes, consulte Paquetes en el captulo Creacin y gestin de proyectos de Creacin de aplicaciones con JBuilder.
a Pulse Siguiente para pasar a la ficha Vas de acceso del proyecto del Asistente para proyectos. Las vas de acceso son las siguientes:
Va de salida Va de acceso a las copias de seguridad Va de acceso a archivos fuente Donde se guardan los archivos de clase y el archivo HTML del applet. Donde se guardan las copias de seguridad.
Directorio de trabajo 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.
Va de acceso a la documentacin
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
Configuracin del JDK en Creacin de aplicaciones con JBuilder "Cmo construye JBuilder las vas de acceso" en Creacin de aplicaciones con JBuilder
2 Despus, seleccione Archivo|Nuevo y pulse la pestaa Web de la galera de objetos. 3 Haga doble clic en el icono Applet de la galera de objetos, lo que abrir el Asistente para applets. a No cambie el nombre del paquete que se sugiere. Cambie el nombre de la clase del applet, si lo desea.
14-18
Gua del desarrollador de aplicaciones web
b Seleccione la clase bsica que desea ampliar en el applet: java.applet.Applet (clase de AWT) o java.swing.JApplet (clase Swing de JFC). c Si lo desea, active las dems opciones:
Generar comentarios Utiliza informacin del archivo del proyecto de cabecera como comentarios de cabecera, en la parte superior del archivo de clase applet. Puede ejecutarse autnomamente Generar mtodos estndar Crea una funcin main() que permite comprobar el applet sin necesidad de abrirla desde una pgina HTML. Crea stubs para los mtodos estndar del applet: start(), stop(), destroy(), getAppletInfo() y getParameterInfo().
d Pulse Siguiente para pasar a la ficha Parmetros del applet. En este paso, puede aadir parmetros. Partiendo de esta informacin, el asistente genera etiquetas <param> dentro de la etiqueta <applet> del archivo HTML del applet, y el cdigo de tratamiento de parmetros en el nuevo archivo java del applet. Rellene una fila por cada parmetro que desee.
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.
Escriba
Las applets
14-19
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. 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. Tenga en cuenta que los nombres tambin deben coincidir en las maysculas y las minsculas.
Variable
e Pulse Siguiente para pasar a la ficha Detalles HTML. Si no desea generar la pgina HTML automticamente, puede desactivar la opcin Generar pgina HTML. De lo contrario, deje esta opcin activada e introduzca informacin sobre la pgina, como su nombre, el del applet, el tamao del applet en la pgina y la posicin de codebase. Por defecto, el Asistente para applets guarda el archivo HTML en el directorio de salida con las clases compiladas. f Pulse Siguiente para pasar a la ficha Definir configuracin del applet.
En JBuilder Developer y Enterprise, active la opcin Crear una configuracin de ejecucin y escriba un nombre para la configuracin en el campo Nombre. Para ms informacin, consulte Creacin de una configuracin de ejecucin de applets en la pgina 10-3. En JBuilder Personal, asegrese de que est activada la opcin Sobreescribir la configuracin existente. Escriba el nombre de la configuracin en el campo Nombre.
14-20
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: 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.
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
Creacin de applets con el Asistente para applets en la pgina 14-17 "Tutorial: Creacin de un applet en Introduccin 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: 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 de 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
Las applets
14-21
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.
biblioteca para las clases de JFC y adala al proyecto (Herramientas| Configurar bibliotecas).
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 los 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. Para obtener 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: Desde el panel del proyecto, siga estos pasos:
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.
Desde el men Ejecutar de JBuilder, siga estos pasos:
Las applets
14-23
a Configure el archivo HTML del applet como el archivo ejecutable, modificando la configuracin de ejecucin. 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.
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 depurar usando JDK 1.4:
1 Descargue e instale el plugin para JDK 1.4 desde la sede web de Sun: http://java.sun.com/products/plugin/. 2 Configure los siguientes parmetros de ejecucin en el campo Java Runtime Parameters, de la pestaa Advanced, del Control Panel del Plug-in de Java:
-Xdebug -Xnoagent -Djava.compiler=NONE, -Xrunjdwp:transport=dt_socket,server=y,address=3999,suspend=n
Si desea obtener ms informacin acerca de la depuracin del plug-in, consulte: http://java.sun.com/j2se/1.4/docs/guide/plugin/developer_guide/ debugger.html#how.
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. c Modifique la configuracin de ejecucin del applet y defina las siguientes opciones de la ficha Depurar, en el cuadro de dilogo Propiedades de ejecucin: 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.
14-24
4 Asegrese de que Tipo de transporte est configurado en dt_socket y que la Direccin es 3999.
Si desea informacin sobre las opciones de depuracin remota, consulte "Depuracin remota" en Creacin de aplicaciones con JBuilder.
4 Compile el proyecto. 5 Ejecute el Convertidor HTML y convierta el archivo HTML del applet (en el directorio classes de su proyecto) al formato requerido por el Plug-in de Java. Si desea obtener ms informacin acerca del Convertidor HTML y el modo de ejecutarlo, consulte la sede web de Sun en http://java.sun.com/j2se/1.4/docs/guide/plugin/developer_guide/ html_converter.html.
Nota:
6 Inicie Netscape o Internet Explorer y abra el archivo HTML. Asegrese de que el navegador tiene activado Java. Consulte la ayuda en lnea del navegador para obtener ms informacin. 7 Vuelva a JBuilder y configure un punto de interrupcin en el archivo del applet. Comience a depurar el proyecto. El depurador debera iniciarse correctamente. Vuelva al visualizador y actualice la pgina. En JBuilder, el depurador se debera haber detenido en el punto de interrupcin del applet.
Consulte
"Utilizacin del Creador de recopilatorios" en Creacin de aplicaciones con JBuilder "Depuracin de programas en Java" en Creacin de aplicaciones con JBuilder Herramienta jar en http://java.sun.com/j2se/1.3/docs/tooldocs/ tools.html#basic Captulo 3, Las WebApps y los archivos WAR
Las applets
14-25
14-26
Captulo
Captulo15
Desarrollo web es una caracterstica de JBuilder Developer y JBuilder Enterprise JBuilder WebLogic Edition no admite Tomcat.
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. Para ms informacin sobre Web Start, vaya a la pgina de Java Web Start en http://java.sun.com/products/javawebstart/. Tambin puede consultar en: 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
15-1
15-2
PersistenceService FileContents
Si desea obtener ms informacin, consulte "JNLP API Examples" en la Developers Guide de Java Web Start en http://java.sun.com/products/ javawebstart/docs/developersguide.html#api.
1 Desplcese al directorio jdk1.4\jre de su instalacin de JBuilder. 2 Ejecute javaws-1_2-windows-i586-i.exe. 3 Acepte el acuerdo de licencia. 4 Se le solicita que designe un directorio de instalacin. El valor por defecto es el directorio que utiliz por ltima vez para Web Start o \ Program Files\Java Web Start. Si acepta el valor por defecto, tendr que modificar la definicin de bibliotecas de WebStart de JBuilder, tal y como se recoge en Modificacin de la definicin de bibliotecas Web Start de JBuilder en la pgina 15-4. Es ms sencillo cambiar el directorio de instalacin a <jbuilder>\jdk1.4\jre\javaws, en el que <jbuilder> es el directorio en el que instal JBuilder. 5 Quite la marca de la opcin Create Shortcuts For All Users si lo desea. 6 Seleccione Siguiente para crear los archivos Web Start en la ubicacin especificada. 7 El programa de instalacin le solicita que cierre su navegador de web, de modo que pueda configurarse y admita Web Start. 8 La instalacin crea un grupo de programas Web Start y aade un icono de forma optativa en el escritorio.
En Linux o Solaris, siga estos pasos:
1 Desplcese hasta el directorio jdk1.4/jre bajo el directorio de instalacin de JBuilder. 2 Descomprima el archivo recopilatorio para crear install.sh y los archivos de texto relacionados.
15-3
3 Ejecute install.sh. 4 Acepte el acuerdo de licencia. 5 Cuando se le solicite la ubicacin de su JDK, introduzca <jbuilder>/ jdk1.4/jre/javaws en el que <jbuilder> es el directorio de instalacin de JBuilder. 6 Si selecciona Siguiente, se generar un directorio javaws en la ubicacin especificada y los archivos Web Start se crean en ese directorio.
1 Seleccione Herramientas|Configurar bibliotecas y se abrir el cuadro de dilogo homnimo. 2 En el rbol de la izquierda, seleccione la biblioteca Web Start. 3 Seleccione la pestaa Clases a la derecha y pulse el botn Aadir. 4 Busque la ubicacin en la que instal javaws.jar, seleccinela y pulse Aceptar. 5 Pulse Aceptar para terminar de definir la biblioteca.
Nota:
Esta biblioteca no es necesaria en todas las aplicaciones o applets preparadas para Web Start. Slo tiene que aadir la biblioteca al proyecto cuando est utilizando la API JNLP. En este caso, debe tambin conseguir la descarga del desarrollador, con los archivos JAR y la documentacin adicional, en la sede web de Web Start en http://java.sun.com/products/ javawebstart/. Es necesario que lleve a cabo alguna configuracin adicional si est utilizando Netscape 6. Si desea obtener ms informacin, dirjase al tema Using Java Web Start Technology with Netscape 6 Web Browsers de la Java Web Start Installation Guide en http://java.sun.com/products/ javawebstart/docs/installguide.html.
Importante:
15-4
1 Configure un servidor web, por ejemplo, Tomcat 4.0, para su proyecto. Para ms informacin sobre los servidores web, consulte el Captulo 9, Configuracin del servidor web. 2 Crear una WebApp con el Asistente para aplicaciones web. Para obtener ms informacin acerca de clases, consulte el Captulo 3, Las WebApps y los archivos WAR. 3 Crear el archivo JAR de la aplicacin o el applet con el Creador de recopilatorios, utilizando las siguientes opciones en los pasos 1 y 2 del asistente. Las opciones en los pasos restantes pueden dejarse con los valores por defecto.
Tabla 15.2 Opciones del Creador de recopilatorios Opcin
Tipo de recopilatorio Applet Web Start o Aplicacin Web Start WebApp: La WebApp en la que poner el archivo JAR Name El nombre del nodo del recopilatorio. File: Archivo El nombre del archivo JAR a colocar en la estructura de directorios de la WebApp. El archivo por defecto est en el directorio raz de la WebApp.
Creador de recopilatorios
Paso 1 Paso 2
Para ms informacin sobre la creacin de archivos JAR, consulte Utilizacin del creador de recopilatorios en Creacin de aplicaciones con JBuilder.
15-5
5 Utilice el Asistente para el inicio de Web Start (Archivo|Nuevo|Pgina web) para crear el archivo JNLP y la pgina principal del applet o la aplicacin. Introduzca las siguientes opciones:
Tabla 15.3 Opciones del asistente para el inicio de Web Start Opcin
Nombre: El nombre de la aplicacin o applet Web Start. WebApp: El nombre de la WebApp que alberga al archivo JAR Archivo JAR: Nombre y va de acceso al archivo JAR. Clase principal: En el caso de los applets, la clase del applet. Para aplicaciones, la clase que contiene el mtodo main(). Crear pgina de inicio: Crea una pgina de inicio. Djela activada. Nombre del applet: Nombre del applet. Raz de documentos: Raz del applet. Para ms informacin, consulte Directorio raz en la pgina 3-6Almacenamiento de cambios en una relacin maestro-detalle. Anchura: El ancho del applet (en pxeles). Altura: La altura del applet (en pxeles). Ttulo: Ttulo de la aplicacin. Fabricante: Nombre de la empresa. Descripcin: Descripcin de la aplicacin. Permitir uso fuera de lnea: Marque para iniciar desde el escritorio.
Paso 2: Paso 2 Introduzca informacin del applet (slo se muestra con los applets)
6 Cree una configuracin de ejecucin de Servidor. Consulte Creacin de una configuracin de ejecucin del servidor en la pgina 10-5. Para URI de inicio, seleccione el archivo HTML creado por el Inicio de Web Start. Este archivo se encuentra en el directorio raz de su aplicacin web. 7 Pulse el botn derecho en el archivo HTML de la aplicacin (creado por el Asistente para el inicio de Web Start) y seleccionar Ejecutar web Nombre de la configuracin de servidor. El archivo HTML se encuentra en la carpeta Directorio raz del nodo WebApp en el panel del proyecto. 8 Copie la URL de la aplicacin que est en el campo URL, en la parte superior de la ficha Ver web. Esta opcin se puede establecer automticamente en la ficha Web del cuadro de dilogo Opciones del IDE (Herramientas|Opciones del IDE). 9 Pegue la URL en el navegador externo. 10 Pulse en el enlace a la aplicacin en la pgina web.
15-6
Cada uno de estos pasos se describe con mayor detalle en el Captulo 22, Tutorial: Ejecucin de la aplicacin de ejemplo 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 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. Para obtener ms informacin, consulte JNLP File Syntax en la Developers Guide de Java Web Start en http://java.sun.com/products/ javawebstart/docs/developersguide.html.
15-7
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, ahora Java Web Start 1.2 incluye un servlet que le permite generar automticamente la base de cdigo apropiada. Consulte http://java.sun.com/products/javawebstart/1.2/docs/ downloadservletguide.html para ms informacin. 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 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 15.1 Vista web de Java Web Start
Si usted est en un navegador externo, ver un enlace a su aplicacin (si ya 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 15.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.
15-8
Captulo
Captulo16
Desarrollo web es una caracterstica de JBuilder Developer y JBuilder Enterprise JBuilder WebLogic Edition no admite Tomcat.
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. Para trucos y sugerencias sobre depurar pginas JSP, consulte Depurar pginas JSP en la pgina 6-14.
1 Utilice el Asistente para WebApp (Archivo|Nuevo y, a continuacin, seleccione la pestaa Web de la galera de objetos) para crear una aplicacin web. As se crea el directorio raz de la aplicacin web. 2 Abra el Asistente para JSP (Archivo|Nuevo y, a continuacin, seleccione la pestaa Web de la galera de objetos). 3 En la ficha Declarar JSP y componentes del asistente, introduzca el nombre del directorio, una barra y el nombre de la JSP en el campo Nombre, por ejemplo:
webappsubdir/jsp2
No introduzca espacios en el nombre del directorio. El asistente crea el subdirectorio y coloca en l la JSP. Para ver la JSP en el panel del proyecto de JBuilder, pulse el nodo WebApp y, a continuacin, el nodo Directorio raz. El subdirectorio aparece como una subcarpeta del Directorio raz. Pulse la subcarpeta para mostrar la JSP en esa carpeta.
16-1
1 Abra el cuadro de dilogo Opciones del IDE (Herramientas|Opciones del IDE). 2 Seleccione el botn Personalizar a la derecha de la lista desplegable Configuracin de teclado. 3 En el Editor de configuracin de teclado, desplcese hacia abajo hasta la seccin Sangrado. 4 Pulse Formatear cdigo y seleccione Cambiar. 5 En el cuadro de dilogo Nueva tecla abreviada para Formatear cdigo, compruebe que est seleccionado Tipo de suceso tecla pulsada. Coloque el cursor en el campo Introduzca cualquier combinacin de teclas y pulse F2. Haga clic en Aceptar y pulse S cuando JBuilder le pregunte si desea volver a asignar la tecla. 6 Para volver a asignar la accin Sangrado, pulse Sangrado y seleccione Cambiar. 7 En la lista desplegable Cdigo de tecla, dirjase a VK_TAB y seleccinela. Pulse Aceptar para cerrar el cuadro de dilogo y seleccione S cuando JBuilder le pregunte si desea volver a asignar la tecla. 8 Pulse dos veces sobre Aceptar para cerrar los cuadros de dilogo.
Abra un archivo JSP en el editor. El tabulador ahora tabula. La tecla F2 formatea automticamente las lneas de cdigo seleccionadas.
16-2
1 Seleccione Ejecutar|Configuraciones y elija la configuracin de ejecucin para su WebApp. Seleccione Modificar. 2 En el cuadro de dilogo Propiedades de configuracin de ejecucin, seleccione Servicio JSP/Servlet en el rbol de la parte inferior izquierda del cuadro de dilogo. 3 Introduzca el nmero de puerto que debe monitorizar el servidor web en el campo Nmero de puerto. 4 Seleccione la opcin Buscar puerto disponible con el fin de indicar a JBuilder que elija otro puerto si el especificado se encuentra en uso. (La bsqueda de puerto se efecta solamente la primera vez que se solicita la ejecucin web.) Resulta til seleccionar esta opcin cuando se ejecuta ms de un servlet o una JSP, pues de otra forma se podra recibir un mensaje 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 Opciones del IDE cuando un proceso ajeno a la web utiliza el puerto.
16-3
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.
6 Realice otros cambios necesarios en el archivo de configuracin del servidor. 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.
1 Coloque el archivo XML especfico del servidor, por ejemplo, jbossweb.xml, en la carpeta WEB-INF de la WebApp. 2 En JBuilder, utilice el botn Aadir archivos/paquetes/clases para aadir el archivo XML al proyecto.
JBuilder incluye automticamente todos los archivos .xml en el directorio WEB-INF del archivo WAR; al crear el archivo WAR, se incluir el archivo aadido.
16-4
1 Coloque sus archivos de recursos en una carpeta fuera de la carpeta src de nombre resources. (Asegrese de que ha hecho referencia a los archivos correctamente desde su cdigo) 2 En JBuilder, utilice el botn Aadir archivos/paquetes/clases para aadir el archivo de recursos a su proyecto. 3 Pulse el botn derecho del ratn en el archivo, en el panel de proyecto, y seleccione Propiedades. 4 En la ficha Recursos de la pestaa Generar, desplcese hasta el tipo de archivo que desee aadir. Pulse el botn Copiar de la parte superior de la ficha y el botn Copiar del lateral de la ficha. Haga clic en Aceptar para cerrar el cuadro de dilogo. 5 Pulse el botn derecho del ratn en el nodo WebApp del panel del proyecto y, a continuacin, seleccione Limpiar. 6 Seleccione Proyecto|Generar de nuevo para generar el proyecto. Si la WebApp no se genera automticamente al Ejecutar Make o Generar el proyecto, pulse el botn derecho en la WebApp y seleccione Ejecutar Make. 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 Pulse el botn derecho del ratn en la WebApp, en el panel del proyecto, y seleccione Propiedades. 2 En la ficha WebApp del cuadro de dilogo Propiedades, pulse la lista desplegable Generar. Seleccione la opcin Slo al generar la WebApp.
16-5
Tambin puede elegir Nunca y volver a configurar la opcin cuando est listo para distribuir su aplicacin web. Si la opcin Slo al generar la WebApp est seleccionada, pulse el botn derecho en la WebApp en el panel del proyecto y seleccione Ejecutar Make o Generar de nuevo para crear el archivo WAR.
Nota:
Tambin puede configurar esta opcin en la primera ficha del Asistente para WebApp al crear la WebApp.
1 Seleccione Herramientas|Opciones del IDE para abrir el cuadro de dilogo Opciones del IDE y, a continuacin, pulse la pestaa Web. 2 Seleccione la opcin Copiar URL de depuracin o ejecucin Web al portapapeles. Esta opcin copia automticamente la URL generada en el portapapeles, para que pueda pegarla en el campo de direccin de su navegador externo. 3 En la seccin Opciones de vista web del cuadro de dilogo, seleccione la opcin No usar vista web, ejecutar en proceso separado. Esta opcin inicia un navegador web externo.
Despus de configurar estas opciones, ejecute su aplicacin web como lo hara normalmente. Cuando el servidor haya servido su aplicacin web, tal y como lo indiquen los mensajes de salida en el panel de mensajes, abra un navegador externo, como Netscape o Internet Explorer. Pegue la URL que se copi automticamente en el portapapeles en el campo de direccin. Su aplicacin web se ejecutar en ese navegador externo. Tenga en cuenta que faltan los paneles Ver web y Ver cdigo fuente web de JBuilder.
16-6
Captulo
Captulo17
Desarrollo web es una caracterstica de JBuilder Developer y JBuilder Enterprise Tomcat no se suministra con JBuilder WebLogic Edition
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 una aplicacin web necesita. Si desea obtener ms informacin acerca de los servlets, lea los siguientes captulos en la Gua del desarrollador de aplicaciones Web: Captulo 4, Los servlets Captulo 5, Los servlets en JBuilder Para ms informacin sobre las aplicaciones web, lea el Captulo 3, Las WebApps 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 acerca de capturas, consulte Procedimientos iniciales con Java"Captura de detalles". Si desea obtener ms informacin sobre el IDE de JBuilder, consulte "El entorno de JBuilder" en Introduccin a JBuilder.
17-1
En el apartado Tutoriales de Sugerencias de JBuilder se facilita informacin sobre la presentacin y la impresin de tutoriales. El apartado 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 para 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. 3 Asegrese de que la opcin Generar archivo de notas del proyecto se encuentra seleccionada. 4 Pulse Finalizar para cerrar el asistente para Proyectos y crear el proyecto. No se necesita hacer ningn cambio en los valores por defecto en los Pasos 2 y 3 del asistente.
El archivo de proyecto TextFileImportExport.jpx y el archivo HTML del proyecto se muestran en el panel de proyecto. En el prximo paso, seleccionar el servidor de su proyecto.
En este paso, se seleccionar el servidor Tomcat 4.0 como servidor de este proyecto.
1 Seleccione Proyecto|Propiedades de proyecto. Aparece el cuadro de dilogo Propiedades de proyecto. 2 Pulse la pestaa Servidor. 3 Asegrese de que el botn de radio Servidor nico para todos los servicios del proyecto est seleccionado. 4 Asegrese de que Tomcat 4.0 est seleccionado en la lista desplegable de servidores. 5 Haga clic en Aceptar para cerrar el cuadro de dilogo.
17-2
En el siguiente paso, crear una WebApp para su servlet. Si bien no distribuir este proyecto, en las condiciones habituales de la vida real siempre debera crear una WebApp.
1 Para mostrar la galera de objetos, seleccione Archivo|Nuevo. Haga clic en la pestaa Web y seleccione Aplicacin web. Pulse Aceptar.
Se abre el Asistente para aplicaciones web.
2 Escriba simpleservletwebapp en el campo Nombre. El campo Directorio se rellena mientras escribe. 3 Cambie el valor de la opcin Generar WAR a Nunca. 4 No seleccione ningn marco de trabajo JSP/Servlet.
El Asistente para aplicaciones web debe tener el siguiente aspecto:
17-3
Para obtener ms informacin acerca de clases, consulte el Captulo 3, Las WebApps y los archivos WAR.
1 Para mostrar la galera de objetos, seleccione Archivo|Nuevo. 2 Haga clic en la pestaa Web y seleccione Servlet. Pulse Aceptar. Aparece la ficha Seleccione el nombre y el tipo de servlet del Asistente para servlets. 3 Acepte los valores por defecto. La ficha Seleccione el nombre y el tipo de servlet tiene este aspecto:
4 Haga clic en Siguiente para ir a la ficha Modificar detalles del servlet estndar.
17-4
5 Una vez en dicha ficha, asegrese de que en la lista desplegable Servlet genera contenido de tipo est seleccionado HTML. En la seccin Implementar mtodos, seleccione el mtodo doPost(). Asegrese de que est seleccionado el mtodo doGet(). Seleccione la opcin Generar archivo HTML con el formulario. La ficha Modificar detalles del servlet estndar debera tener este aspecto:
6 Haga clic en Siguiente para ir a la ficha Introduzca los parmetros de la peticin del servlet. 7 Pulse el botn Aadir parmetro con el fin de crear un parmetro de servlet. Este parmetro contiene el nombre introducido en el campo de entrada de texto del servlet.
La siguiente tabla describe los campos y valores a utilizar por este tutorial. Introduzca los valores que estn en la columna Valor de la tabla siguiente.
Tabla 17.1 Nombre de parmetro
Nombre*
Descripcin
El parmetro utilizado en la etiqueta <form> del archivo HTML. Contiene la Cadena que introduce el usuario en el campo de entrada de texto del formulario. El tipo de la variable en lenguaje Java. (Es la opcin por defecto y ya est seleccionada.) El comentario que se aade al cdigo fuente del servlet.
Tipo*
String
Desc
Nombre de usuario
17-5
Descripcin
El nombre de la variable usada en Servlet1.java que contiene el nombre del usuario que se le ha pasado mediante el archivo HTML. El valor por defecto de la variable userName.
User!
Cuando haya acabado, la ficha Introduzca los parmetros de la peticin del servlet del asistente debe tener este aspecto:
8 Pulse Siguiente para ir a la ficha Introduzca los detalles de webapp, en la que se especifican un nombre y un mapeo para el servlet. 9 Acepte el nombre y el patrn de URL por defecto. La ficha Introduzca los detalles de webapp tiene este aspecto:
17-6
10 Pulse Siguiente para pasar a la ficha Definir configuracin del servlet. 11 Marque la opcin Crear una configuracin de ejecucin. El Asistente para servlets crea automticamente una configuracin de ejecucin llamada Servlet1. Esta configuracin se utiliza para ejecutar el proyecto en la web en el IDE de JBuilder. Para ms informacin, consulte Creacin de una configuracin de ejecucin en la pgina 10-2. La ficha Definir la configuracin del servlet tiene este aspecto:
17-7
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. (Est en el nodo Directorio raz del nodo simpleservletwebapp). 3 Seleccione el comando Ejecutar web con "Servlet1".
Nota:
Tambin es posible ejecutar los servlets directamente si hace clic en el archivo .java con el botn derecho del ratn, en el panel de 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 servlet en ejecucin aparece en la Vista web. Tiene el siguiente aspecto:
17-8
Nota:
Puede que sea necesario pulsar el botn Actualizar de la parte superior de Ver web para que aparezca completamente el archivo HTML copiado. 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 17.2 Servlet en ejecucin tras enviar el nombre
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. Para un servlet ms avanzado que conecte a una base de datos, consulte el Captulo 18, Tutorial: Creacin de un servlet que actualiza un libro de visitas.
Tutorial: Creacin de un servlet simple
17-9
17-10
Captulo
Captulo18
Desarrollo web es una caracterstica de JBuilder Developer y JBuilder Enterprise Tomcat no se suministra con JBuilder WebLogic Edition
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: 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. Para ms informacin sobre servlets, lea los siguientes captulos: Captulo 4, Los servlets Captulo 5, Los servlets en JBuilder Para empezar, tambin puede trabajar con un servlet Hola A Todos menos complejo, consulte el Captulo 17, Tutorial: Creacin de un servlet simple. Para ms informacin acerca de la funcionalidad de la base de datos de JBuilder, consulte la Gua del desarrollador de aplicaciones de bases de datos. Para ms informacin sobre JDataStore, consulte la Gua del desarrollador de JDataStore.
Tutorial: Creacin de un servlet que actualiza un libro de visitas
18-1
Las clases necesarias para este tutorial se encuentran en el directorio samples/WebApps/GuestbookServlet de la instalacin de JBuilder. En el apartado Tutoriales de Sugerencias de JBuilder se facilita informacin sobre la presentacin y la impresin de tutoriales. El apartado 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 para 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. 3 Asegrese de que la opcin Generar archivo de notas del proyecto se encuentra seleccionada. 4 Pulse Finalizar para cerrar el asistente para Proyectos y crear el proyecto. No se necesita hacer ningn cambio en los valores por defecto en los Pasos 2 y 3 del asistente.
El archivo de proyecto TextFileImportExport.jpx y el archivo HTML del proyecto se muestran en el panel de proyecto.
En este paso, debe comprobar que el servidor Tomcat 4.0 est seleccionado como servidor de este proyecto.
1 Seleccione Proyecto|Propiedades de proyecto. Se abre el cuadro de dilogo de Propiedades de proyecto. 2 Pulse la pestaa Servidor. 3 Asegrese de que el botn de radio Servidor nico para todos los servicios del proyecto est seleccionado.
18-2
4 Asegrese de que Tomcat 4.0 est seleccionado en la lista desplegable de servidores. La pestaa Servidor presenta un aspecto similar al siguiente:
1 Para mostrar la galera de objetos, seleccione Archivo|Nuevo. Haga clic en la pestaa Web y seleccione Aplicacin web. Pulse Aceptar.
Se abre el Asistente para aplicaciones web.
2 Escriba guestbook en el campo Nombre. El campo Directorio se rellena automticamente mientras escribe. 3 Cambie el valor de la opcin Generar WAR a Nunca. No seleccione ningn marco de trabajo JSP/Servlet.
18-3
Para obtener ms informacin sobre WebApps, consulte el Captulo 3, Las WebApps y los archivos WAR.
18-4
1 Para mostrar la galera de objetos, seleccione Archivo|Nuevo. Haga clic en la pestaa Web y seleccione Servlet. Pulse Aceptar.
Aparece la ficha Seleccione el nombre y el tipo de servlet del Asistente para servlets.
2 Asigne el nombre guestbookservlet al Paquete. Cambie el campo Clase a FormServlet. 3 Asegrese de que no estn seleccionadas las opciones Generar comentarios de cabecera y Modelo de hilo nico. Compruebe que guestbook est seleccionado en la lista desplegable de la WebApp. (Acaba de crear esta WebApp en el paso previo). Deje seleccionada la opcin Servlet estndar.
La ficha Seleccione el nombre y el tipo de servlet del asistente debe tener el siguiente aspecto:
4 Haga clic en Siguiente para ir a la ficha Modificar detalles del servlet estndar del asistente. 5 Asegrese de que la opcin Servlet genera contenido de tipo tiene el valor HTML y que est seleccionado el mtodo doGet(). Desactive la opcin Generar archivo HTML con el formulario.
18-5
Cuando haya finalizado, la ficha Modificar detalles del servlet estndar del asistente debera tener este aspecto:
6 Pulse Siguiente dos veces para ir a la ficha Introduzca los detalles de webapp del asistente. (No es necesario que introduzca parmetros en la ficha del asistente Introduzca los parmetros de la peticin del servlet.) 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 de webapp debera tener este aspecto:
8 Pulse Finalizar para crear el servlet. No es necesario que configure otras opciones. 9 Seleccione Archivo|Guardar todo o pulse en la barra de herramientas para guardar su trabajo.
18-6
Gua del desarrollador de aplicaciones web
1 Para mostrar la galera de objetos, seleccione Archivo|Nuevo. Haga clic en la pestaa Web y seleccione Servlet. Pulse Aceptar.
Aparece la ficha Seleccione el nombre y el tipo de servlet del Asistente para servlets.
2 Asigne el nombre guestbookservlet al Paquete. Cambie el campo Clase a DBServlet. 3 Asegrese de que no estn seleccionadas las opciones Generar comentarios de cabecera y Modelo de hilo nico. Debe seleccionar la guestbook en la lista desplegable de la WebApp. Deje seleccionada la opcin Servlet estndar.
La ficha Seleccione el nombre y el tipo de servlet del asistente debe tener el siguiente aspecto:
4 Haga clic en Siguiente para ir a la ficha Modificar detalles del servlet estndar del asistente. 5 Asegrese de que en Servlet genera contenido de tipo figura HTML. Elimine la seleccin del mtodo doGet(). En su lugar, seleccione el mtodo doPost(). No seleccione la opcin Generar archivo HTML con el formulario.
18-7
Cuando termine, ste es el aspecto que debe tener la ficha Modificar detalles del servlet estndar:
6 Pulse Siguiente dos veces para ir a la ficha Introduzca los detalles de webapp del asistente. (No es necesario que introduzca parmetros en la ficha del asistente Introduzca los parmetros de la peticin del servlet.) 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 de webapp debera tener este aspecto:
8 Pulse Finalizar para crear el servlet. No es necesario que configure otras opciones. 9 Seleccione Archivo|Guardar todo o pulse en la barra de herramientas para guardar su trabajo.
18-8
Gua del desarrollador de aplicaciones web
Con el fin de crear el mdulo de datos que conecte con el JDataStore del libro de visitas y realice las tareas de actualizacin:
1 Para mostrar la galera de objetos, seleccione Archivo|Nuevo. En la ficha General, seleccione Mdulo de datos y pulse Aceptar.
Se abre el Asistente para mdulos de datos.
2 Asigne el nombre guestbookservlet al Paquete. Mantenga el nombre de Clase por defecto de DataModule1. 3 Desactive las opciones Llamar al Modelador de datos y Generar cabeceras.
Cuando acabe, el Asistente para mdulos de datos tendr este aspecto:
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. 6 Seleccione Proyecto|Ejecutar Make del proyecto "GuestbookServlet.jpx" para compilarlo y crear los archivos de clase.
18-9
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. 3 Pulse el icono QueryDataSet Despus haga clic en el rbol de componentes.
Cuando haya acabado, el rbol de componentes debe tener este aspecto:
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. 3 En la ficha General del cuadro de dilogo Conexin, verifique que en el Controlador se lee com.borland.datastore.jdbc.DataStoreDriver. 4 Pulse el botn puntos suspensivos a la derecha del campo URL para mostrar el cuadro de dilogo Crear URL para el DataStore. Este cuadro de dilogo se utiliza para elegir el JDataStore al que hay que conectarse. 5 Pulse la opcin Base de datos DataStore local.
18-10
6 Seleccione el botn puntos suspensivos para poder buscar el JDataStore del libro de visitas (guestbook.jds) en el directorio samples/WebApps/ guestbook de su instalacin de JBuilder. Pulse Abrir para seleccionar el JDataStore. 7 Pulse Aceptar para cerrar el cuadro de dilogo Crear URL para el DataStore. 8 En la ficha General del cuadro de dilogo Conexin, escriba user en el campo Nombre de usuario.
El cuadro de dilogo Conexin tendr este aspecto:
9 Pulse el botn Probar conexin con el fin de comprobar la conexin con el JDataStore del libro de visitas. Si se realiza la conexin, aparecer la palabra Correcto a la derecha del botn. Si la conexin no se realiza, un mensaje de error intentar explicar por qu ha fallado. 10 Pulse Aceptar para cerrar el cuadro de dilogo Conexin.
JBuilder aade el mtodo database1.setConnection() al mtodo jbInit() del mdulo de datos. Para acceder a los datos de Guestbook, debe definir una consulta. Para ms informacin acerca de las consultas, consulte Consultas en bases de datos en Desarrollo de aplicaciones de base de datos. Para crear la consulta en JBuilder:
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.
18-11
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:
7 Pulse el botn Probar consulta con el fin de comprobarla. Si se realiza la conexin, aparecer la palabra Correcto a la derecha del botn. Si la consulta no puede ejecutarse, un mensaje de error intentar explicar por qu fall. 8 Pulse Aceptar para cerrar el cuadro de dilogo Consulta.
JBuilder aade el mtodo queryDataSet1.setQuery() al mtodo jbInit().
Nota:
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.
18-12
En este paso, se crear una conexin de datos con DBServlet. La conexin permite que el servlet pase datos al mdulo de datos.
1 Haga doble clic en DBServlet.java en el panel del proyecto con el fin de abrirla en el editor. 2 Seleccione Proyecto|Ejecutar Make del proyecto GuestbookServlet.jpx para compilarlo. 3 Seleccione Asistentes|Usar mdulo de datos con el fin de que se abra el Asistente para usar mdulos de datos. 4 Mantenga el nombre por defecto para la clase DataModule. Cambie el Nombre del campo por dm. Deje la declaracin de instancia configurada en la opcin Compartir instancia (esttica) del mdulo de datos. 5 Pulse Aceptar para cerrar el asistente. El asistente aade la siguiente lnea de cdigo a la declaracin de clase DBServlet:
DataModule1 dm;
18-13
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). 2 Busque el mtodo doGet() en la parte superior del archivo.
Sugerencia:
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>Enter your name and comment in the input 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:
Es posible copiar y pegar directamente el cdigo en el editor, o copiarlo del ejemplo que se encuentra en el directorio samples/WebApps/ GuestbookServlet de la instalacin de JBuilder.
18-14
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>");
4 Inserte las siguientes lneas de cdigo, manteniendo el cursor en el lugar del que acaba de eliminar cdigo:
String userName = request.getParameter("UserName"); String userComment = request.getParameter(UserComment); dm.insertNewRow(userName, userComment); dm.saveNewRow(); doGet(request, response); Nota:
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. Es posible copiar y pegar directamente el cdigo en el editor, o copiarlo del ejemplo que se encuentra en el directorio samples/WebApps/ GuestbookServlet de la instalacin de JBuilder. 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: 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.
Sugerencia:
18-15
Es posible copiar y pegar directamente el cdigo en el editor, o copiarlo del ejemplo que se encuentra en el directorio samples/WebApps/ GuestbookServlet de la instalacin de JBuilder.
2 Aada los paquetes siguientes a la lista de sentencias import de la parte superior del archivo. Esto le asegura que el servlet se compilar.
import com.borland.dx.dataset.*; import com.borland.dx.sql.dataset.*; import com.borland.datastore.*; Sugerencia:
Puede utilizar MemberInsight (Ctrl+H) con el objeto de que le ayude a completar las sentencias import.
18-16
Nota:
No tenga en cuenta los errores que vea en la carpeta Errores del panel de estructura.
La dos lneas siguientes de cdigo configuran la salida como HTML e inician la pgina HTML.
out.println("<html>"); out.println("<body>");
La siguiente lnea de cdigo imprime el nombre de la taba JDataStore, SIGNATURES, en la parte superior de la pgina HTML. El cdigo utiliza el mtodo queryDataSet1.getTableName() para obtener el nombre de la tabla.
out.println("<h2>" + dm.getQueryDataSet1().getTableName() + "</h2>");
La siguiente lnea llama al mtodo queryDataSet1.getColumns() para recoger el nombre de las columnas, y las devuelve como una matriz.
Column[] columns = dm.getQueryDataSet1().getColumns();
La lnea siguiente crea la tabla con la etiqueta <table> y crea la primera fila de la tabla.
out.println ("<table border = 1><tr>");
Entonces, el cdigo utiliza un bucle for para pasar a travs de los nombres de las columnas de la matriz de columnas, recupera los ttulos de las columnas y muestra cada uno en una fila de la tabla. En este tutorial, se presentan solamente la segunda y la tercera columna del JDataStore. No se presenta la primera columna, el nmero interno de fila.
for (int i = 1; i < columns.length; i++) { out.print ("<th>" + columns[i].getCaption() + "</th>"); }
18-17
El bucle while pasa a travs del JDataStore y presenta los datos de la segunda y de la tercera columna de la tabla. La primera vez que pasa, presenta los datos de la primera fila. A continuacin, el mtodo next() sita el cursor en la siguiente fila del JDataStore. El bucle while contina mostrando 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>");
1 Haga doble clic en DataModule1.java en el panel del proyecto con el fin de abrirlo en el editor. (Puede que ya est abierto en el Diseador de interfaces de usuario; si es as, pulse la pestaa Fuente de la parte inferior del panel de contenido.) 2 Busque el mtodo jbInit() mediante el comando Buscar|Buscar. Aada el cdigo siguiente antes de la llave de cierre del mtodo:
queryDataSet1.open();
Este cdigo abre el conjunto de datos. Debe estar abierto para poder insertar o guardar datos. En el mdulo de datos, el conjunto de datos se abre justo despus del cdigo que conecta con la base de datos y configura la consulta.
18-18
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); 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.
4 Aada el siguiente mtodo para guardar la nueva fila en el conjunto de datos tras el mtodo insertNewRow():
public void saveNewRow() { try { database1.saveChanges(queryDataSet1); } catch (DataSetException ex) { ex.printStackTrace(); } }
Antes de compilar y ejecutar, necesita comprobar las dependencias de la WebApp y modificar la configuracin de ejecucin. Para comprobar las dependencias de la WebApp:
1 Haga clic con el botn derecho sobre la WebApp guestbook en el panel del proyecto y seleccione Propiedades.
18-19
1 Seleccione Ejecutar|Configuraciones con el fin de mostrar la ficha Ejecutar del cuadro de dilogo Propiedades de proyecto. Elija la configuracin FormServlet y haga clic en Modificar con el fin de que aparezca el cuadro de dilogo Propiedades de 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. 4 Seleccione /inputform en el rbol de directorio Correspondencia de servlets, en el centro del cuadro de dilogo. El campo URI en la parte superior del cuadro de dilogo ahora contiene: /guestbook/inputform. Este es el nombre de la WebApp que cre en el Asistente para aplicaciones web, seguido por el nombre del servlet.
El cuadro de dilogo Escriba o seleccione el URI que se va a lanzar tendr este aspecto:
18-20
5 Pulse Aceptar para cerrar el cuadro de dilogo Escriba o seleccione el URI que se va a lanzar. El cuadro de dilogo Propiedades de configuracin de ejecucin tendr este aspecto:
6 Pulse Aceptar dos veces ms con el fin de cerrar los cuadros de dilogo Propiedades de configuracin de ejecucin y Propiedades de proyecto. 7 Pulse el icono Guardar todo de la barra de herramientas para guardar su trabajo.
Para compilar y ejecutar el proyecto:
18-21
3 El formulario de entrada de FormServlet se presenta en la vista web. El URI es /guestbook/inputform/ y coincide con el seleccionado en el cuadro de dilogo URI de inicio.
4 Introduzca MyName en el campo Name y MyComment en el campo Comment. 5 Pulse el botn Submit (Enviar).
La tabla SIGNATURES del Libro de visitas se convierte en HTML. MyName y MyComment aparecen en la ltima fila de la tabla. Observe que el URI ha cambiado a http://localhost:8080/guestbook/table, indicando que el programa est ejecutando DBServlet.
Para ms informacin sobre las URL y los servlets, consulte Cmo los URL ejecutan los servlets en la pgina 10-10.
6 Puede pulsar la flecha de retroceso a la izquierda del campo Ubicacin del URL con el objeto de volver al formulario de entrada e introducir otro nombre y otro comentario.
18-22
7 Si desea detener el servidor web, pulse el botn Terminar el programa directamente encima de la pestaa del servidor web. Se debe detener el servidor web antes de compilar y ejecutar el servlet de nuevo, despus de efectuar cambios.
Nota:
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.
18-23
18-24
Captulo
Captulo19
Desarrollo web es una caracterstica de JBuilder Developer y JBuilder Enterprise Tomcat no se suministra con JBuilder WebLogic Edition
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. Para ms informacin sobre Tomcat, consultar 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 acerca de capturas, consulte Procedimientos iniciales con Java"Captura de detalles". Si desea obtener ms informacin sobre el IDE de JBuilder, consulte "El entorno de JBuilder" en Introduccin a JBuilder. En el apartado Tutoriales de Sugerencias de JBuilder se facilita informacin sobre la presentacin y la impresin de tutoriales. El
19-1
apartado 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 para 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.
En este paso, se seleccionar el servidor Tomcat 4.0 como servidor de este proyecto.
1 Seleccione Proyecto|Propiedades de proyecto. Aparece el cuadro de dilogo Propiedades de proyecto. 2 Pulse la pestaa Servidor. 3 Asegrese de que el botn de radio Servidor nico para todos los servicios del proyecto est seleccionado. 4 Asegrese de que Tomcat 4.0 est seleccionado en la lista desplegable de servidores. 5 Pulse Aceptar.
19-2
1 Seleccione Archivo|Nuevo. 2 Haga clic en la pestaa Web. Seleccione Aplicacin web. 3 Pulse Aceptar. Aparece el Asistente para aplicaciones Web. 4 Escriba un nombre para la WebApp, como jspwebapp. El campo Directorio se rellena automticamente con el mismo nombre. 5 Deje la opcin por defecto para Generar WAR, si bien no va a necesitar un archivo WAR ya que, probablemente, no desear distribuir la aplicacin de este tutorial. 6 No seleccione ningn marco de trabajo JSP/Servlet ni especifique una URI de inicio.
El asistente debe tener un aspecto semejante a:
19-3
1 Seleccione Archivo|Nuevo. 2 Haga clic en la pestaa Web. Seleccione Pgina JavaServer. 3 Pulse Aceptar. Se abre el Asistente para JSP. 4 En el campo Nombre, escriba JSPWithCounter. Este es el nombre de la JSP. 5 Active Generar Bean de ejemplo y desactive Generar pgina de error. El asistente tendr un aspecto parecido a:
6 Pulse Siguiente. 7 Marque Generar formulario de envo. El asistente tendr un aspecto parecido a:
19-4
8 Pulse Finalizar para aceptar todos los valores por defecto de las restantes fichas del asistente.
Se aade un archivo JSPWithCounter.jsp al directorio raz de su WebApp. Expanda el nodo del Directorio raz en el panel del proyecto con el fin de verlo. Tambin se ha aadido a su proyecto un bean de ejemplo JSPWithCounterBean.java. 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".Creacin de aplicaciones con JBuilder Para ms informacin acerca de la creacin de una configuracin de ejecucin con un asistente, consulte Creacin de una configuracin de ejecucin con los asistentes en la pgina 10-2.
1 Haga doble clic en JspWithCountingBeanBean.java en el panel del proyecto. 2 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; } }
19-5
1 Haga doble clic en JSPWithCounter.jsp en el panel del proyecto con el fin de abrirlo en el editor. Recuerde que est en el nodo del Directorio raz de la WebApp. 2 Modifique el archivo generado como sigue, aadiendo el cdigo en negrita. Puede utilizar CodeInsight y resaltar el cdigo fuente JSP para orientarse.
<html> <head> <title> JspWithCounter </title> </head> <jsp:useBean id="jSPWithCounterBeanId" scope="session" class="jsptutorial.JSPWithCounterBean" /> <jsp:setProperty name="jSPWithCounterBeanId" property="*" /> <body> <h1> JSP generada por JBuilder </h1> <form method="post"> <br>Enter new value: <input name="sample"><br> <br><br> <input type="submit" name="Submit" value="Submit"> <input type="reset" value="Reset"> <br> Value of Bean property is: <jsp:getProperty name="JSPWithCounterBeanId" property="sample" /> <p>Esta pgina ha sido visitada: <%= jSPWithCounterBeanId.count() %> veces.</ p> </form> </body> </html>
Con el fin de poder ejecutar la JSP, las propiedades de ejecucin del proyecto deben configurarse correctamente en Proyecto|Propiedades de proyecto|Ejecutar. En este tutorial, las propiedades de ejecucin fueron ya fijadas por el Asistente para JSP, de modo que pueda seguir adelante y ejecutar la JSP.
1 Haga clic con el botn derecho en JSPWithCounter.jsp en el Directorio raz del nodo WebApp. Elija Ejecutar web mediante "JSPWithCounter" en el men.
Nota:
El comando Ejecutar web incluye el nombre de una configuracin de ejecucin, en este caso, "JSPWithCounter". 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".Creacin de aplicaciones con JBuilder El proyecto se compila y se ejecuta. Los errores de compilacin se muestran en el panel de mensajes. Si hay errores, se refieren al tema Depuracin web del servlet o de la JSP en la pgina 10-18. 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
19-7
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:
1 Escriba algo de texto en el campo correspondiente. 2 Pulse el botn Submit (Enviar). 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). Para ms informacin acerca de la definicin de las propiedades de ejecucin para su JSP, consulte Creacin de una configuracin de ejecucin del servidor en la pgina 10-5. JBuilder utiliza el puerto 8080 por defecto. Si este puerto est en uso, JBuilder buscar por defecto un puerto disponible.
La ficha Vista web del panel de contenido muestra el archivo JSP despus de que lo procese el motor JSP. En este caso el motor de la JSP es Tomcat. El panel Ver web no se comporta de la misma forma que el panel de visualizacin. En el panel Vista web puede haber un retraso entre el momento en que se modifica el archivo JSP y cuando el cambio se muestra en l. Si desea ver los cambios mas recientes en un archivo JSP, seleccione el botn Actualizar de la barra de herramientas de la vista, al igual que hara en cualquier navegador web. Si se estuviera depurando la JSP, se podra pulsar F9 para devolver la pantalla a la vista web.
19-8
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. Para informacin general sobre distribucin de JSP, consulte el Captulo 11, 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.
19-9
19-10
Captulo
Captulo20
Desarrollo web es una caracterstica de JBuilder Developer y JBuilder Enterprise Tomcat no se suministra con JBuilder WebLogic Edition
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. Se puede encontrar una versin acabada de la aplicacin en <JBuilder>/samples/ WebApps/guestbook. Este tutorial presupone que est familiarizado con Java y los servlets de Java, con JBuilder IDE y con JDataStore. Para obtener ms informacin acerca de capturas, consulte Procedimientos iniciales con Java"Captura de detalles". Para ms informacin sobre Java, consulte el Captulo 4, Los servlets.. Para ms informacin sobre el IDE de JBuilder, consulte El entorno de JBuilder en Introduccin a JBuilder. Para obtener ms informacin acerca de JDataStore, consulte Gua del desarrollador de JDataStore. En el apartado Tutoriales de Sugerencias de JBuilder se facilita informacin sobre la presentacin y la impresin de tutoriales. El apartado 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 para 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.
20-1
En este paso, se seleccionar el servidor Tomcat 4.0 como servidor de este proyecto.
1 Seleccione Proyecto|Propiedades de proyecto. Aparece el cuadro de dilogo Propiedades de proyecto. 2 Pulse la pestaa Servidor. 3 Asegrese de que el botn de radio Servidor nico para todos los servicios del proyecto est seleccionado. 4 Asegrese de que Tomcat 4.0 est seleccionado en la lista desplegable de servidores. 5 Pulse Aceptar.
1 Seleccione Archivo|Nuevo. 2 Haga clic en la pestaa Web de la galera de objetos. Seleccione Aplicacin web. 3 Pulse Aceptar. Aparece el Asistente para aplicaciones Web. 4 Escriba un nombre para la WebApp, como guestbookapp. El campo Directorio se rellena automticamente mientras escribe.
20-2
5 Deje la opcin por defecto para Generar WAR, si bien no va a necesitar un archivo WAR ya que, probablemente, no desear distribuir la aplicacin de este tutorial. 6 Elija el marco de trabajo InternetBeans Express 1.1 JSP/Servlet. No especifique una URI de inicio. 7 El asistente debe tener un aspecto semejante a:
8 Pulse Aceptar.
En el panel del proyecto se presenta un nuevo nodo WebApp, guestbookapp. Expanda el nodo para ver el directorio raz y los nodos de los descriptores de distribucin.
Figura 20.1 Nodo WebApp en el panel del proyecto
1 Seleccione Archivo|Nuevo. 2 Haga clic en la pestaa Web de la galera de objetos. Seleccione Servlet. 3 Pulse Aceptar. Aparece el Asistente para servlets. 4 Introduzca el nombre de la clase: SignatureServlet
20-3
5 Seleccione guestbookapp para la WebApp, si no lo est ya. 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(). 9 Asegrese de que Generar archivo HTML con el formulario no est marcada. El asistente debe tener un aspecto semejante a:
10 Pulse el botn Finalizar. Se aade un archivo SignatureServlet.java a su proyecto. 11 Pulse el botn Guardar todo de la barra de herramientas para guardar su trabajo.
20-4
En este paso, utilizar el Asistente para mdulo de datos con el fin de crear el que albergar la lgica de conexin de la base de datos.
1 Seleccione Archivo|Nuevo. 2 Seleccione Mdulo de datos en la ficha General de la galera de objetos. 3 Pulse Aceptar. Se abre el Asistente para mdulos de datos.
4 No modifique la configuracin por defecto de los campos Paquete y Nombre de clase. 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. 9 En el campo URL, busque o escriba la va de acceso al archivo guestbook.jds. Se encuentra en la carpeta de <JBuilder>/samples/WebApps/ guestbook. Pulse Aceptar para cerrar el cuadro de dilogo Crear URL para el DataStore. 10 Pulse Aceptar de nuevo. La nueva URL para la base de datos se aade a la lista de URL para bases de datos, en la parte inferior izquierda del Modelador de datos y se selecciona. 11 Haga doble clic sobre la URL y escriba usuario en el cuadro de dilogo de conexin. No es necesaria una contrasea. Haga clic en Aceptar para cerrar el cuadro de dilogo.
20-5
12 Abra la lista de tablas pulsando el nodo Tablas, del rbol Columnas disponibles. 13 Seleccione la tabla SIGNATURES pulsando sobre ella. 14 Pulse el botn Copiar todo. El Modelador de datos presenta un aspecto similar al siguiente:
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. 17 Pulse el botn Guardar todo de la barra de herramientas de JBuilder para guardar su trabajo.
1 Pulse el botn Aadir archivos/paquetes/clases en la barra de herramientas del proyecto. 2 Pulse el botn Proyecto en la pestaa Explorador del cuadro de dilogo Aadir al <proyecto>. 3 Seleccione el directorio para la WebApp (guestbookapp) 4 Escriba AdvancedApp en el campo Nombre. 5 Pulse Aceptar.
20-6
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. 9 Escriba el siguiente cdigo HTML en el archivo nuevo. Tambin se puede copiar y pegar desde este tutorial.
<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 obtener mas informacin sobre cmo InternetBeans Express utiliza la tablas, consulte Generacin de tablas en la pgina 7-6.
20-7
1 Seleccione Proyecto|Ejecutar Make "guestbooktutorial.jpx". Esto genera el proyecto de manera que se crea el archivo DataModule1.class. 2 Abra el archivo SignatureServlet.java en el editor. 3 Seleccione Asistentes|Usar mdulo de datos. Se abre el Asistente para usar mdulos de datos. La clase DataModule1 ya est seleccionada. 4 Asegrese de que est seleccionado Compartir instancia (esttica) del mdulo de datos. El asistente debe tener un aspecto semejante a:
20-8
5 Pulse Aceptar. Se aade una lnea de cdigo al mtodo jbInit() para asociar el DataModule con el servlet.
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. 5 Configure como sigue las propiedades del IxPageProducer:
Propiedad
dataModule htmlFile
Valor
dataModule11 gb1.html - Configure esta propiedad desplazndose hasta la ubicacin del archivo. Esto rellena automticamente la propiedad rootPath.
6 Seleccione el icono IxControl en la paleta. Suelte tres IxControl dentro del servlet pulsando en el diseador.
Sugerencia:
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.
Valor
Firmas Nombre
20-9
Propiedad
pageProducer controlName
Valor
ixPageProducer1 Nombre
Valor
Firmas Comentario ixPageProducer1 Comentario
9 Seleccione el icono IxTable de la paleta. Suelte una IxTable dentro del servlet pulsando en el diseador. 10 Configure las propiedades de ixTable1 como sigue:
Propiedad
pageProducer dataSet elementId
Valor
ixPageProducer1 Firmas guestbooktable
Valor
ixPageProducer1 submit
12 Haga clic en la pestaa Sucesos del Inspector de propiedades. La IU presenta un aspecto similar al siguiente:
20-10
13 Pulse una vez en la propiedad submitPerformed en el inspector a fin de asignar al evento submitPerformed() el valor ixControl3_submitPerformed. Esto aade un monitor de eventos a ixControl3. Pulse Intro para generar el mtodo ixControl3_submitPerformed(). Esto abre el editor y sita el cursor en el nuevo mtodo. 14 Haga clic en el botn Guardar todo en la barra de herramientas.
Ahora est completo el mtodo doGet(). A menudo todo lo que necesita hacer aqu es llamar al mtodo servletGet() de la IxPageProducer.
5 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);
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.
6 Luego necesita rellenar el cuerpo del mtodo ixControl3_submitPerformed(). Este mtodo es llamado por el mtodo servletPost(). Introduzca el cdigo siguiente en el cuerpo del mtodo ixControl3_submitPerformed():
DataModule1 dm = (DataModule1) ixPageProducer1.getSessionDataModule(e.getSession()); dm.getSignatures().post(); dm.getSignatures().saveChanges();
Este cdigo obtiene una instancia de DataModule por cada sesin y enva y guarda la entrada del usuario en el JDataStore. Advierta que esta
20-11
1 Haga clic con el botn derecho del ratn en el nodo guestbookapp del panel de proyecto. 2 Seleccione Propiedades en el men contextual de la WebApp. 3 Seleccione la pestaa Dependencias del cuadro de dilogo de Propiedades. 4 Asegrese de que las dependencias de las siguientes bibliotecas estn configuradas como Incluir todo:
Data Express Servidor de JDataStore InternetBeans Express dbSwing
5 Pulse Aceptar.
1 Haga clic con el botn derecho en el archivo SignatureServlet.java en el panel del proyecto. 2 Elija Ejecutar web mediante "SignatureServlet" en el men. El servlet se ejecuta en el IDE de JBuilder. 3 Pruebe el servlet borrando los valores existentes en los campos Nombre y Comentario. Introduzca su nombre y su comentario y pulse Enviar.
20-12
4 Detenga el servlet pulsando el botn Terminar el programa en la pestaa Servidor web del panel de mensajes.
20-13
20-14
Captulo
Captulo21
Desarrollo web es una caracterstica de JBuilder Developer y JBuilder Enterprise Tomcat no se suministra con JBuilder WebLogic Edition
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. Puede encontrar una versin acabada de la aplicacin creada en <JBuilder>/samples/WebApps/jspinternetbeans. Este tutorial presupone que est familiarizado con Java y las Pginas JavaServer (JSP), con el JBuilder IDE y con JDataStore. Para obtener ms informacin acerca de capturas, consulte Procedimientos iniciales con Java"Captura de detalles". Para ms informacin sobre Java, consulte el Captulo 6, Desarrollo de Pginas JavaServer. Para ms informacin sobre el IDE de JBuilder, consulte El entorno de JBuilder en Introduccin a JBuilder. Para obtener ms informacin acerca de capturas, consulte Gua del desarrollador de JDataStore. En el apartado Tutoriales de Sugerencias de JBuilder se facilita informacin sobre la presentacin y la impresin de tutoriales. El apartado 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 para 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.
21-1
En este paso, se seleccionar el servidor Tomcat 4.0 como servidor de este proyecto.
1 Seleccione Proyecto|Propiedades de proyecto. Aparece el cuadro de dilogo Propiedades de proyecto. 2 Pulse la pestaa Servidor. 3 Asegrese de que el botn de radio Servidor nico para todos los servicios del proyecto est seleccionado. 4 Asegrese de que Tomcat 4.0 est seleccionado en la lista desplegable de servidores. 5 Pulse Aceptar.
1 Seleccione Nuevo del men Archivo. 2 Haga clic en la pestaa Web de la galera de objetos. Seleccione Aplicacin web. 3 Pulse Aceptar. Aparece el Asistente para aplicaciones Web. 4 Escriba un nombre para la WebApp, como jspixwebapp. El campo Directorio se rellena automticamente mientras escribe.
21-2
5 Deje la opcin por defecto para Generar WAR, si bien no va a necesitar un archivo WAR ya que, probablemente, no desear distribuir la aplicacin de este tutorial. 6 Elija el marco de trabajo InternetBeans Express 1.1 JSP/Servlet. No especifique una URI de inicio.
El asistente debe tener un aspecto semejante a:
7 Pulse Aceptar.
En el panel de proyecto se presenta un nuevo nodo WebApp, jspixwebapp. Expanda el nodo para ver el directorio raz y los nodos de los descriptores de distribucin.
Figura 21.1 Nodo WebApp en el panel del proyecto
1 Seleccione Archivo|Nuevo. 2 Haga clic en la pestaa Web. Seleccione Pgina JavaServer. 3 Pulse Aceptar. Se abre el Asistente para JSP. 4 En el campo nombre, escriba uno para la JSP: GuestbookJSP
21-3
6 Pulse Siguiente. 7 Desactive Generar formulario de envo. 8 Marque internetbeans en InternetBeans Express 1.1, en el rbol Bibliotecas de etiquetas.
El asistente para JSP presenta un aspecto similar al siguiente:
9 Pulse el botn Finalizar. Se aade un archivo GuestbookJSP.jsp al nodo del Directorio raz de su WebApp en el panel del proyecto. Expanda el nodo del Directorio raz para ver el archivo. La JSP contiene la directiva page y la directiva taglib, necesarias para utilizar la biblioteca de etiquetas de InternetBeans. El asistente para JSP se ocupa de los pasos necesarios para aadir la biblioteca InternetBeans al proyecto, segn se
21-4
describe en Utilizacin de InternetBeans Express con JSP en la pgina 7-6. 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".Creacin de aplicaciones con JBuilder Para ms informacin acerca de la creacin de una configuracin de ejecucin con un asistente, consulte Creacin de una configuracin de ejecucin con los asistentes en la pgina 10-2.
1 Abra el archivo GuestbookJSP.jsp en el editor, si no lo est ya. Se encuentra en el nodo del Directorio raz de la WebApp, en el panel del proyecto. 2 Cambie el contenido de la etiqueta <title> de modo que diga JSP/ InternetBeans Tutorial. 3 Cambie el contenido de la etiqueta <h1> de modo que diga Sign the Guestbook 4 Escriba el siguiente cdigo HTML en el cuerpo del archivo, debajo de la etiqueta </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" name="Name" size="50"> <p>Enter your comment:</p> <input type="text" name="Comment" size="100"> <p> <input type="submit" name="submit" value="Submit"></p> </form>
21-5
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. Cambie el valor del atributo url de la etiqueta database para que apunte hacia el JDataStore guestbook.jds en <JBuilder>\samples\WebApps\guestbook.
<h1> Firme el libro de visitas </h1> <ix:database id="database1" driver="com.borland.datastore.jdbc.DataStoreDriver" url="jdbc:borland:dslocal:\jbuilder\\samples\\WebApps\\guestbook\\guestbook.jds" username="user"> <table id="guestbooktable" align="CENTER" cellspacing="0" border="1" cellpadding="7">
21-6
Observe que est anidando la etiqueta query dentro de la etiqueta database. Esto se hace con el fin de que el atributo database de la etiqueta query no deba especificarse, dado que est implcito. Tambin hace que el cdigo sea ms elegante.
21-7
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.
Observe que se est englobando cada una de las etiquetas input de texto HTML en una etiqueta control de InternetBeans. Esto permite que
21-8
IxControls de InternetBeans entiendan implcitamente a qu campos de introduccin de texto estn sustituyendo. Haga clic en el botn Guardar todo en la barra de herramientas.
Observe que se est englobando la etiqueta input de envo HTML en una etiqueta submit de InternetBeans. Esto permite que IxSubmitButton de InternetBeans entienda implcitamente a qu botn de envo est sustituyendo. Haga clic en el botn Guardar todo en la barra de herramientas.
21-9
El mtodo submitPerformed() est contenido dentro de una etiqueta de declaracin de una JSP. Esta declaracin del mtodo no tiene que estar anidada dentro de la etiqueta submit de InternetBeans, pero es una forma elegante de escribir el cdigo. El parmetro que se pasa a este mtodo es PageContext. Este es un objeto que contiene informacin de la pgina, que existe para cada JSP. El mtodo recupera un DataSet de DataExpress hallando el atributo page que se corresponde con el conjunto de datos "signatures". Luego enva la entrada del usuario al conjunto de datos y guarda los cambios en el conjunto de datos. Haga clic en el botn Guardar todo en la barra de herramientas.
Este ltimo fragmento de cdigo Java puede parecer un poco confuso, ya que parece que no est encerrado en una declaracin de mtodo. Realmente lo est. Cuando se compila la JSP esto formar parte del mtodo service() en el servlet generado (que no se puede ver, pero que sigue estando ah). Cualquier lnea de cdigo dentro de una etiqueta de un scriplet de una JSP pasar a formar parte del mtodo service(). Este fragmento de cdigo inserta una lnea en el conjunto de datos justo antes de que se muestre el formulario. El formulario presenta valores vacos. Entonces, cuando se enve el formulario se escribirn los datos en la fila vaca antes de llamar al mtodo submitPerformed(). Haga clic en el botn Guardar todo en la barra de herramientas.
21-10
1 Seleccione Propiedades de proyecto del men Proyecto. 2 Pulse sobre la pestaa 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 Pulse con el botn derecho del ratn el nodo jspixwebapp del panel del proyecto y seleccione Propiedades en el men contextual. 8 Seleccione la pestaa Dependencias del cuadro de dilogo de Propiedades. 9 Asegrese de que las dependencias de las siguientes bibliotecas estn configuradas como Incluir todo:
InternetBeans Express dbSwing Data Express Servidor de JDataStore
10 Si alguna de estas bibliotecas no est configurada como Incluir todo, seleccinela y marque el botn de radio Incluir siempre todas las clases y recursos. El texto junto al nombre de la biblioteca cambia a Incluir todo. Una vez que todas las dependencias de bibliotecas estn correctamente configuradas, pulse Aceptar.
Haga clic en el botn Guardar todo en la barra de herramientas.
21-11
1 Asegrese de que el nodo del Directorio raz de la WebApp est ampliado en el panel de proyecto. 2 Haga clic con el botn derecho en GuestbookJSP.jsp en el panel del proyecto. 3 Elija Ejecutar web mediante "GuestbookJSP" en el men. Se inicia Tomcat y la JSP se ejecuta dentro del IDE de JBuilder.
Nota:
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".Creacin de aplicaciones con JBuilder
4 Seleccione la URL que aparece en la parte superior de la Vista web y cpiela. Pguela en el campo URL en el navegador con todas las prestaciones que prefiera y vaya a la URL.
Nota:
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.
5 Escriba su nombre y sus comentarios en la JSP en ejecucin en el navegador externo. 6 Pulse el botn Enviar del navegador externo. Su nombre y su comentario se aaden a la tabla (y se almacenan en el JDataStore).
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 los quse tiene que hacer con la JSP. Si desea obtener ms informacin sobre la distribucin de beans, consulte el Captulo 11, Distribucin de aplicaciones web.
21-12
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. Para las instrucciones de instalacin, consulte Instalacin de Java Web Start en la pgina 15-3. Para ms informacin acerca de JBuilder y Java Web Start, consulte el Captulo 15, Ejecucin de aplicaciones web con Java Web Start. En el apartado Tutoriales de Sugerencias de JBuilder se facilita informacin sobre la presentacin y la impresin de tutoriales. El apartado 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 para 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.
22-1
Primero, abra el proyecto en JBuilder y fije las opciones del IDE de la vista web. Para ello:
1 Seleccione Archivo|Abrir proyecto con el fin de presentar el cuadro de dilogo homnimo. 2 En el cuadro de dilogo Abrir proyecto, pulse el botn Ejemplos. Busque Swing/CheckBoxControl/. Haga clic en CheckBoxControl.jpx y pulse Aceptar para abrir el proyecto. 3 Seleccione Herramientas|Opciones del IDE con el fin de abrir el cuadro de dilogo homnimo. En la ficha Web, compruebe que est seleccionada la opcin Copiar URL de depuracin o ejecucin web al portapapeles. Esta opcin copia la URL generada por una ejecucin web en el portapapeles, de manera que pueda pegarse directamente en un visualizador externo.
La ficha Web del cuadro de dilogo Opciones del IDE tiene este aspecto:
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. Abra la pestaa Servidores. 6 Elija Tomcat 4.0 en la lista desplegable Servidor nico para todos los servicios del proyecto.
22-2
7 Compruebe que slo est seleccionado el servicio JSP/Servlet en la lista Servicios, a la izquierda del cuadro de dilogo.
La ficha Servidor, con el servicio JSP/Servlet seleccionado, tiene la siguiente apariencia:
1 Para mostrar la galera de objetos, seleccione Archivo|Nuevo. En la ficha Web, seleccione Aplicacin web y pulse Aceptar.
Se abre el Asistente para aplicaciones web.
Tutorial: Ejecucin de la aplicacin de ejemplo CheckBoxControl con Java Web Start
22-3
2 Introduzca checkboxcontrol en el campo Nombre. El campo Directorio se rellena mientras escribe. 3 Asigne el valor Nunca a la opcin Generar WAR. No seleccione ningn marco de trabajo JSP/Servlet.
El asistente para aplicaciones web tendr este aspecto:
1 Compile el proyecto. Seleccione Proyecto|Ejecutar Make del proyecto CheckBoxControl.jpr. 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. 4 En el paso 2, compruebe que est seleccionado checkboxcontrol en la lista desplegable de la ficha Seleccione aplicacin web.
22-4
6 Pulse Finalizar para crear el archivo y cerrar el asistente. No tiene que cambiar ninguna opcin en los pasos restantes del asistente. 7 Elija Archivo|Guardar todo. 8 Seleccione Proyecto|Ejecutar Make del proyecto CheckBoxControl.jpx para crear el archivo JAR.
El asistente crea un nodo de recopilatorio y lo presenta en el panel de proyecto. El recopilatorio ser generado cada vez que se genere el proyecto.
1 Para mostrar la galera de objetos, seleccione Archivo|Nuevo. 2 Seleccione Inicio de Web Start y pulse Aceptar en la ficha Web.
22-5
4 Compruebe que checkboxcontrol est seleccionado en la lista desplegable de WebApp. 5 Pulse el botn de puntos suspensivos (...) situado a la derecha del campo Archivo JAR. Esto abre el cuadro de dilogo Seleccionar JAR para Web Start en donde se escoge el nombre del archivo JAR generado con el Creador de recopilatorios. Este es CheckBoxControl.jar. Est en el directorio CheckBoxControl/webapp. Seleccione el archivo JAR en el cuadro de dilogo Seleccionar JAR para Web Start y pulse Aceptar para cerrarlo. 6 Pulse el botn puntos suspensivos (...) situado a la derecha del campo Clase principal si ste no est ya relleno. Aparece el cuadro de dilogo Seleccionar clase principal. Abra la pestaa Examinar. Despliegue la carpeta com en la parte superior del cuadro de dilogo para seleccionar com.borland.samples.swing.checkboxcontrol.Application1. Haga clic en Aceptar para cerrar el cuadro de dilogo. 7 Asegrese de que la opcin Crear pgina de inicio est seleccionada en el Asistente para el inicio de Web Start. Esta opcin crea el archivo HTML que inicia la aplicacin.
Advertencia
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:
22-6
8 Pulse Siguiente. 9 Introduzca CheckBox Sample en el campo Ttulo. Introduzca Borland en el campo Distribuidor y Web Start Sample en el campo Descripcin. Asegrese de que no est seleccionada la opcin Permitir uso fuera de lnea.
La ficha Introduzca informacin descriptiva del Asistente para el inicio de Web Start tiene este aspecto:
Nota:
22-7
1 Elija Ejecutar|Configuraciones. Se abre la ficha Ejecutar del cuadro de dilogo Propiedades de proyecto. 2 Pulse el botn Nuevo con el fin de abrir el cuadro de dilogo Propiedades de configuracin de ejecucin. 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. 6 Pulse el botn de puntos suspensivos (...) junto al cuadro de dilogo URI de inicio para abrir el cuadro de dilogo Escriba o seleccione el URI que se va a lanzar. 7 En la lista Archivo de la parte izquierda del cuadro de dilogo, elija CheckBoxControlLauncher.html. Observe que este archivo se encuentra en el directorio raz de la aplicacin web. El cuadro de dilogo Escriba o seleccione el URI que se va a lanzar tendr este aspecto:
22-8
10 Pulse Aceptar dos veces para cerrar los cuadros de dilogo Propiedades de configuracin de ejecucin y Propiedades de proyecto.
Para ms informacin, consulte Creacin de una configuracin de ejecucin del servidor en la pgina 10-5.
Este paso indica cmo iniciar su aplicacin con Web Start. Para ello:
1 Pulse el botn derecho en CheckBoxControlLauncher.html en el panel del proyecto y seleccione Ejecutar web mediante CheckBoxControl Server. (Se encuentra en la carpeta Directorio raz del nodo WebApp del panel del proyecto).
JBuilder compila los archivos e inicia el servidor web Tomcat. A causa de que el archivo JNLP especifica que esta aplicacin debe ejecutarse
22-9
con Web Start, JBuilder muestra un mensaje de advertencia en la vista web. La vista web tiene este aspecto:
2 Site el cursor en el campo Ubicacin del visualizador externo y presione Ctrl+V. Esta accin copia la URL de Ejecutar web desde el portapapeles. JBuilder copi esta URL en el portapapeles basndose en su seleccin en la ficha Web del cuadro de dilogo Opciones del IDE. (Esta opcin se seleccion en un paso anterior de este tutorial). Pulse Intro para ir a la URL.
Importante:
Si su navegador externo es Netscape 6, es necesario que lleve a cabo una configuracin adicional. Si desea obtener ms informacin, dirjase a Using Java Web Start Technology with Netscape 6 Web Browsers de Java Web Start Installation Guide en http://java.sun.com/products/ javawebstart/docs/installguide.html. Su visualizador web muestra la pgina de inicio de la aplicacin, CheckBoxControlLauncher.html. La pgina web contiene un enlace a la aplicacin.
22-10
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 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.
4 Elija Archivo|Salir y se cerrar la aplicacin. Si desea detener el servidor web, pulse el botn Terminar el programa en la pestaa Servidor web.
En este tutorial, ha aprendido a configurar un proyecto para una aplicacin Web Start, utilizar el Asistente para el inicio de Web Start para crear la pgina de inicio y el archivo JNLP de la aplicacin y, adems, iniciar la aplicacin con Web Start.
22-11
22-12
ndice
A
aadir archivos para una WebApp 3-6 API de servlet 4-4 API JSP directiva page 7-6 directiva taglib 7-6 aplicaciones distribuidas contra aplicaciones web web 3-1 probar en un navegador externo 16-6 sugerencias 16-1 aplicaciones web Consulte tambin WebApp applets 14-1 asistente 14-17 bibliotecas de terceros 14-13 comprobar 14-14 depuracin en un navegador 14-24 depurar 14-23 descripcin general 2-1, 2-7, 14-2 ejecutar 14-21 ejecutar applets JDK 1.1.x en JBuilder 14-22 ejecutar JDK 1.2 14-23 implementacin de Java en navegadores 14-6 incluir en un archivo WAR 3-19 Java Web Start 14-7 Mquina virtual de Java 14-2 navegadores 14-5, 14-7 Plug-in de Java 14-7 recopilar 14-10 sugerencias 14-9 utilizar paquetes 14-10 AppletTestbed 14-22 depurar applets 14-23 appletviewer 14-22 depurar applets 14-23 archivo de formulario HTML 5-6 archivo internetbeans.tld 7-6 formato 7-10 tabla de etiquetas JSP 7-9 archivo recopilatorio distribucin a un servidor web 11-1 archivo struts-config.xml editar 13-1 archivo WAR (recopilatorio web) aadir applets 3-19 aadir archivos JAR 3-19 compresin 3-9 crear 3-9 definicin de 3-17 directorios a incluir 3-10 distribuir 11-1 generar 3-3 herramientas 3-2 nombre de configuracin de 3-9 propiedades 3-17 relacin con la WebApp 3-17 tipos de archivo incluidos 3-17 ubicacin de la configuracin de 3-9 ver contenido de 3-17 archivo web.xml 3-1, 11-4 aadir restricciones de seguridad 12-2 aadir un filtro 12-2 aadir un servlet 12-2 aadir una coleccin de recursos web 12-2 asignar pgina de error 12-11 asignar Tipo de MIME 12-10 bibliotecas de etiquetas 12-9 creacin de 3-7 editar 3-2, 12-1 entradas de entorno 12-11 etiquetas de asignacin de filtro 12-4 etiquetas de monitor 12-6 etiquetas de servlet 12-7 etiquetas taglib 12-9 ms informacin 11-5 mtodo de autentificacin 12-14 referencias de entorno de recurso 12-13 Referencias de la factora de conexin del gestor de recursos 12-12 referencias EJB 12-12 referencias EJB locales 12-12 Restricciones de seguridad 12-14 y Struts 8-20 y struts-config.xml 8-20 archivos JAR atributo archive de applets 14-3 autenticar 14-12 incluir en archivo WAR 3-19 archivos ZIP atributo archive de applets 14-3 asistentes Aplicaciones web 3-3 aplicaciones web compatibilidad con Struts 8-9 Applet 14-17 conversin de Struts 8-17
ndice
I-1
JSP compatibilidad con Struts 8-10 e InternetBeans Express 7-6 JSP (Pgina JavaServer) 6-11, 7-6 JSP a partir de ActionForm 8-15 para Action 8-13 para ActionForm 8-11 servlet 5-1 atributos archive, etiqueta de applets 14-3 code, etiqueta de applets 14-3 codebase, etiqueta de applets 14-3 height, etiqueta de applets 14-3 hspace, etiqueta de applets 14-3 name archivo internetbeans.tld 7-10 etiqueta de applets 14-3 required, archivo internetbeans.tld 7-10 rtexprvalue, archivo internetbeans.tld 7-10 tagclass, archivo internetbeans.tld 7-10 vspace, etiqueta de applets 14-3 width, etiqueta de applets 14-3 autenticar applets 14-12 autentificacin para una WebApp 12-14
grupos de noticias 1-6 informar sobre errores 1-7 recursos en lnea 1-6 World Wide Web 1-6
C
cambiar cdigo durante la depuracin 6-16 CGI (Interfaz de enlace comn) en comparacin con los servlets 2-2 clases Action 8-1, 8-13 y struts-config.xml 8-13 ActionForm 8-1, 8-11, 8-15 y struts-config.xml 8-11 AtionServlet 8-1 database utilizar en un servlet 7-3 utilizar en una JSP 7-9 IxCheckBox 7-2 IxComboBox 7-2 IxControl 7-2 utilizar en un servlet 7-3 utilizar en una JSP 7-9 IxHidden 7-2 IxImage 7-2 utilizar en una JSP 7-9 IxImageButton 7-2 IxLink 7-2 IxListBox 7-2 IxPageProducer 7-2 mtodo servletGet() 7-3 mtodo servletPost() 7-5 utilizar en un servlet 7-3 IxPassword 7-2 IxPushButton 7-2 IxRadioButton 7-2 IxSpan 7-2 IxSubmitButton 7-2 utilizar en un servlet 7-5 utilizar en una JSP 7-9 IxTable 7-2 generar tablas 7-6 utilizar en una JSP 7-9 IxTextArea 7-2 IxTextField 7-2 QueryDataSet utilizar en un servlet 7-3 utilizar en una JSP 7-9 Clases (ficha) de propiedades de WebApp 3-12 cdigo modificar durante la depuracin 6-16
B
biblioteca de etiquetas InternetBeans Express etiqueta control 7-9 etiqueta database 7-9 etiqueta image 7-9 etiqueta query 7-9 etiqueta submit 7-9 etiqueta table 7-9 bibliotecas de etiquetas configurar 6-6 importar en JSP 8-10 InternetBeans Express 7-6 JSP 6-4 Struts 8-1, 8-8 utilizar en webapp 8-9 y JBuilder 8-8 bibliotecas de etiquetas JSP configurar 6-6 InternetBeans Express 7-6 bibliotecas de terceros applets 14-13 Borland asistencia a desarrolladores 1-5 tcnica 1-5 contacto 1-5 correo electrnico 1-7
I-2
coleccin de recursos web aadir a archivo web.xml 12-2 comandos Depurar web 6-14, 10-1 Ejecutar web 6-14, 10-1, 10-15, 10-16, 10-17 comandos web configuracin del IDE para 9-7 compilar applets 14-21 JSP 10-14 servlets 10-14 una JSP 6-14 comprobar applets 14-14 configuracin del servidor web 9-1 configuraciones de ejecucin applets 10-2 de applets 10-2 crear con asistentes 10-2 crear mediante Ejecutar| Configuraciones 10-3 de JSP 10-2 configurar archivos ejecutables 10-5 crear con asistentes 10-2 crear mediante Ejecutar| Configuraciones 10-5 de servlets 5-11, 10-2 configurar archivos ejecutables 10-5 crear con asistentes 10-2 crear mediante Ejecutar| Configuraciones 10-5 JSP 10-2 servlets 5-11, 10-2 configurar bibliotecas 6-6 convenciones de la documentacin 1-3, 1-4 cuadros de dilogo Configurar bibliotecas 6-6
D
DataExpress utilizar en un servlet 7-1, 7-3 utilizar en una JSP 7-1, 7-6 denominacin de servlets 5-8, 10-10 depuracin del cdigo fuente de las JSP 10-18 depuracin remota JSP 6-17 depuracin web JSP 10-18 servlets 10-18 depurar applets 14-23 applets en un navegador 14-24
configuracin de ejecucin para depurar JSP 6-15 de forma remota con JSP 6-17 JSP 6-14 JSP con nombres iguales 6-17 JSP e Intercambio inteligente 6-16 JSP en subdirectorio de WebApp 6-16 JSP y directorio Tomcat del proyecto 6-16 modificar cdigo 6-16 WebApp 10-18 depurar JSP por servidor 6-14 Depurar web (comando) 10-1 JSP 6-14 desarrollo web proceso bsico 2-10 descriptores de distribucin 3-1 aplicacin web 11-4 archivo web.xml 3-7, 12-1 editar 3-2 Editor DD de WebApp 12-1 Editor de configuracin de Struts 13-1 ms informacin 11-5 nodo de WebApp 3-7 para una WebApp 3-5 propios del fabricante para una WebApp 11-5 struts-config.xml 13-1 directorio raz de una WebApp 3-5 directorio WEB-INF 3-5 directorios de una WebApp 3-10 distincin entre maysculas y minsculas en applets y etiquetas APPLET 14-10 distribucin de applets 14-9, 14-14 en recopilatorios 14-10 distribuir aplicaciones 15-1 applets 14-9, 14-14 archivo recopilatorio 11-1 archivo WAR 11-1 archivos recopilatorios de applets 14-10 JSP 11-3 por tipo de archivo 3-17 servlets 4-10, 11-2 WebApp 11-1 documentacin convenciones 1-3 convenciones de plataformas 1-4
ndice
I-3
E
Editor DD de WebApp 12-1 aadir restricciones de seguridad 12-2 aadir un filtro 12-2 aadir un servlet 12-2 aadir una coleccin de recursos web 12-2 fichas Bibliotecas de etiquetas 12-9 Conexin 12-14 Descriptor de distribucin para la WebApp 12-3 Entradas de entorno 12-11 Filtros 12-4 Monitores 12-6 Pginas de error 12-11 Referencias de la factora de conexin del gestor de recursos 12-12 Referencias del entorno de recursos 12-13 Referencias EJB 12-12 Referencias EJB locales 12-12 Seguridad 12-14 Servlets 12-7 Tipo de MIME 12-10 men contextual 12-2 Editor de configuracin de Struts 8-20 fichas Controlador 13-22 Correspondencias Action 13-17 Excepciones globales 13-10 Form Beans 13-6 Fuentes de datos 13-3 Plug Ins 13-28 Recursos de mensajes 13-25 Reenvos globales 13-14 men contextual 13-3 Editor de definiciones de Tiles 13-30 ejecutar applets 14-21 ejecutar web JSP 10-15 servlets 10-15 Ejecutar web (comando) 10-1, 10-15, 10-16, 10-17 JSP 6-14 elementos action-mappings struts-config.xml 13-17 controller struts-config.xml 13-22 data-source struts-config.xml 13-3 form-beans struts-config.xml 13-6 global-exceptions
struts-config.xml 13-10 global-forwards struts-config.xml 13-14 message-resources struts-config.xml 13-25 plug-ins struts-config.xml 13-28 enlazados a datos JSP 7-1 servlets 5-14, 7-1 espacio de contencin seguridad de las aplicaciones Web Start 15-2 seguridad de las applets 14-11 etiqueta database, InternetBeans Express 7-9 etiqueta param, applets 14-3 etiquetas control, InternetBeans Express 7-9 de applets 14-2 atributos 14-3 errores 14-4 image, InternetBeans Express 7-9 query, InternetBeans Express 7-9 submit, InternetBeans Express 7-9 table, InternetBeans Express 7-9 etiquetas JSP 6-3 comment 6-3 declaration 6-3 directiva page 6-3 directiva taglib 6-3 expression 6-3 getProperty 6-3 scriptlet 6-3 setProperty 6-3 useBean 6-3
F
fichas Bibliotecas de etiquetas en Editor DD de WebApp 12-9 Conexin en Editor DD de WebApp 12-14 Controlador Editor de configuracin de Struts 13-22 Correspondencias Action Editor de configuracin de Struts 13-17 Dependencias de propiedades de WebApp 3-14 Descriptor de propiedades de WebApp 3-15 Descriptor de distribucin para la WebApp 12-3 Distribucin de propiedades de WebApp 3-16
I-4
Entradas de entorno en Editor DD de WebApp 12-11 Excepciones globales Editor de configuracin de Struts 13-10 Filtros en Editor DD de WebApp 12-4 Form Beans Editor de configuracin de Struts 13-6 Fuentes de datos Editor de configuracin de Struts 13-3 Monitores en Editor DD de WebApp 12-6 Pginas de error en Editor DD de WebApp 12-11 Plug Ins Editor de configuracin de Struts 13-28 Recursos de mensajes Editor de configuracin de Struts 13-25 Reenvos globales Editor de configuracin de Struts 13-14 Referencias de la factora de conexin del gestor de recursos en Editor DD de WebApp 12-12 Referencias del entorno de recursos en Editor DD de WebApp 12-13 Referencias EJB en Editor DD de WebApp 12-12 Referencias EJB locales en Editor DD de WebApp 12-12 Seguridad en Editor DD de WebApp 12-14 Servlets en Editor DD de WebApp 12-7 Tipo de MIME en Editor DD de WebApp 12-10 filtro aadir a archivo web.xml 12-2 fuentes Convenciones empleadas en la documentacin de JBuilder 1-3
I
importar aplicacin web 3-3 archivos para una WebApp 3-6 iniciar JSP 10-5 servlets 10-5 URI 10-5 iniciar URI 10-2, 10-5 instalar Web Start 15-3, 15-5 Intercambio inteligente 6-16 Interfaz de enlace comn (CGI) en comparacin con los servlets 2-2 InternetBeans tutorial 20-1, 21-1 InternetBeans Express 7-1 analizar HTML 7-5 biblioteca de etiquetas 7-6 descripcin general 2-1, 2-5 envo de los datos del servlet 7-5 formato de archivo de biblioteca de etiquetas 7-10 generar tablas 7-6 tabla de clases 7-2 tabla de etiquetas JSP 7-9 utilizar con JSP 6-4 visualizacin de datos de servlet 7-3 y JSP 7-6 y servlets 7-3
J
Java Network Launching Protocol 15-1 Consulte tambin JNLP Java Web Start 15-1 Consulte tambin Web Start descripcin general 2-8 JBuilder utilizacin de WebApps 10-1 JNLP archivo JNLP 15-7 JSP convertir en Struts 8-17 JSP (Pginas Java Server) depuracin web 10-18 JSP (Pginas JavaServer) 6-1 asignar bibliotecas de etiquetas 12-9 asistente 6-11 bibliotecas de etiquetas 6-4 caractersticas de JBuilder 6-5 compilar 6-14, 10-14 configuracin de ejecucin para depurar 6-15 crear a partir de ActionForm 8-15
G
generar tablas con InternetBeans Express 7-6 grupos de noticias Borland 1-6 public 1-6
H
hilos de servlet de hilo simple 5-1 multihilo 4-8
ndice
I-5
crear con el asistente 6-11 crear con nombres iguales 16-2 crear en directorio de la WebApp 16-1 depuracin del cdigo fuente 10-18 depuracin remota 6-17 depuracin web 6-14 depurar 6-14 depurar con nombres iguales 6-17 depurar e Intercambio inteligente 6-16 depurar en subdirectorio de WebApp 6-16 depurar y directorio de trabajo Tomcat del proyecto 6-16 desarrollo 6-10 descripcin general 2-1, 2-3 distribuir 11-3 e InternetBeans Express 7-6 ejecutar web 6-14, 10-15 enlazados a datos 7-1 especificar paquete para servlet generado automticamente 16-3 incluir en archivo WAR 3-17 iniciar 10-5 InternetBeans Express 6-4 JSTL 6-4 marcos de trabajo 6-4, 6-5 propiedades de ejecucin 10-13 sintaxis 6-3 Struts 6-4 tutorial 19-1, 21-1 usar tabulador al codificar 16-2 vnculos 6-17 y servlets 4-3 JSTL 6-4 descripcin general 2-6 JSTL (Biblioteca de etiquetas estndar para Pginas JavaServer) 6-4
mtodo servletGet() 7-3 mtodo servletPost() 7-5 mtodos de servlets redefinir estndar 5-5
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 WebApp 3-5
P
pgina de inicio de la aplicacin Web Start 15-7 Pgina HTML convertir en Struts 8-17 llamada a servlets desde 5-13 Pginas JavaServer. 6-1 Consulte tambin JSP paquete servlet HTTP 4-5 paquetes en applets 14-10 parmetros de servlets 5-7 etiqueta de applets 14-3 patrn de URL 5-8, 10-10 plataformas convenciones 1-4 Plug-in de Java 14-7 propiedades de archivo WAR 3-17 de una WebApp 3-8 propiedades de ejecucin JSP 10-13 servlets 10-13 Propiedades de WebApp compresin del archivo WAR 3-9 generacin del archivo WAR 3-9 nombre del archivo WAR 3-9 ubicacin del archivo WAR 3-9 propiedades de WebApp 3-8 Clases (ficha) 3-12 directorio 3-9 directorios 3-10 fichas Dependencias 3-14 Descriptor 3-15 Distribucin 3-16
L
llamar a los servlets 5-12
M
mapeo de servlets 5-8, 10-2, 10-10 marcos de trabajo 6-5 Cocoon 8-8 configurar 6-6 cuadros de dilogo Configurar bibliotecas 8-8 definidos por el usuario 6-6 InternetBeans 8-8 JSTL 8-8 Struts 8-8 utilizar con JSP 6-4 marcos de trabajo definidos por el usuario 6-6 I-6
WebApp 3-9 tipos de ficheros incluidos 3-9 proyecto configurar Web Start 15-5 seleccionar servidor web 9-4
R
recopilatorio web 3-2 Consulte tambin archivo WAR restriccin de seguridad aadir a archivo web.xml 12-2
S
seguridad administrador de seguridad 14-11 applets 14-12 autenticar applets 14-12 en las aplicaciones Web Start 15-2 espacio de contencin 14-11 para una WebApp 12-14 restricciones de un applet 14-11 seguridad de las applets administrador de seguridad 14-2, 14-11 autenticar 14-12 espacio de contencin 14-11 restricciones 14-11 soluciones 14-12 server.xml crear archivo personalizado para Tomcat 16-3 servidor de aplicaciones compatibilidad con depuracin de JSP 6-14 servidor iPlanet de Sun configurar 9-4 servidores web cambiar nmero de puerto 16-3 compatibilidad con depuracin de JSP 6-14 configurar 9-1 finalizar 10-17 iniciar 10-15 iPlanet de Sun 9-4 salida con formato 10-16 salida en bruto 10-17 seleccionar para proyecto 9-4 Tomcat 9-2 WebLogic 9-4 configurar 9-4 WebSphere 9-4 configurar 9-4 ServletContext 3-5 servlets 4-1, 5-1 aadir a archivo web.xml 12-2 archivo de formulario HTML 5-6 ciclo de vida 4-7
compilar 10-14 crear con asistentes 5-1 de filtro 5-1, 5-10, 12-4 de hilo simple 5-1 denominacin 5-8, 10-10 depuracin web 10-18 descripcin general 2-1, 2-2 destruir 4-8 distribuir 4-10, 11-2 e InternetBeans Express 5-14, 7-3 ejecutar web 10-15 ejemplos de uso 4-9 en comparacin con la CGI (Interfaz de enlace comn) 2-2, 4-1 enlace a HTML 4-8 enlazados a datos 5-14, 7-1 especficos para HTTP 4-9 estndar 5-1 archivo de formulario HTML 5-6 HTML 4-8, 5-4 HTTP 4-9 incluir en archivo WAR 3-17 inicializar 4-7 iniciar 10-5 internacionalizacin 5-13 llamada 5-12, 5-13 mapeo 5-8, 10-2, 10-10 monitor 5-1, 12-6 interfaces 5-6 multihilo 4-8 opciones 5-1 paso de las respuestas 4-7 patrn de URL 5-8, 10-10 propiedades de ejecucin 10-13 ServletContext 3-5 solicitudes del cliente 4-7 tipo de contenido 5-4 tutorial 17-1, 18-1, 20-1 WML 5-4 XHTML 5-4 XML 5-4 y JSP 4-3 y servidores web 4-1, 4-3 y URI 10-10 y URL 5-8, 10-10 y WebApp 5-1, 5-8, 10-10 solicitudes del cliente al servlet 4-7 Struts 8-1 asistente para Action 8-13 asistente para ActionForm 8-11 asistente para aplicaciones web 8-9 asistente para conversin de Struts 8-17 asistente para JSP a partir de ActionForm 8-15 bibliotecas de etiquetas 8-1
ndice
I-7
bibliotecas de etiquetas y archivo web.xml 8-20 clase Action 8-1, 8-13 clase ActionForm 8-1, 8-11, 8-15 clase AtionServlet 8-1 compatibilidad del marco de trabajo 8-8 compatibilidad en JBuilder 8-5 controlador 8-1 cuadro de dilogo Proyecto Cuadro de dilogo Propiedades Struts 8-6 descripcin general 2-5 editar struts-config.xml 8-20 modelo 8-1 mostrar en panel del proyecto panel del proyecto mostrar webapps de Struts 8-5 pasos para crear webapp preparada para Struts 8-22 URI de inicio 8-9 utilizar con JBuilder 8-22 utilizar con JSP 6-4 versin 1.0 8-3 versin beta 1.1 8-3 vista 8-1 y archivo web.xml 8-20 y asistente para JSP 8-10 y struts-config.xml 8-20 struts-config.xml 13-1 elementos action-mappings 13-17 controller 13-22 data-source 13-3 form-beans 13-6 global-exceptions 13-10 global-forwards 13-14 message-resources 13-25 plug-ins 13-28 Men contextual de la ficha Correspondencias Action 13-21 Men contextual de la ficha Excepciones globales 13-13 Men contextual de la ficha Form Beans 13-9 Men contextual de la ficha Fuentes de datos 13-6 men contextual de la ficha Plug In 13-30 Men contextual de la ficha Recursos de mensajes 13-27 Men contextual de la ficha Reenvos globales 13-17 y Struts 8-20 y web.xml 8-20
T
tablas generar con InternetBeans Express 7-6 tecnologas de internet tabla 2-1 tecnologas web qu tecnologa usar 2-8 sugerencias 16-1 tabla 2-1 tiles.xml file 13-30 tipos de archivo incluir en archivo WAR 3-17 tipos de servlet estndar 5-1 filtro 5-1, 5-10, 12-4 monitor 5-1, 5-6 Tomcat compatibilidad con depuracin de JSP 6-14 configurar 9-2 crear archivo personalizado server.xml 16-3 directorio de trabajo del proyecto 6-16 tutoriales JSP 19-1 JSP e InternetBeans 21-1 servlet 17-1, 18-1 servlet e InternetBeans 20-1 Web Start 22-1
U
ubicacin de archivos en una WebApp 3-5 URI y servlets 10-10 URL generado 10-16 URL y servlets 5-8, 10-10 Usenet, grupos de noticias 1-6
V
vista de cdigo fuente web 10-17 vista web 10-16
I-8
W
WAR aadir archivo XML especfico del servidor 16-4 desactivar generacin automtica 16-5 incluir tipos de archivo adicionales 16-5 Web Start 15-1 applets 14-7 Archivo JAR 15-7 archivo JNLP 15-7 asistente 15-7 configurar proyecto para 15-5 descripcin general 2-8 instalar 15-3, 15-5 modificar definicin de bibliotecas 15-4 pgina de inicio de la aplicacin 15-7 seguridad de las aplicaciones 15-2 tutorial 22-1 y JBuilder 15-5 WebApp aadir archivos 3-6 aadir tipos de archivo adicionales 16-5 asistente 3-3 comprobar 11-4 contra aplicaciones distribuidas 2-11 depurar 10-18 descripcin general 1-1, 3-1 descriptores de distribucin 3-5, 11-4 descriptores de distribucin, especficos del fabricante 11-5
directorio raz 3-5 directorio WEB-INF 3-5 distribuir 11-1 editor del descriptor de distribucin 12-1, 13-1 en JBuilder 10-1 estructura 3-1 herramientas 3-2 importacin a JBuilder 3-3 importacin de archivos 3-6 introduccin general al desarrollo 2-1 propiedades 3-8 ubicacin de archivos 3-5 utilizar 10-1 webapp preparada para struts crear en JBuilder 8-22 webapps marco de trabajo Struts 8-1 WebLogic archivo weblogic.xml 11-4 descriptor de distribucin 11-4
X
XML especfico del servidor aadir a WAR 16-4
ndice
I-9
I-10