|
|
19 | (4) |
|
|
20 | (1) |
|
|
20 | (1) |
|
|
20 | (3) |
|
|
23 | (458) |
|
|
25 | (1) |
|
|
25 | (6) |
|
Nuevas caracteristicas Java 2 v5.0 |
|
|
31 | (28) |
|
|
32 | (1) |
|
Simplificacion del desarrollo |
|
|
32 | (9) |
|
|
32 | (1) |
|
Construccion de tipos genericos |
|
|
33 | (2) |
|
|
35 | (2) |
|
|
37 | (1) |
|
|
37 | (1) |
|
|
38 | (1) |
|
|
39 | (1) |
|
Entrada/Salida Formateada |
|
|
40 | (1) |
|
|
41 | (12) |
|
Inclusion de anotaciones en el codigo |
|
|
41 | (1) |
|
Crear un tipo de anotacion |
|
|
42 | (1) |
|
Anotaciones de chequeo en compilacion |
|
|
43 | (1) |
|
|
43 | (1) |
|
|
44 | (1) |
|
Anotacion SupressWarnings |
|
|
44 | (1) |
|
Anotaciones para el analisis de codigo |
|
|
45 | (1) |
|
|
46 | (1) |
|
|
47 | (1) |
|
Anotaciones de documentacion |
|
|
48 | (1) |
|
|
49 | (1) |
|
Procesamiento de anotaciones con APT |
|
|
49 | (1) |
|
Creacion de un proceso en APT |
|
|
50 | (3) |
|
|
53 | (6) |
|
|
54 | (1) |
|
|
54 | (1) |
|
|
55 | (4) |
|
|
59 | (14) |
|
|
60 | (1) |
|
¿Por que se lanza una excepcion? |
|
|
61 | (1) |
|
Excepciones en tiempo de compilacion |
|
|
61 | (1) |
|
Excepciones en tiempo de ejecucion |
|
|
62 | (1) |
|
Los bloques try, catch y finally |
|
|
62 | (1) |
|
|
63 | (1) |
|
¿Como lanzar una excepcion? |
|
|
63 | (3) |
|
|
66 | (1) |
|
Volver a lanzar una excepcion |
|
|
67 | (4) |
|
¿Que excepciones pueden lanzarse? |
|
|
69 | (1) |
|
|
70 | (1) |
|
|
70 | (1) |
|
¿Que acciones hemos realizado? |
|
|
70 | (1) |
|
Visualizar la pila de llamadas |
|
|
71 | (2) |
|
|
73 | (34) |
|
|
74 | (1) |
|
|
74 | (1) |
|
Los flujos que ofrece java.io |
|
|
75 | (4) |
|
La clase java.io.InputStream |
|
|
75 | (1) |
|
|
76 | (1) |
|
|
76 | (1) |
|
|
77 | (1) |
|
|
77 | (1) |
|
|
77 | (1) |
|
La clase java.io.OutputStream |
|
|
77 | (1) |
|
|
78 | (1) |
|
|
78 | (1) |
|
Las interfaces Closeable y Flushable |
|
|
79 | (1) |
|
|
79 | (2) |
|
La clase FileInputStream y FileOutputStream |
|
|
79 | (2) |
|
|
81 | (13) |
|
Las clases DataInputStream y DataOutputStream |
|
|
81 | (6) |
|
La clase File y RandomAccesFile |
|
|
87 | (7) |
|
|
94 | (3) |
|
Las clases ByteArrayInputStream y ByteArrayOutputStream |
|
|
94 | (1) |
|
Las clases PipedInputStream y PipedOutputStream |
|
|
94 | (1) |
|
Las clases FilterInputStream y FilterOutputStream |
|
|
95 | (1) |
|
Las clases BufferedInputStream y BufferedOutputStream |
|
|
95 | (1) |
|
|
96 | (1) |
|
Las clases Reader y Writer |
|
|
97 | (3) |
|
El analisis de flujos mediante la clase StreamTokenizer |
|
|
98 | (2) |
|
|
100 | (7) |
|
|
100 | (1) |
|
|
101 | (2) |
|
Metodos clear(), flip() y rewind() |
|
|
103 | (1) |
|
|
103 | (1) |
|
|
104 | (1) |
|
Ejemplo: Lectura de un Fichero |
|
|
104 | (3) |
|
|
107 | (16) |
|
|
108 | (1) |
|
El Controlador (Log Manager) |
|
|
109 | (1) |
|
|
110 | (3) |
|
|
111 | (1) |
|
|
111 | (2) |
|
|
113 | (1) |
|
|
114 | (3) |
|
|
115 | (1) |
|
|
115 | (1) |
|
|
115 | (1) |
|
|
116 | (1) |
|
|
116 | (1) |
|
|
117 | (4) |
|
|
117 | (1) |
|
|
117 | (2) |
|
Creando un nuevo tipo de formato |
|
|
119 | (2) |
|
|
121 | (2) |
|
|
123 | (24) |
|
|
124 | (1) |
|
Localizacion e identificacion de recursos |
|
|
125 | (2) |
|
La clase URL y URLConnection |
|
|
125 | (1) |
|
|
126 | (1) |
|
Las clases HttpURLConnection y JarURLConnection |
|
|
127 | (1) |
|
|
127 | (2) |
|
|
127 | (1) |
|
Inet4Address y Inet6Address |
|
|
128 | (1) |
|
SocketAddress y InetSocketAddress |
|
|
128 | (1) |
|
|
129 | (18) |
|
Conexion mediante Sockets de flujo |
|
|
129 | (3) |
|
Creacion de un servidor multiusuario con conexiones de flujo |
|
|
132 | (4) |
|
Creacion de un cliente con conexiones de flujo |
|
|
136 | (4) |
|
Comunicacion sin conexion con datagramas |
|
|
140 | (1) |
|
Aplicacion cliente/servidor con datagramas |
|
|
141 | (6) |
|
|
147 | (50) |
|
|
148 | (1) |
|
|
149 | (1) |
|
|
150 | (1) |
|
Ciclo de vida de un Thread |
|
|
150 | (5) |
|
Suspender, reanuda y parar un encadenamiento |
|
|
153 | (2) |
|
|
155 | (1) |
|
La segmentacion del tiempo |
|
|
156 | (3) |
|
El problema de la exclusion mutua |
|
|
159 | (4) |
|
|
163 | (6) |
|
El problema del productor consumidor |
|
|
166 | (3) |
|
|
169 | (6) |
|
El problema de los lectores/escritores utilizando semaforos |
|
|
170 | (5) |
|
|
175 | (1) |
|
|
176 | (1) |
|
|
176 | (3) |
|
|
179 | (1) |
|
Utilidades de concurrencia |
|
|
180 | (17) |
|
Objetos de sincronizacion |
|
|
181 | (1) |
|
|
181 | (2) |
|
|
183 | (1) |
|
|
184 | (2) |
|
|
186 | (1) |
|
Separacion logica ejecucion |
|
|
186 | (2) |
|
|
188 | (1) |
|
|
189 | (1) |
|
|
190 | (1) |
|
|
191 | (6) |
|
Acceso a las bases de datos con Java |
|
|
197 | (36) |
|
|
198 | (2) |
|
|
198 | (2) |
|
Conexion con la base de datos |
|
|
200 | (2) |
|
|
202 | (7) |
|
|
203 | (3) |
|
|
206 | (3) |
|
Obtencion de los resultados |
|
|
209 | (4) |
|
Posicionamiento por filas |
|
|
211 | (1) |
|
Posicionamiento por columnas |
|
|
211 | (2) |
|
|
213 | (2) |
|
Ejemplo: Datos Personales |
|
|
215 | (14) |
|
Instalacion y Configuracion SimpleSQL |
|
|
215 | (2) |
|
|
217 | (12) |
|
|
229 | (4) |
|
|
229 | (1) |
|
Implementaciones de RowSet |
|
|
229 | (4) |
|
|
233 | (28) |
|
|
234 | (1) |
|
|
234 | (1) |
|
¿Cuando se han de utilizar? |
|
|
234 | (1) |
|
Pasos a seguir para enlazar con una libreria externa |
|
|
235 | (5) |
|
Creacion de la clase en Java |
|
|
236 | (1) |
|
Creacion de un fichero de cabecera |
|
|
236 | (2) |
|
Implementacion de los metodos en C |
|
|
238 | (1) |
|
Creacion de la libreria y ejecucion de la clase |
|
|
239 | (1) |
|
|
240 | (1) |
|
Acceso a los metodos nativos y a sus variables |
|
|
241 | (1) |
|
|
242 | (3) |
|
|
245 | (3) |
|
Acceso a los campos de una clase |
|
|
248 | (5) |
|
Acceso a los metodos en Java |
|
|
253 | (2) |
|
|
255 | (3) |
|
Manejo de hilos en C y C++ |
|
|
258 | (3) |
|
|
261 | (22) |
|
|
262 | (1) |
|
|
262 | (1) |
|
|
263 | (2) |
|
Ciclo de vida de un Servlet |
|
|
264 | (1) |
|
Metodos de la clase Servlet |
|
|
265 | (3) |
|
|
266 | (1) |
|
Generacion de la respuesta |
|
|
267 | (1) |
|
Inicializacion de un servlet |
|
|
268 | (1) |
|
|
268 | (2) |
|
Metodos doGet(), doPost(), doDelete() y doPut() |
|
|
268 | (2) |
|
|
270 | (1) |
|
|
271 | (2) |
|
|
272 | (1) |
|
|
272 | (1) |
|
Enviar una Cookie al cliente |
|
|
272 | (1) |
|
Obtener una Cookie de un cliente |
|
|
272 | (1) |
|
Obtener los valores de una Cookie |
|
|
273 | (1) |
|
|
273 | (10) |
|
|
273 | (2) |
|
|
275 | (3) |
|
|
278 | (1) |
|
|
279 | (4) |
|
|
283 | (30) |
|
|
284 | (1) |
|
|
284 | (2) |
|
|
286 | (3) |
|
|
289 | (1) |
|
|
290 | (4) |
|
|
290 | (1) |
|
|
290 | (1) |
|
|
290 | (1) |
|
|
291 | (1) |
|
|
291 | (1) |
|
|
291 | (1) |
|
|
291 | (1) |
|
|
291 | (1) |
|
|
292 | (1) |
|
Page (Directiva de pagina) |
|
|
292 | (1) |
|
|
292 | (1) |
|
Libreria de etiquetas (taglib) |
|
|
292 | (1) |
|
|
293 | (1) |
|
|
293 | (1) |
|
|
293 | (1) |
|
|
294 | (1) |
|
|
294 | (19) |
|
|
295 | (1) |
|
Ejemplo de desarrollo basado en el modelo de dos capas |
|
|
296 | (1) |
|
|
297 | (1) |
|
Ejemplo de desarrollo basado en el modelo de n-capas |
|
|
297 | (3) |
|
Ejemplo ``Carrito de la compra'' |
|
|
300 | (13) |
|
|
313 | (24) |
|
|
314 | (1) |
|
|
314 | (9) |
|
Proveedor de servicios criptograficos |
|
|
314 | (1) |
|
Clases del motor criptografico |
|
|
314 | (2) |
|
|
316 | (1) |
|
|
316 | (1) |
|
|
317 | (1) |
|
Generacion de numeros aleatorios |
|
|
318 | (1) |
|
Resumen de mensajes y firmas digitales |
|
|
319 | (1) |
|
|
320 | (1) |
|
|
320 | (1) |
|
|
321 | (1) |
|
|
321 | (2) |
|
|
323 | (5) |
|
|
324 | (1) |
|
|
324 | (4) |
|
Servicio de autentificacion y autorizacion JAAS |
|
|
328 | (9) |
|
|
328 | (1) |
|
Definicion del contexto de autenticacion (LoginContext) |
|
|
328 | (2) |
|
|
330 | (5) |
|
|
335 | (2) |
|
|
337 | (48) |
|
|
338 | (1) |
|
|
338 | (1) |
|
|
338 | (2) |
|
|
340 | (2) |
|
|
341 | (1) |
|
|
342 | (1) |
|
POM - Project Object Model |
|
|
343 | (6) |
|
Definiciones para la administracion del proyecto |
|
|
344 | (2) |
|
|
346 | (1) |
|
Construcciones a realizar |
|
|
347 | (1) |
|
|
348 | (1) |
|
|
349 | (3) |
|
|
351 | (1) |
|
|
352 | (1) |
|
Propiedades de un proyecto |
|
|
352 | (3) |
|
Uso de los ficheros de propiedades |
|
|
353 | (1) |
|
Propiedades del proyecto (project.properties) |
|
|
353 | (1) |
|
Propiedades de la construccion de un proyecto (build.properties) |
|
|
353 | (1) |
|
Propiedades de construccion del Usuario (build.properties) |
|
|
354 | (1) |
|
Propiedades de construccion de Maven |
|
|
354 | (1) |
|
|
355 | (4) |
|
|
356 | (2) |
|
|
358 | (1) |
|
|
359 | (5) |
|
Repositorios para la descarga de dependencias |
|
|
359 | (1) |
|
Repositorios para la publicacion de artefactos |
|
|
360 | (2) |
|
Publicacion de un artefacto en el repositorio local |
|
|
362 | (1) |
|
Publicacion de un artefacto en el repositorio remoto |
|
|
362 | (1) |
|
|
362 | (2) |
|
|
364 | (3) |
|
|
365 | (2) |
|
Ejecucion de pruebas unitarias |
|
|
367 | (1) |
|
Generacion de la documentacionde un proyecto |
|
|
368 | (2) |
|
Descarga y actualizacion de plug-ins |
|
|
370 | (1) |
|
Manejo de multiples proyectos |
|
|
370 | (4) |
|
|
371 | (1) |
|
|
372 | (2) |
|
|
374 | (1) |
|
|
374 | (3) |
|
|
375 | (1) |
|
Construcciones reproducibles |
|
|
376 | (1) |
|
|
376 | (1) |
|
Escribir nuestros propios plug-ins |
|
|
376 | (1) |
|
|
377 | (1) |
|
Ejemplo creacion de un proyecto |
|
|
377 | (5) |
|
Manejo del proyecto con Maven |
|
|
379 | (1) |
|
|
380 | (1) |
|
Compilar e instalar de la aplicacion |
|
|
381 | (1) |
|
|
382 | (3) |
|
|
385 | (30) |
|
|
386 | (1) |
|
|
386 | (2) |
|
|
388 | (21) |
|
|
388 | (2) |
|
|
390 | (1) |
|
|
390 | (1) |
|
|
391 | (3) |
|
|
394 | (1) |
|
|
395 | (2) |
|
|
397 | (1) |
|
|
398 | (2) |
|
|
400 | (1) |
|
|
400 | (1) |
|
|
401 | (1) |
|
|
401 | (1) |
|
|
402 | (3) |
|
|
405 | (2) |
|
|
407 | (1) |
|
|
407 | (1) |
|
|
408 | (1) |
|
|
408 | (1) |
|
|
409 | (2) |
|
Visualizacion del fichero struts-config |
|
|
410 | (1) |
|
|
411 | (1) |
|
|
412 | (3) |
|
|
412 | (3) |
|
Pruebas Unitarias (JUnit) |
|
|
415 | (28) |
|
|
416 | (1) |
|
Caracteristicas principales de JUnit |
|
|
416 | (3) |
|
|
417 | (1) |
|
|
417 | (1) |
|
|
418 | (1) |
|
Lanzamiento conjunto de pruebas unitarias |
|
|
418 | (1) |
|
Estabilidad de un proyecto |
|
|
419 | (1) |
|
|
419 | (8) |
|
Creacion de una prueba unitaria (TestCase) |
|
|
420 | (1) |
|
|
420 | (1) |
|
Pasos a seguir para la construccion de la prueba unitaria |
|
|
421 | (4) |
|
|
425 | (1) |
|
Creacion de un conjunto de pruebas unitarias (TestSuite) |
|
|
426 | (1) |
|
|
427 | (4) |
|
Creacion de un prueba unitaria |
|
|
427 | (3) |
|
|
430 | (1) |
|
|
431 | (3) |
|
Inicializacion de las pruebas unitarias |
|
|
431 | (1) |
|
Orden de ejecucion de las pruebas unitarias |
|
|
432 | (1) |
|
Metodos setUp() y tearDown() |
|
|
432 | (1) |
|
Documentacion de los casos de prueba |
|
|
432 | (1) |
|
|
433 | (1) |
|
Localizacion de las clases de prueba |
|
|
433 | (1) |
|
|
434 | (9) |
|
|
434 | (1) |
|
|
435 | (3) |
|
|
438 | (5) |
|
|
443 | (22) |
|
|
444 | (1) |
|
|
445 | (1) |
|
|
446 | (2) |
|
|
446 | (1) |
|
|
447 | (1) |
|
|
447 | (1) |
|
|
448 | (2) |
|
|
450 | (7) |
|
|
454 | (1) |
|
Ejecutar el objeto remoto |
|
|
455 | (2) |
|
Comunicacion del cliente al servidor |
|
|
457 | (1) |
|
|
458 | (7) |
|
Enterpise JavaBeans (EJB) |
|
|
465 | (16) |
|
|
466 | (1) |
|
|
466 | (1) |
|
|
467 | (1) |
|
|
468 | (2) |
|
EJB de Sesion (Session Bean) |
|
|
470 | (1) |
|
EJB Entidad (Entity Bean) |
|
|
471 | (2) |
|
EJB orientados a Mensajes |
|
|
473 | (1) |
|
Ejemplo uso EJB de sesion |
|
|
473 | (8) |
|
Creacion del EJB de sesion |
|
|
474 | (1) |
|
Creacion de la interfaz EJBHome |
|
|
474 | (1) |
|
Creacion de la interfaz EJBObject |
|
|
474 | (2) |
|
Creacion del EJB de sesion |
|
|
476 | (1) |
|
Creacion del descriptor de despliegue |
|
|
477 | (2) |
|
|
479 | (1) |
|
|
479 | (2) |
|
Apendice. Contenido del CD-ROM |
|
|
481 | (4) |
|
|
482 | (3) |
|
|
482 | (1) |
|
|
483 | (1) |
|
|
483 | (1) |
|
|
483 | (1) |
|
|
484 | (1) |
|
|
484 | (1) |
Indice alfabetico |
|
485 | |