
Java es, por hoy, el lenguaje por excelencia para el desarrollo de todo tipo de aplicaciones, hoy en día el conocimiento de las tecnologías que nos aporta la plataforma Java 2, para el desarrollo de todo tipo de aplicaciones, proporciona al programador la agilidad suficiente para llevar por buen cauce cualquier desarrollo posible dentro de una empresa.
Este libro describe las principales novedades incluidas en Java 2 v5.0, se centra en las tecnologías que aporta del lado servidor, teniendo en cuenta el lado del cliente para la creación de aplicaciones distribuidas.
Este manual es puramente práctico y orientado al mundo laboral, ya que, hoy por hoy, los mecanismos y tecnologías que se describen en este libro son los más demandados por todas las empresas que desarrollan sus aplicaciones utilizando la plataforma Java: Struts como framework MVC, JUnit para el desarrollo de pruebas unitarias y Maven para la administración de proyectos.



Cómo usar este libro
Destinatarios del libro
Organización del libro
Convenios empleados
Introducción
Objetivos
Contenido del libro
Capítulo 1. Nuevas características Java 2 v5.0
Introducción
Simplificación del desarrollo
Tipos Genéricos
Construcción de tipos genéricos
Autoboxing/unboxing
Mejoras en los bucles
Tipos enumerados
Importaciones estáticas
Argumentos variables
Entrada/Salida Formateada
Anotaciones
Inclusión de anotaciones en el código
Crear un tipo de anotación
Anotaciones de chequeo en compilación
Anotación Override
Anotación Deprecated
Anotación SupressWarnings
Anotaciones para el análisis de código
Anotación Target
Anotación Retention
Anotaciones de documentación
Anotación Inherited
Procesamiento de anotaciones con APT
Creación de un proceso en APT
Otras mejoras
Encadenamientos
Monitorización
Mejoras JVM
Capítulo 2. Las Excepciones
Introducción
¿Por qué se lanza una excepción?
Excepciones en tiempo de compilación
Excepciones en tiempo de ejecución
Los bloques try, catch y finally
Jerarquía de objetos
¿Cómo lanzar una excepción?
Atrapar una excepción
Volver a lanzar una excepción
¿Qué excepciones pueden lanzarse?
¿Cuándo van a lanzarse?
¿Dónde van a lanzarse?
¿Qué acciones hemos realizado?
Visualizar la pila de llamadas
Capítulo 3. E/S Java
Introducción
Flujos de datos estándar
Los flujos que ofrece java.io
La clase java.io.InputStream
read()
skip()
available()
mark() y reset
close()
La clase java.io.OutputStream
write()
close()
Las interfaces Closeable y Flushable
E/S en Archivos
La clase FileInputStream y FlieOutputStream
E/S con tipos
Las clases DataInputStream y DataOutputStream
La clase File y RandomAccesFile
Otras clases de java.io
Las clases ByteArrayInputStream y ByteArrayOutputStream
Las clases PipedInputStream y PipedOutputStream
Las clases FilterInputStream y FilterOutputStream
Las clases BufferedInputStream y BufferedOutputStream
La clase PrintStream
Las clases Reader y Writer
El análisis de flujos mediante la clase StreamTokenizer
NIO
Características
Buffer
Métodos clear(), flip() y rewind()
Canales
Charset
Ejemplo: Lectura de un Fichero
Capítulo 4. API Logging
Introducción
El Controlador (Log Manager)
La clase Logger
Niveles
Ejemplo Logger
El registro (LogRecord)
El Manejador (Handler)
StreamHandler
FileHandler
ConsoleHandler
SocketHandler
MemoryHandler
Formateando la salida
SimpleFormatter
XMLFormatter
Creando un nuevo tipo de formato
Estableciendo filtros
Capítulo 5. Java y la red
Introducción
Localización e identificación de recursos
La clase URL y URLConnection
La clase URI
Las clases HttpURLConnection y JarURLConnection
Direccionamiento
InetAddress
Inet4Address y Inet6Address
SocketAddress y InetSocketAddress
Conexiones TCP
Conexión mediante Sockets de flujo
Creación de un servidor multiusuario con conexionesde flujo
Creación de un cliente con conexiones de flujo
Comunicación sin conexión con datagramas
Aplicación cliente/servidor con datagramas
Capítulo 6. Thread
Introducción
La clase Thread
Propiedades de un Thread
Ciclo de vida de un Thread
Suspender, reanuda y parar un encadenamiento
La interfaz Runnable
La segmentación del tiempo
El problema de la exclusión mutua
Los monitores
El problema del productor consumidor
Los semáforos
El problema de los lectores/escritores utilizando semáforos
Los Thread Daemon
Los grupos de Thread
El ínter bloqueo
Manejo de excepciones
Utilidades de concurrencia
Objetos de sincronización
Semaphore
CountDownLatch
CyclicBarrier
Exchanger
Separación lógica ejecución
Callable y Future
TimeUnit
Variables Atómicas
Locks
Capítulo 7. Acceso a las bases de datos con Java
Introducción
Tipos de controladores
Conexión con la base de datos
Solicitud de información
Las transacciones
La interfaz Statement
Obtención de los resultados
Posicionamiento por filas
Posicionamiento por columnas
Actualización de filas
Ejemplo: Datos Personales
Instalación y Configuración SimpleSQL
Construcción del Ejemplo
Utilización de RowSet
Eventos
Implementaciones de RowSet
Capítulo 8. JNI
Introducción
¿Qué es JNI?
¿Cuándo se han de utilizar?
Pasos a seguir para enlazar con una librería externa
Creación de la clase en Java
Creación de un fichero de cabecera
Implementación de los métodos en C
Creación de la librería y ejecución de la clase
Tipos Nativos
Acceso a los métodos nativos y a sus variables
Utilización de cadenas
Utilización de arrays
Acceso a los campos de una clase
Acceso a los métodos en Java
Excepciones
Manejo de hilos en C y C++
Capítulo 9. Servlets
Introducción
Características
Arquitectura
Ciclo de vida de un Servlet
Métodos de la clase Servlet
Petición de información
Generación de la respuesta
Inicialización de un servlet
La clase HttpServlet
Métodos doGet(), doPost(), doDelete() y doPut()
El objeto HttpSession
Uso de las Cookies
Creación de una Cookie
Atributos de una Cookie
Enviar una Cookie al cliente
Obtener una Cookie de un cliente
Obtener los valores de una Cookie
Ejemplo Listado empresas
Configuración Tomcat
Creación del Ejemplo
Creación Base de Datos
Creación del Servlet
Capítulo 10. Java Server Pages (JSP)
Introducción
Características
Contenedores
Objetos dentro de JSP
Componentes JSP
Comentarios
Acciones estándar
Directivas
Page (Directiva de página)
Include
Librería de etiquetas (taglib)
Declaraciones
Scriptlet
Expresiones
Tratamiento de errores
Modelo de aplicaciones
Modelo de dos capas
Ejemplo de desarrollo basado en el modelo de dos capas
Modelo de n-capas
Ejemplo de desarrollo basado en el modelo de n-capas
Ejemplo 'Carrito de la compra'
Capítulo 11. Seguridad en Java
Introducción
Arquitectura JCA
Proveedor de servicios criptográficos
Clases del motor criptográfico
Administración de claves
Representación de claves
Generación de claves
Generación de números aleatorios
Resumen de mensajes y firmas digitales
MD5
SHA-1
Firmas digitales
DSA
Extensión JCE
La clase Cipher
Ejemplo uso Cipher
Servicio de autentificación y autorización JAAS
Sujetos JAAS
Definición del contexto de autenticación (LoginContext)
Retrollamadas (Callback)
Autorización
Capítulo 12. Maven
Introducción
¿Qué es Maven?
Características
Instalar Maven
Descarga inicial
Arquitectura
POM - Project Object Model
Definiciones para la administración del proyecto
Dependencias existentes
Construcciones a realizar
Informes a obtener
Definición de Goals
Creación de Goals
Visualización de Goals
Propiedades de un proyecto
Uso de los ficheros de propiedades
Propiedades del proyecto (project.properties)
Propiedades de la construcción de un proyecto (build.properties)
Propiedades de construcción del Usuario (build.properties)
Propiedades de construcción de Maven
Manejo de dependencias
Búsqueda de dependencias
Dependencias Snapshot
Repositorios
Repositorios para la descarga de dependencias
Repositorios para la publicación de artefactos
Publicación de un artefacto en el repositorio local
Publicación de un artefacto en el repositorio remoto
Publicación snapshot
Maven y Eclipse
Mavenide
Ejecución de pruebas unitarias
Generación de la documentaciónde un proyecto
Descarga y actualización de plug-ins
Manejo de múltiples proyectos
Plug-in multiproject
Uso de reactor
Controlador de versiones
Mejores Prácticas
Convenciones
Construcciones reproducibles
Generación de scripts
Escribir nuestros propios plug-ins
Otras recomendaciones
Ejemplo creación de un proyecto
Manejo del proyecto con Maven
Creando dependencias
Compilar e instalar de la aplicación
Maven 2
Capítulo 13. Struts
Introducción
Arquitectura
Capa Controlador
ActionServlet
RequestProcessor
ActionMapping
Action
DispatchAction
LookupDispatchAction
ForwardAction
DownloadAction
IncludeAction
ActionForward
ActionRedirect
Formularios
ActionForm
DynaActionForm
Mensajes y Errores
ActionError
ActionMessage
Manejo de excepciones
Configuración Struts
Visualización del fichero struts-config
Internacionalización
Etiquetas (Tags)
Etiquetas más usadas
Capítulo 14. Pruebas Unitarias (JUnit)
Introducción
Características principales de JUnit
Ayuda al desarrollo
Simplicidad
Informes de auditoría
Lanzamiento conjunto de pruebas unitarias
Estabilidad de un proyecto
Ejemplo de uso con JUnit
Creación de una prueba unitaria (TestCase)
Ejemplo
Pasos a seguir para la construcción de la prueba unitaria
Ejemplo completo
Creación de un conjunto de pruebas unitarias (TestSuite)
Eclipse y JUnit
Creación de un prueba unitaria
Creación de una suite
Recomendaciones
Inicialización de las pruebas unitarias
Orden de ejecución de las pruebas unitarias
Métodos setUp() y tearDown()
Documentación de los casos de prueba
Rápidos y sencillos
Localización de las clases de prueba
JUnitDoclet
Ventajas
Uso de JUnitDoclet
Refactoring
Capítulo 15. RMI
Introducción
Objetos Remotos en Java
Arquitectura RMI
Capa de enlace
Capa de referencia
Capa de transporte
Búsqueda de enlaces
La interfaz Remota
Compilar
Ejecutar el objeto remoto
Comunicación del cliente al servidor
Serialización
Capítulo 16. Enterpise JavaBeans (EJB)
Introducción
Características
Arquitectura multicapa
Arquitectura EJB
EJB de Sesión (Session Bean)
EJB Entidad (Entity Bean)
EJB orientados a Mensajes
Ejemplo uso EJB de sesión
Creación del EJB de sesión
Creación de la interfaz EJBHome
Creación de la interfaz EJBObject
Creación del EJB de sesión
Creación del descriptor de despliegue
Ejecución en JBoss
Creación del cliente
Apéndice. Contenido del CD-ROM
Contenido del CD-ROM
Ejemplos
Frameworks
Herramientas
IDE
JDK
Servidores
Índice alfabético
Otros clientes que compraron Java 2 v5.0, también compraron:
Otros libros de Java: