La combinación de tecnologías Web existentes está provocando un importante cambio de filosofía en la construcción de aplicaciones para la Web, asemejándose cada vez más este tipo de desarrollos, tanto por su potencia como por su rapidez de respuesta al usuario, a la creación de aplicaciones de escritorio. En este libro el lector encontrará todos los elementos necesarios para aprender a desarrollar auténticas aplicaciones Web interactivas con AJAX, incluyendo numerosos casos prácticos que le pueden resultar de gran ayuda. Además de los elementos esenciales que lo componen, este libro también nos ilustra sobre la gran variedad de herramientas y utilidades de libre distribución existentes en la Red para trabajar con AJAX, analizando con gran detalle las más extendidas dentro de la comunidad de desarrolladores. Aunque el libro está orientado a la utilización de Java/JAVA EE como tecnología de desarrollo de lado del servidor, cualquier persona con conocimientos de programación será capaz de comprender la mecánica de funcionamiento de AJAX y de adaptarla a su entorno particular.ÍndicePRÓLOGO CAPÍTULO 1. INTRODUCCIÓN A AJAX 1.1 CONTEXTO DE UTILIZACIÓN DE AJAX 1.2 ¿QUÉ ES AJAX? 1.3 LAS TECNOLOGÍAS AJAX 1.4 PRIMERA APLICACIÓN AJAX 1.4.1 DESCRIPCIÓN DE LA APLICACIÓN 1.4.2 CÓDIGO DE SERVIDOR 1.4.3 LA VISTA CLIENTE 1.4.4 CÓDIGO DE SCRIPT DE CLIENTE 1.4.4.1 Creación del objeto XMLHttpRequest 1.4.4.2 Envío de la petición HTTP 1.4.4.3 Procesamiento de la respuesta 1.5 APLICACIONES AJAX MULTINAVEGADOR 1.5.1 COMPATIBILIDAD DE CÓDIGO EN TODOS LOS NAVEGADORES 1.6 MANIPULAR DATOS EN FORMATO XML CAPÍTULO 2. PROCESO DE EJECUCIÓN DE UNA APLICACIÓN AJAX 2.1 EVENTOS EN UNA PÁGINA WEB Y MANEJADORES 2.2_FASES EN LA EJECUCIÓN DE UNA APLICACIÓN AJAX 2.3 EL OBJETO XMLHTTPREQUEST 2.3.1 LOS ORÍGENES DEL OBJETO XMLHTTPREQUEST 2.3.2 MIEMBROS DE LA INTERFAZ 2.3.2.1 Preparación de la petición 2.3.2.2 Definición de encabezados de la petición 2.3.2.3 Definición de la función de retrollamada 2.3.2.4 Estado de la petición 2.3.2.5 Envío de la petición 2.3.2.6 Encabezado de la respuesta 2.3.2.7 Acceso al contenido de la respuesta 2.3.2.8 Estado de la respuesta 2.4 EL MODELO DE OBJETO DOCUMENTO (DOM) 2.4.1 NIVELES DOM 2.4.2 INTERFACES DOM 2.4.3 EL ÁRBOL DE OBJETOS DE UN DOCUMENTO 2.4.4 DOM EN LA PRÁCTICA 2.4.4.1 Obtención del objeto Document 2.4.4.2 Referencia a los elementos del documento 2.4.4.3 Acceso al contenido de un elemento 2.4.4.4 Elementos hijos de un elemento 2.4.4.5 Tipo, nombre y valor de un nodo 2.4.4.6 Desplazamiento por el árbol de objetos 2.4.4.7 Acceso a los atributos de un elemento 2.4.4.8_ Modificación de la estructura de un documento CAPÍTULO 3. UTILIDADES AJAX 3.1 ENCAPSULACIÓN DEL OBJETO XMLHTTPREQUEST 3.1.1 LA INTERFAZ DE LA CLASE OBJETOAJAX 3.1.2 IMPLEMENTACIÓN DE LA CLASE OBJETOAJAX 3.1.2.1 Constructor 3.1.2.2 El envío de la petición 3.1.2.3 Acceso a la respuesta 3.1.2.4 Estado de la respuesta 3.1.3 UTILIZACIÓN DE LA CLASE OBJETOAJAX 3.2 JSON 3.2.1 CARACTERÍSTICAS DE JSON 3.2.2 ESTRUCTURA DE DATOS JSON 3.2.2.1 Objetos JSON 3.2.2.2 Arrays 3.2.3 INTERPRETACIÓN DE JSON EN CLIENTE 3.2.4 EJEMPLO DE UTILIZACIÓN 3.2.5 LA LIBRERÍA JSON 3.3 DIRECT WEB REMOTING 3.3.1 COMPONENTES DWR 3.3.2 EL KIT DE DESARROLLO DWR 3.3.3 FUNCIONAMIENTO DE UNA APLICACIÓN DWR 3.3.4 DESARROLLO DE UNA APLICACIÓN DWR 3.3.4.1 Configuración del entorno 3.3.4.2 Implementación de la clase del servidor 3.3.4.3 Creación del archivo dwr.xml 3.3.4.4 Creación de la página cliente 3.3.4.5 Utilidades DWR de cliente 3.3.5 OPCIONES DE CONFIGURACIÓN DE DWR.XML 3.3.5.1_ Instancias de objetos sin constructores públicos 3.3.5.2 Inclusión y exclusión de métodos 3.3.5.3 Convertidores 3.4 HERRAMIENTAS AJAX PARA CLIENTE 3.4.1 PROTOTYPE 3.4.1.1 El núcleo de objetos prototype 3.4.1.2 Utilidades Prototype 3.4.2 LA LIBRERÍA SCRIPT.ACULO.US 3.4.3 EL FRAMEWORK JQUERY 3.4.3.1 Utilización de jQuery 3.4.3.2 Componentes jQuery CAPÍTULO 4. AJAX EN APLICACIONES JAVA EE 4.1 ARQUITECTURA DE TRES CAPAS 4.1.1 CAPA CLIENTE 4.1.2 CAPA INTERMEDIA 4.1.3 CAPA DE DATOS 4.2 ARQUITECTURA MODELO VISTA CONTROLADOR 4.2.1 EL CONTROLADOR 4.2.2 LA VISTA 4.2.3 EL MODELO 4.2.4 APLICACIÓN MVC BÁSICA 4.2.4.1 Solución sin AJAX 4.2.4.2 Solución con AJAX 4.2.5 IMPLEMENTACIÓN DE UN CARRITO DE COMPRA 4.2.5.1 El modelo 4.2.5.2 El controlador 4.2.5.3 La vista 4.3 JAVASERVER FACES 4.3.1 COMPONENTES DE LA TECNOLOGÍA JSF 4.3.2 ARQUITECTURA DE UNA APLICACIÓN JSF 4.3.2.1 El controlador 4.3.2.2 LA VISTA 4.3.2.3 El modelo 4.3.3 PROCESO DE CONSTRUCCIÓN DE UNA APLICACIÓN JSF 4.3.3.1 Configuración del entorno 4.3.3.2 Lógica de negocio de la aplicación 4.3.3.3 Bean gestionados 4.3.3.4 Componentes de la interfaz de usuario 4.3.3.5 Navegación entre páginas 4.3.4 AJAX EN APLICACIONES JSF 4.3.4.1 Funcionalidad AJAX en JSF 2 APÉNDICE A. EL ESTÁNDAR XHTML CARACTERÍSTICAS BÁSICAS DE XHTML ETIQUETAS HTML Tipos de etiquetas ATRIBUTOS COMENTARIOS ESTRUCTURA DE UN DOCUMENTO XHTML PRINCIPALES ETIQUETAS DE XHTML ORGANIZACIÓN DE TEXTO FORMATO DEL TEXTO ENCABEZADOS SEPARADORES HIPERTEXTO LISTAS TABLAS IMÁGENES FRAMES FORMULARIOS HTML EL FORMULARIO HTML LOS CONTROLES HTML Control Text Control TextArea Control PassWord Control Submit Control Button Control CheckBox Control Radio Control Select HOJAS DE ESTILO CSS TIPOS DE HOJAS DE ESTILO Hojas de estilo externas Hojas de estilo internas Hojas de estilo en línea APÉNDICE B. XML FUNDAMENTOS SOBRE XML ¿QUÉ ES XML? DOCUMENTOS XML ¿POR QUÉ XML? XML VS. HTML CARACTERÍSTICAS DE XML COMPRENSIBLE BASADO EN TEXTO INDEPENDIENTE APLICACIONES DEL XML INTERCAMBIO DE DATOS ENTRE APLICACIONES (B2B) ALMACENAMIENTO INTERMEDIO EN APLICACIONES WEB PRESENTACIÓN EN LA WEB UTILIZACIÓN COMO BASE DE DATOS TECNOLOGÍAS BASADAS EN XML CONSTRUCCIÓN DE DOCUMENTOS XML Estructura de un documento XML Reglas sintácticas XML Documentos bien formados APÉNDICE C. EL LENGUAJE JAVASCRIPT JAVASCRIPT EN DOCUMENTOS XHTML SINTAXIS DEL LENGUAJE SINTAXIS BÁSICA TIPOS DE DATOS Y VARIABLES OPERADORES INSTRUCCIONES DE CONTROL if switch for while Las sentencias break y continue FUNCIONES Funciones del lenguaje Cuadros de diálogo Definición de funciones EVENTOS MANEJADORES DE EVENTO TIPOS DE EVENTO OBJETOS TIPOS DE OBJETOS OBJETOS DEL LENGUAJE Objeto String Objeto Array Objeto Math Objeto Date OBJETOS XHTML Referencia a los objetos etiqueta Principales propiedades OBJETOS CONTROLES XHTML Propiedades OBJETOS DEL NAVEGADOR Objeto window Objeto document Objeto Navigator