Introducción
¿Qué se va a encontrar el lector en este libro?
¿A quién está dirigido este libro?
Estructura del libro
Convenciones
Código fuente
Requisitos de hardware
Resumen
1. Introducción a las aplicaciones Web
Introducción
1.1. ¿Qué hace una aplicación Web?
1.2. Internet y la World Wide Web
1.3. Tecnologías importantes de Internet
TCP/IP
Direcciones IP
Nombres de dominio
1.4. Tecnologías WWW importantes
HTTP
HTML
URLs, URIs y URNs
1.5. Tipos particulares de aplicación Web
Intranets
Extranets
Portales
1.6. Arquitectura de una aplicación Web
Capas
Niveles y sistemas distribuidos
1.7. La Web 2.0 y Ajax
La Web como plataforma software
Arquitecturas orientadas a servicios
Comunidades de usuarios y contribuidores
Ajax
1.8. ¿Seguro que quiere ser un desarrollador Web?
Ejercicios
Resumen
Lecturas de referencia
2. Requisitos, análisis y diseño de aplicaciones Web
Introducción
2.1. Diferencias en los requisitos de las aplicaciones Web
2.2. Ciclo de vida de los desarrollos de software
El modelo en cascada
Métodos iterativos
2.3. UML y el proceso unificado de desarrollo
UML
El Proceso Unificado
La fase de preparación
La fase de elaboración
La fase de construcción
La fase de transición
¿Cuánto dura una iteración?
2.4. La fase de preparación de una aplicación Web
2.5. Requisitos de diseño
Obtención de los requisitos de la aplicación Web
Priorización de los requisitos
2.6. Herramientas de análisis: modelos de dominio, casos de uso y guiones gráficos
El modelo del dominio
Diagramas de casos de uso
Construcción de casos de uso
Descripción de los casos de uso
Diagramas de secuencia del sistema
Diseño de páginas y navegación por las páginas utilizando guiones
2.7. Construcción del resto de casos de uso
2.8. Del análisis al diseño
El diseño es dependiente de la tecnología
Diseño de la arquitectura
Contenido estático y dinámico
2.9. Diseño de la navegación por las páginas Web
Páginas clientes dinámicas
Modelado de la navegación dinámica de la aplicación Web
2.10. Patrones de diseño para aplicaciones Web
Logotipo en la parte superior izquierda
Barra de navegación
Camino de navegación
Diseño en tres regiones
Página de inicio
Mapa del sitio
Almacenamiento de la información en una base de datos
Generalidades de diseño
Ejercicios
Resumen
Lecturas de referencia
3. Estructura y contenido de la capa de presentación: HTML
Introducción
3.1. SGML: donde empezó todo
Etiquetas
Elementos
Atributos en las etiquetas
Sintaxis correctamente formada
3.2. HTML. Un lenguaje para páginas Web
3.3. Elementos estructurales de un documento HTML
Creación de un documento HTML
Tipos de contenido
Elementos de texto
3.4. Tipo de documento HTML
3.5. Estructura del texto
Saltos de línea y reglas horizontales
Citaciones y bloques de citas
Elementos relacionados con el idioma
Subíndices y superíndices
Caracteres especiales
3.6. Listas
Listas sin orden
Listas ordenadas
Listas anidadas ordenadas y sin orden
Listas de definición
3.7. Atributos en HTML
Imágenes
Enlaces
Vínculos de correo electrónico
3.8. Tablas
Las etiquetas de las tablas
Elementos de una tabla y sus filas
Celdas de la tabla
Ejemplo de tabla
Organización de las tablas
Unión de celdas utilizando atributos
Bordes de tabla
3.9. Formularios
Elementos del formulario
Tipos de datos de entrada
Áreas de texto
Listas de selección
Ejercicios
Resumen
Lecturas de referencia
4. Aplicar estilo a la capa de presentación: CSS
Introducción
4.1. Aislando la presentación
4.2. La sintaxis CSS
4.3. Hojas de estilo
Hojas de estilo internas
Agrupando estilos
Más allá de los estilos para dar formato a textos
Aplicación de varios estilos dentro del elemento STYLE
Configuración del tamaño de la fuente
Hojas de estilo externas
4.4. Aplicando estilos con los atributos "class" e "id"
Uso del atributo "class"
Aplicar estilos de una clase a un subconjunto de elementos
Atributos del elemento "id"
4.5. Elementos "block" e "inline"
4.6. Aplicando estilos a listas y tablas
4.7. Cascadas de hojas de estilo
4.8. Uso de CSS para definir la distribución de la página
Uso de CSS y anclajes
Aplicando los estilos de distribución de elementos
Ejercicios
Resumen
Lecturas de referencia
5. Contenido, estructura y validación: XML, DTD, XHTML y esquemas XML
Introducción
5.1. Las limitaciones de HTML
Los efectos de utilizar documentos mal formados
Por qué no es suficiente con utilizar HTML
5.2. Datos semi-estructurados
Variaciones en la estructura
Representación arborescente de los datos semi-estructurados
5.3. ¿Qué es XML?
5.4. Componentes de XML
La declaración XML
Procesamiento de instrucciones
Elementos y datos de texto analizados
Visualización de páginas XML
XML bien estructurado
Atributos y elementos en XML
Secciones CDATA
5.5. Validación de documentos XML
Definiciones de tipo de documento (DTD)
Definición de elementos en un DTD
Cómo incluir el archivo de definiciones DTD al prólogo
Validación de XML utilizando XMLSpy
Separación del código DTD y XML de un documento
¿Tipo de documento de sistema o público?
Declaración de elementos en archivos DTD
Caracteres que representan los operadores DTD
Elementos vacíos
Declaración de atributos en archivos DTD
El atributo CDATA
Palabras clave de un atributo
Otros tipos de atributos
Entidades
5.6. XHTML
Elementos vacíos
Los atributos no se pueden abreviar
Validación en XHTML
5.7. Esquemas XML
Problemas al escribir los datos en archivos DTD
Espacios de nombres XML
5.8. Etiquetas de los esquemas XML
Tipos y elementos complejos
Declaración de una secuencia
Tipos de datos
Atributos
Multiplicidad del elemento
Tipos enumerados y sus restricciones
5.9. Cómo aplicar un esquema XML a un documento
5.10. ¿DTD o esquema XML?
Ejercicios
Resumen
Lecturas de referencia
6. Transformación de XML: XPath y XSLT
Introducción
6.1. XPath: Consultas XML
XPath y árboles XML
Vocabulario utilizado a la hora de hablar de árboles
Orden del documento
Contexto: el comienzo de una expresión XPath
Sintaxis de operadores XPath abreviada
Ejemplos XPath
Filtros
Atributos de las consultas XPath
6.2. XSLT
XSLT, HTML y CSS
Procesamiento de XSLT
Espacios de nombres XSL
Hojas de estilo y transformaciones
Ajuste de plantillas
Tipos de archivos destino
Vinculación de una hoja de estilos XSLT
Prueba de transformación XSL en Internet Explorer
Selección de valores a partir de un documento XML
Generación de XHTML
Iteración de colecciones de elementos
Elementos de selección
Ordenando el documento resultado
Escribiendo atributos en el documento destino
6.3. Caracteres especiales en XML
6.4. Transformación de XML a XML
6.5. Transformaciones utilizando ajuste de plantillas
Ejercicios
Resumen
7. Introducción a JavaScript
Introducción
7.1. JavaScript: qué es y para qué sirve
7.2. El modelo de objetos del documento DOM
7.3. Características de JavaScript
Configuración del lenguaje de script para ser utilizado en una página Web
Añadir script a las páginas Web
7.4. Objetos JavaScript
Propiedades de los objetos
Comentarios en el código fuente de JavaScript
Objetos representados como propiedades
Métodos de los objetos
Lugar que ocupan los script dentro del documento
7.5. Depuración de JavaScript
7.6. Tipos y variables en JavaScript
Declaración y uso de variables
Operaciones aritméticas sobre variables numéricas
Operadores de incremento y decremento
Operadores prefijos y postfijos
Otras expresiones abreviadas de utilidad
Orden de preferencia
7.7. Uso y creación de objetos
El objeto Math
Cadenas de texto: String
Objetos de datos
Vectores
7.8. Estructuras de control
Sentencias if . else
Operadores relacionales
Ejemplo de selección: simulación del lanzamiento de una moneda
Bucles while
Bucles for
7.9. Funciones personalizadas
Definición de funciones fuera del cuerpo de la página Web
Uso de archivos JavaScript externos
Ejercicios
Resumen
Lecturas de referencia
8. JavaScript interactivo: HTML dinámico, validación en el lado del cliente y Ajax
Introducción
8.1. DHTML: HTML dinámico
Exploración del modelo de datos DOM
Interacción con los nodos
Modificación de valores en el modelo DOM
8.2. Eventos JavaScript
El evento onload
Eventos temporales
La propiedad innerHTML y el modelo DOM
Respuesta a los eventos de los botones
Las URL de JavaScript
8.3. Hojas de estilo dinámicas
8.4. Validación de formularios desde el cliente
Funciones que procesan formularios
Ventanas emergentes
Uso de ventanas para rutinas de validación
Validación sobre otros componentes del formulario
8.5. La aparición de Ajax
Escribir código Ajax con JavaScript
Uso de Ajax y RSS
Problemas de seguridad relacionados con XMLHttpRequest
Conexión a un servidor utilizando XMLHttpRequest
Lectura de datos XML utilizando XMLHttpRequest
Ejercicios
Resumen
Lecturas de referencia
9. Aplicaciones Web y servidores de aplicación
Introducción
9.1. Servidores de aplicaciones
9.2. El servidor de aplicaciones Web Apache Tomcat
Iniciando Tomcat
URL "localhost" y número de puerto de Tomcat
9.3. Estructura y despliegue de una aplicación Web
Despliegue de contenido estático en un servidor HTTP
Despliegue de una aplicación Web Java
Creación de paquetes Java EE
Carpetas y recursos de una aplicación Web
Descriptores de despliegue XML
9.4. Despliegue en Tomcat
Creación de un archivo Web
Despliegue de un archivo Web
Inclusión de hojas de estilo y XML
9.5. El servidor de aplicaciones JBoss
9.6. Despliegue de aplicaciones empresariales
Estructura de carpetas de una aplicación empresarial
Estructura de carpetas de una aplicación empresarial
Creación de un archivo empresarial
9.7. Ejecución de aplicaciones Web desde el puerto HTTP predeterminado
9.8. Construcción y despliegue automático utilizando Ant
Despliegue y configuración de Ant
El archivo de construcción de aplicaciones Ant
Propiedades de Ant
El objetivo jar
Despliegue de un archivo WAR
9.9. El gestor de aplicaciones Web de Tomcat
Habilitando el gestor de aplicaciones Web de Tomcat
Ejecución del gestor de aplicaciones Web de Tomcat
Conexión al gestor de aplicaciones Web de Tomcat de forma remota
Inclusión de tareas Ant de Tomcat
Ejercicios
Resumen
Lecturas de referencia
10. Java y contenidos dinámicos
Introducción
10.1. Java en el servidor
Java SE: Edición estándar
Java ME: Edición micro
Java EE: Edición empresarial
Componentes Web Java EE
10.2. Arquitectura Modelo-Vista-Controlador (MVC)
10.3. Arquitectura de JSP modelo 1
Implementación del primer servlet
Despliegue de un servlet
Objetivo Ant para compilar un servlet
10.4. Cómo escribir una página JSP
Cómo hacer que la página JSP sea nuestra página de inicio
Cómo escribir expresiones JSP
Directivas JSP
10.5. Procesamiento de datos de peticiones HTTP: parámetros y formularios
Envío de parámetros en peticiones HTTP
Los scriptlets y las páginas JSP
Procesamiento de los datos del formulario en la capa del controlador
Presentación de los datos del cliente en la capa de vista
Envío de datos desde un formulario HTML
10.6. Uso de JavaBean en páginas JSP
Etiquetas JSP para manejar JavaBean
Escritura de propiedades del bean en el objeto de respuesta
10.7. Refactorización de la aplicación Web
10.8. La arquitectura del modelo 2 de las páginas JSP
10.9. Gestión del flujo de una aplicación Web
10.10. Gestión de la sesión de una aplicación Web
JavaBean y sesiones
Creación de páginas JSP y JavaBean a partir del flujo de la aplicación Web
10.11. Procesamiento de bean y el modelo de datos subyacente
10.12. JSTL: Biblioteca de etiquetas estándar para JSP
Funcionamiento de JSTL
Funcionamiento del lenguaje de expresiones EL
Uso de JavaBean con expresiones EL
Iteraciones JSTL y propiedades indexadas de los JavaBean
10.13. Páginas JSP que utilizan XML
10.14. Integración de la plantilla en tres regiones
Ejercicios
Resumen
Lecturas de referencia
11. Usar Java y XML juntos
Introducción
11.1. Analizadores sintácticos de XML
Analizadores DOM
Analizadores SAX
Comparativa entre analizadores SAX y DOM
Procesamiento de un documento XML utilizando el analizador sintáctico DOM
Procesamiento de un documento XML utilizando un analizador SAX
11.2. Generación de documentos XML a partir de JavaBeans
Bean que representan la capa del modelo de datos
La clase XMLEncoder
Generación de XML a partir de los métodos de los JavaBean
11.3. JAXB
Generación de clases a partir de esquemas XML
Generación de documentos XML a partir de objetos Java
Generación de objetos Java a partir de documentos XML
11.4. Procesamiento de documentos XML utilizando la biblioteca JSTL
Uso de espacios de nombres de biblioteca
Etiquetas JSTL para el procesamiento de documentos XML
Las transformaciones XSL con la biblioteca JSTL
Importando archivos XML
Uso de expresiones XPath con etiquetas XML
Control de flujo en XML
11.5. Uso de beans para la generación de código XML en páginas JSP
El patrón faÇade aplicado a la capa del modelo de datos
Utilidades para bean de Jakarta Commons
Uso de beans en una aplicación Web que utilice XML
Ejercicios
Resumen
Lecturas de referencia
12. Aplicaciones Web y bases de datos
Introducción
12.1. Mapeo objeto-relacional
12.2. La base de datos de ejemplo
12.3. Java y las bases de datos
Acceso a bases de datos desde Java utilizando JDBC
Controladores JDBC
Uso del API de JDBC
Excepciones SQL
Creación de un usuario MySQL autorizado
Creación de sentencias
Uso de objetos ResultSet
Actualización de registros
Uso de sentencias preparadas
12.4. Integración de métodos de persistencia en una aplicación Web
JNDI
Fuentes de datos dentro de la estructura arborescente de JNDI
Configuración del servidor para acceso a fuentes de datos
12.5. Construcción de una capa de persistencia utilizando objetos de acceso a datos
Diseño de un objeto DAO para el acceso a las fuentes de datos
Lectura de registros de una base de datos desde una aplicación Web
12.6. Integración de objetos persistentes
12.7. Desajuste por impedancia del mapeo objeto-relacional
Unicidad de objetos e identificadores de las tablas
Mapeo de tipos de datos
Relaciones y normalización
Herencia
Operaciones
12.8. Tecnologías relacionadas con el mapeo objeto-relacional
Estándar de persistencia en Java
Elección entre las distintas estrategias de persistencia
Ejercicios
Resumen
Lecturas de referencia
13. Aplicaciones Web para dispositivos móviles
Introducción
13.1. Evolución de los lenguajes de marcado para móviles
Protocolo WAP y lenguaje WML
Perfiles XHTML básico y XHTML móvil
El dominio de alto nivel .mobi
13.2. El framework Java WURFL/WALL para la adaptación de contenidos móviles
Instalación y configuración de WURFL y WALL
Uso de la biblioteca de etiquetas WALL
13.3. Integración de WALL en una aplicación Web
Elección del tipo de navegador
Validación en el servidor
13.4. Estrategias alternativas para implementar la adaptabilidad
Ejercicios
Resumen
Lecturas de referencia
14. Mensajes XML: servicios Web y Ajax en el lado del servidor
Introducción
14.1. Servicios Web
14.2. Tecnologías de servicios Web
Protocolo SOAP
Lenguaje de descripción WSDL
Búsqueda de archivos WSDL: UDDI y WS-Inspection
14.3. Implementación de servicios Web
14.4. Creación de un servicio Web utilizando Java 6.0
14.5. Integración de servicios Web y aplicaciones Web
14.6. Despliegue de un servicio Web cliente
14.7. Integración del servicio Web en la aplicación WebHomeCover
14.8. Ajax en el servidor
Ejercicios
Resumen
15. Marco de aplicación Web Apache Struts
Introducción
15.1. Comandos y patrones de control de Struts
El patrón Front controller
El patrón Command
15.2. Componentes de Struts
15.3. Configuración de Struts
Configuración del servlet Struts en el archivo web.xml
Archivo de configuración de Struts
15.4. Gestión del flujo Web
Cambios que realizar en el archivo de construcción de Ant
Configuración de la relación con las acciones
15.5. Objetos Action
Diseño de clases Action
Configuración de las acciones en el archivo de configuración Struts
Uso de bitácoras de acciones
Configuración de acciones desde el archivo de configuración de Struts
Redirecciones globales
15.6. Bibliotecas de etiquetas Struts
Uso de las etiquetas HTML de Struts para rellenar JavaBean
JavaBean ActionForm
15.7. Validación mediante recursos de mensajes
Creación de un archivo de recursos de mensajes de error
Implementación del método validate de la clase ActionForm
15.8 Uso de la biblioteca de etiquetas bean de Struts
15.9. Internacionalización
Mensajes de recursos internacionalizados
Etiquetas para implementar la internacionalización
Configuración del navegador para probar las páginas internacionalizadas
15.10. El sistema de validación de Struts
Heredar de ValidatorForm
Claves de mensaje estándar
Archivo XML de validación
Habilitar el complemento del sistema de validación
Habilitar la validación JavaScript
Ejercicios
Resumen
Lecturas de referen A. Bases de datos relacionales: SQL y MySQL
A.1. ¿Qué es una base de datos?
A.2. Bases de datos relacionales
Esquemas de las tablas
Claves foráneas
Relaciones uno-a-muchos
A.3. Uso de MySQL
Crear una nueva base de datos
Crear un esquema de base de datos utilizando SQL
Visualización del esquema de una tabla
A.4. Añadir datos a las tablas
A.5. Consultas a la base de datos
Uso de la sentencia SELECT para consultas con restricciones
Consultas sobre valores nulos
Combinación de condiciones
A.6. Actualización de la base de datos
A.7. Añadir más tablas a la base de datos
Generar claves primarias
Composición B. Uso de XMLSpy
Introducción
B.1. ¿Por qué necesitamos XMLSpy?
B.2. Uso de XMLSpy
Creación de un archivo nuevo
Comprobación de la correcta estructuración de un documento XML y de su validación
Validación de documentos XML
Evaluación de expresiones XPath
Transformaciones XML
Más información C. Seguridad de aplicaciones Web
C.1. Autenticación y autorización
C.2. Inclusión de roles de seguridad
C.3. Implantación de seguridad en una página Web
C.4. Comunicación segura
Configuración del servidor
Uso de HTTPS en una aplicación D. Contenido del CD-ROM
¿Qué software va a ser necesario?
Navegador Web
Editor XML
Servidor de aplicaciones Java y sus herramientas asociadas
Base de datos relacional
&n alfabético