http://www.abc.es/media/espana/2016/12/30/silvia-kiwF--620x349@abc.jpgA sus 31 años ya ha publicado en una prestigiosa revista científica https://t.co/3r5iT8yqS3
— JOSE AGUSTIN VERA PI (@joseagustinvera) 3 de enero de 2017
Publicado el 1 octubre, 2016 Estándar
Responder
Aquí tenéis el que probablemente sea el mejor
editor fotográfico disponible para Android y además de forma totalmente
gratuita en la PlayStore. Muy fácil de usar y con muchas opciones disponibles.
Haz clic aquí para conocer su manejo.

La
composición visual: COLLAGE.
Requisitos: smartphone con
sistema Android (o Iphone)
Condiciones de uso
del smartphone: puedes utilizarlo en el centro educativo, aunque unicamente en la
clase de Imagen y Sonido.
Actividad: Prepara una selección
de fotografías de paisajes de Fuente Álamo de Murcia y/o sus alrededores hechas
por tí mismo. También pueden ser una colección de fotos de un viaje que hayas
hecho, un tipo de plantas, etc. A continuación, haz un collage con todas ellas.
Uno de los huecos (concretamente el colocado en la parte inferior derecha)
previstos en el collage tendrá un fondo de color liso (por ejemplo:negro,
azul…) y se utilizará para poner el nombre del autor(a) de las fotos. Cada
alumno(a) realizará su propio collage aunque tenga que recurrir al smartphone
de otro(a) compañero(a).
A continuación envía tu producción visual foto montaje-collage al profesor.
Presta atención al plazo de entrega establecido.
Publicado el 25 septiembre, 2016 Estándar
Responder
Haz clic aquí para
acceder a: Cineducación: Campo y Fuera de campo.
Publicado el 25 septiembre, 2016 Estándar
Responder
Haz clic aquí para
visualizar: Encuadre y composición
ACTIVIDAD:
1º) Explica qué es un
encuadre.
2º) Estudia las diversas
directrices a tener en cuenta para hacer un encuadre:
a) Motivo.
b) Fondo.
c) Línea de horizonte.
d) Elección del tipo de
encuadre.
d.1.) Horizontal.
d.2.) Vertical.
d.3.) Inclinado.
e) Poner.
f) Tipos de formato.
f.1.) Horizontal.
f.2.) Vertical.
g) Diagonal natural de
lectura.
h) Regla de los Tercios.

i) Líneas dominantes.
i.1.) En S.

i.2.) Paralelas.
i.3.) La de horizonte ¿Cómo
debe de colocarse?
i.4.) Diagonales.
i.5.) La mirada (línea
dominante imaginaria).
i.6.) El movimiento (línea
dominante imaginaria).
j) Enfoque ¿Cómo conseguir
mayor o menor profundidad de campo?
k) Punto de vista
(técnicas).
k.1.) Picado.
k.2.) Contrapicado.
k.3.) Toma a ras.
Introduce una imagen
acompañando a cada una de las diferentes directrices empleadas para hacer un
encuadre que ilustre la explicación de las diferentes directrices para hacer un
encuadre (al menos utiliza 10 imágenes de apoyo en esta actividad).
Publicado el 25 septiembre, 2016 Estándar
Responder
Haz clic aquí para acceder
al Curso de Video: 11 El Encuadre y la Luz
Publicado el 25 septiembre, 2016 Estándar
Responder
Haz clic aquí para acceder a un vídeo explicativo sobre Ángulos de cámara, tipos de planos, movimientos de cámara y
conocer las diferentes figuras en una producción audiovisual.
Accdede haciendo clic aquí a definiciones de tipos de planos.
TIPOS DE PLANO:
- General.
- Medio.
- Total o entero.
- 1º plano.
- Americano o de Tres Cuartos.
- Sobre el hombro.
- Detalle.
- Subjetivo o punto de vista.
ÁNGULOS DE CÁMARA:
- Normal.
- Cenital.
- Contrapicado.
- Picado.
- Supine.
MOVIMIENTOS DE CÁMARA:
- Paneo.
- Tilt.
- Travellings
- Cámara en mano.
- Zoom.
ACTIVIDAD:
1º) Explica y pon un
ejemplo de los tipos de planos que se suelen utilizar durante una producción
audivisual.
2º) Comenta y pon ejemplos
de tipos de ángulos (puedes capturar pantallas e insertarlas como ejemplos
junto a la explicación correspondiente).
3º) Explica los tipos de
movimientos de cámara más usuales en una producción audiovisual (puedes
capturar pantallas e insertarlas como ejemplos junto a la explicación del tipo
de movimiento).
Criterios de calificacion:
Cada explicación debe
quedar correctamente explicada y acompañada de una imagen fija (o varias,
cuando se trate de cámaras en movimiento).
Ejemplo de plano detalle de
Creazione di Adamo (en la Capilla Sixtina)

Publicado el 25 septiembre, 2016 Estándar
Responder
Visualiza el siguiente vídeo con
6 ángulos de cámara básicos para tu cortometraje. Haz clic aquí.
Publicado el 25 septiembre, 2016 Estándar
Responder
Cineeducación: lenguaje audiovisual. Haz clic aquí para visualizarlo. De1ºspués responde a las siguientes
cuestiones:
1º) ¿Qué entendemos por
lenguaje audiovisual?
2º) Composición del sonido
3º) Composición de la
imagen.
Visualiza las escenas de El
resplandor de Stanley Kubrick (1980) y Titanic de James Cameron ((1990) y
asócialas a lo que se entiende por lenguaje audiovisual.
Archivo de la categoría:BLOQUE 2. Análisis de situaciones audiovisuales
2.1.1.
Los grandes pecados en fotografía
Publicado el 25 septiembre, 2016 Estándar
Responder
Accede a “Los grandes pecados en fotografía” haciendo clic aquí.
2.1.1.
Clase Magistral sobre continuidad cinematográfica por Mariana Gironella
Publicado el 25 septiembre, 2016 Estándar
Responder
Haz clic aquí para acceder
a: Clase Magistral sobre Continuidad
Cinematográfica por Mariana Gironella
2.1.1.
Cineducación: continuidad narrativa
Publicado el 25 septiembre, 2016 Estándar
Responder
Haz clic aquí para acceder
a: Cineducación: continuidad narrativa
Archivo de la categoría:BLOQUE 4. Captación de imágenes fotográficas y
de vídeo
4.1.2.
El diafragma
Publicado el 25 septiembre, 2016 Estándar
Responder
Visualiza “El diafragma” haciendo clic aquí.
4.1.2.
Curso de vídeo: La videocámara
Publicado el 25 septiembre, 2016 Estándar
Responder
Haz clic aquí para acceder a: Curso de vídeo “La videocámara”.
4.1.2.
Iluminación básica
Publicado el 25 septiembre, 2016 Estándar
Responder
Haz clic aquí para acceder
a: Iluminación básica
Archivo de la categoría:BLOQUE 5. Tratamiento digital de imágenes
5.1.1.
Exposición correcta
Publicado el 25 septiembre, 2016 Estándar
Responder
Haz clic aquí para acceder a: Exposición
correcta
Archivo de la categoría:BLOQUE 7. Diseño de bandas sonoras
7.1.1.
Cineducación: banda sonora
Publicado el 25 septiembre, 2016 Estándar
Responder
Archivo de la categoría:BLOQUE 9. Cualidades téc. del equipam. de
sonido idóneo en radio y medios audiovis.
9.1.3.
Curso de vídeo: 03 La evolución de los formatos de vídeo
Publicado el 25 septiembre, 2016 Estándar
Responder
Haz clic aquí para acceder al
vídeo sobre la evolución de los formatos de vídeo
Mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
5.1.1.
Exposición correcta
1.1.2.
Autodesk Pixlr: editor fotográfico Android.
Aquí tenéis el
que probablemente sea el mejor editor fotográfico disponible para Android y
además de forma totalmente gratuita en la PlayStore. Muy fácil de usar y con
muchas opciones disponibles. Haz clic aquí para conocer
su manejo.

La composición visual: COLLAGE.
Requisitos: smartphone
con sistema Android (o Iphone)
Condiciones de uso del
smartphone: puedes utilizarlo en el centro educativo,
aunque unicamente en la clase de Imagen y Sonido.
Actividad: Prepara
una selección de fotografías de paisajes de Fuente Álamo de Murcia y/o sus
alrededores hechas por tí mismo. También pueden ser una colección de fotos de
un viaje que hayas hecho, un tipo de plantas, etc. A continuación, haz un
collage con todas ellas. Uno de los huecos (concretamente el colocado en la
parte inferior derecha) previstos en el collage tendrá un fondo de color liso
(por ejemplo:negro, azul…) y se utilizará para poner el nombre del autor(a) de
las fotos. Cada alumno(a) realizará su propio collage aunque tenga que recurrir
al smartphone de otro(a) compañero(a).
A continuación envía tu
producción visual foto montaje-collage al profesor. Presta atención al plazo de
entrega establecido.
7.1.1.
Cineducación: banda sonora
Haz clic aquí para acceder a: Exposición correcta
4.1.2.
El diafragma
Visualiza “El
diafragma” haciendo clic aquí.
4.1.2.
Curso de vídeo: La videocámara
Haz clic aquí para acceder a: Curso
de vídeo “La videocámara”.
4.1.2.
Iluminación básica
Haz clic aquí para acceder
a: Iluminación básica
Publicado el 1 octubre, 2016 Estándar Responder Aquí tenéis el que probablemente sea el mejor editor fotográfico disponible para Android y además de forma totalmente gratuita en la PlayStore. Muy fácil de usar y con muchas opciones disponibles. Haz clic aquí para conocer su manejo. La composición visual: COLLAGE. Requisitos: smartphone con sistema Android (o Iphone) Condiciones de uso del smartphone: puedes utilizarlo en el centro educativo, aunque unicamente en la clase de Imagen y Sonido. Actividad: Prepara una selección de fotografías de paisajes de Fuente Álamo de Murcia y/o sus alrededores hechas por tí mismo. También pueden ser una colección de fotos de un viaje que hayas hecho, un tipo de plantas, etc. A continuación, haz un collage con todas ellas. Uno de los huecos (concretamente el colocado en la parte inferior derecha) previstos en el collage tendrá un fondo de color liso (por ejemplo:negro, azul…) y se utilizará para poner el nombre del autor(a) de las fotos. Cada alumno(a) realizará su propio collage aunque tenga que recurrir al smartphone de otro(a) compañero(a). A continuación envía tu producción visual foto montaje-collage al profesor. Presta atención al plazo de entrega establecido. 1.1.4. Cineducación: Campo y Fuera de campo Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder a: Cineducación: Campo y Fuera de campo. 1.1.3. Encuadre y composición Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para visualizar: Encuadre y composición ACTIVIDAD: 1º) Explica qué es un encuadre. 2º) Estudia las diversas directrices a tener en cuenta para hacer un encuadre: a) Motivo. b) Fondo. c) Línea de horizonte. d) Elección del tipo de encuadre. d.1.) Horizontal. d.2.) Vertical. d.3.) Inclinado. e) Poner. f) Tipos de formato. f.1.) Horizontal. f.2.) Vertical. g) Diagonal natural de lectura. h) Regla de los Tercios. i) Líneas dominantes. i.1.) En S. i.2.) Paralelas. i.3.) La de horizonte ¿Cómo debe de colocarse? i.4.) Diagonales. i.5.) La mirada (línea dominante imaginaria). i.6.) El movimiento (línea dominante imaginaria). j) Enfoque ¿Cómo conseguir mayor o menor profundidad de campo? k) Punto de vista (técnicas). k.1.) Picado. k.2.) Contrapicado. k.3.) Toma a ras. Introduce una imagen acompañando a cada una de las diferentes directrices empleadas para hacer un encuadre que ilustre la explicación de las diferentes directrices para hacer un encuadre (al menos utiliza 10 imágenes de apoyo en esta actividad). 1.1.3. Curso de vídeo: 11 El encuadre y la luz Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder al Curso de Video: 11 El Encuadre y la Luz 1.1.3. Ángulos de cámara, tipos de planos, movimientos de cámara Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder a un vídeo explicativo sobre Ángulos de cámara, tipos de planos, movimientos de cámara y conocer las diferentes figuras en una producción audiovisual. Accdede haciendo clic aquí a definiciones de tipos de planos. TIPOS DE PLANO: 1. General. 2. Medio. 3. Total o entero. 4. 1º plano. 5. Americano o de Tres Cuartos. 6. Sobre el hombro. 7. Detalle. 8. Subjetivo o punto de vista. ÁNGULOS DE CÁMARA: 1. Normal. 2. Cenital. 3. Contrapicado. 4. Picado. 5. Supine. MOVIMIENTOS DE CÁMARA: 1. Paneo. 2. Tilt. 3. Travellings 4. Cámara en mano. 5. Zoom. ACTIVIDAD: 1º) Explica y pon un ejemplo de los tipos de planos que se suelen utilizar durante una producción audivisual. 2º) Comenta y pon ejemplos de tipos de ángulos (puedes capturar pantallas e insertarlas como ejemplos junto a la explicación correspondiente). 3º) Explica los tipos de movimientos de cámara más usuales en una producción audiovisual (puedes capturar pantallas e insertarlas como ejemplos junto a la explicación del tipo de movimiento). Criterios de calificacion: Cada explicación debe quedar correctamente explicada y acompañada de una imagen fija (o varias, cuando se trate de cámaras en movimiento). Ejemplo de plano detalle de Creazione di Adamo (en la Capilla Sixtina) 1.1.3. 6 ángulos de cámara básicos para tu cortometraje Publicado el 25 septiembre, 2016 Estándar Responder Visualiza el siguiente vídeo con 6 ángulos de cámara básicos para tu cortometraje. Haz clic aquí. 1.1.2. Cineducación: lenguaje audiovisual Publicado el 25 septiembre, 2016 Estándar Responder Cineeducación: lenguaje audiovisual. Haz clic aquí para visualizarlo. De1ºspués responde a las siguientes cuestiones: 1º) ¿Qué entendemos por lenguaje audiovisual? 2º) Composición del sonido 3º) Composición de la imagen. Visualiza las escenas de El resplandor de Stanley Kubrick (1980) y Titanic de James Cameron ((1990) y asócialas a lo que se entiende por lenguaje audiovisual. Archivo de la categoría:BLOQUE 2. Análisis de situaciones audiovisuales 2.1.1. Los grandes pecados en fotografía Publicado el 25 septiembre, 2016 Estándar Responder Accede a “Los grandes pecados en fotografía” haciendo clic aquí. 2.1.1. Clase Magistral sobre continuidad cinematográfica por Mariana Gironella Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder a: Clase Magistral sobre Continuidad Cinematográfica por Mariana Gironella 2.1.1. Cineducación: continuidad narrativa Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder a: Cineducación: continuidad narrativa Archivo de la categoría:BLOQUE 4. Captación de imágenes fotográficas y de vídeo 4.1.2. El diafragma Publicado el 25 septiembre, 2016 Estándar Responder Visualiza “El diafragma” haciendo clic aquí. 4.1.2. Curso de vídeo: La videocámara Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder a: Curso de vídeo “La videocámara”. 4.1.2. Iluminación básica Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder a: Iluminación básica Archivo de la categoría:BLOQUE 5. Tratamiento digital de imágenes 5.1.1. Exposición correcta Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder a: Exposición correcta Archivo de la categoría:BLOQUE 7. Diseño de bandas sonoras 7.1.1. Cineducación: banda sonora Publicado el 25 septiembre, 2016 Estándar Responder Cineducación: Banda Sonor. Accede haciendo clic aquí. Archivo de la categoría:BLOQUE 9. Cualidades téc. del equipam. de sonido idóneo en radio y medios audiovis. 9.1.3. Curso de vídeo: 03 La evolución de los formatos de vídeo Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder al vídeo sobre la evolución de los formatos de vídeo Mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm 5.1.1. Exposición correcta 1.1.2. Autodesk Pixlr: editor fotográfico Android. Publicado el 1 octubre, 2016 Estándar Responder Aquí tenéis el que probablemente sea el mejor editor fotográfico disponible para Android y además de forma totalmente gratuita en la PlayStore. Muy fácil de usar y con muchas opciones disponibles. Haz clic aquí para conocer su manejo. La composición visual: COLLAGE. Requisitos: smartphone con sistema Android (o Iphone) Condiciones de uso del smartphone: puedes utilizarlo en el centro educativo, aunque unicamente en la clase de Imagen y Sonido. Actividad: Prepara una selección de fotografías de paisajes de Fuente Álamo de Murcia y/o sus alrededores hechas por tí mismo. También pueden ser una colección de fotos de un viaje que hayas hecho, un tipo de plantas, etc. A continuación, haz un collage con todas ellas. Uno de los huecos (concretamente el colocado en la parte inferior derecha) previstos en el collage tendrá un fondo de color liso (por ejemplo:negro, azul…) y se utilizará para poner el nombre del autor(a) de las fotos. Cada alumno(a) realizará su propio collage aunque tenga que recurrir al smartphone de otro(a) compañero(a). A continuación envía tu producción visual foto montaje-collage al profesor. Presta atención al plazo de entrega establecido. 7.1.1. Cineducación: banda sonora Publicado el 25 septiembre, 2016 Estándar Responder Cineducación: Banda Sonor. Accede haciendo clic aquí. Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder a: Exposición correcta 4.1.2. El diafragma Publicado el 25 septiembre, 2016 Estándar Responder Visualiza “El diafragma” haciendo clic aquí. 4.1.2. Curso de vídeo: La videocámara Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder a: Curso de vídeo “La videocámara”. 4.1.2. Iluminación básica Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder a: Iluminación básica Archivo de la categoría: BLOQUE 1. Rec. expresivos utilizados en producc. audiovisuales 1.1.2. Autodesk Pixlr: editor fotográfico Android. Publicado el 1 octubre, 2016 Estándar Responder Aquí tenéis el que probablemente sea el mejor editor fotográfico disponible para Android y además de forma totalmente gratuita en la PlayStore. Muy fácil de usar y con muchas opciones disponibles. Haz clic aquí para conocer su manejo. Resultado de imagen de autodesk pixlr La composición visual: COLLAGE. Requisitos: smartphone con sistema Android (o Iphone) Condiciones de uso del smartphone: puedes utilizarlo en el centro educativo, aunque unicamente en la clase de Imagen y Sonido. Actividad: Prepara una selección de fotografías de paisajes de Fuente Álamo de Murcia y/o sus alrededores hechas por tí mismo. También pueden ser una colección de fotos de un viaje que hayas hecho, un tipo de plantas, etc. A continuación, haz un collage con todas ellas. Uno de los huecos (concretamente el colocado en la parte inferior derecha) previstos en el collage tendrá un fondo de color liso (por ejemplo:negro, azul…) y se utilizará para poner el nombre del autor(a) de las fotos. Cada alumno(a) realizará su propio collage aunque tenga que recurrir al smartphone de otro(a) compañero(a). A continuación envía tu producción visual foto montaje-collage al profesor. Presta atención al plazo de entrega establecido. 1.1.4. Cineducación: Campo y Fuera de campo Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder a: Cineducación: Campo y Fuera de campo. 1.1.3. Encuadre y composición Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para visualizar: Encuadre y composición ACTIVIDAD: 1º) Explica qué es un encuadre. 2º) Estudia las diversas directrices a tener en cuenta para hacer un encuadre: a) Motivo. b) Fondo. c) Línea de horizonte. d) Elección del tipo de encuadre. d.1.) Horizontal. d.2.) Vertical. d.3.) Inclinado. e) Poner. f) Tipos de formato. f.1.) Horizontal. f.2.) Vertical. g) Diagonal natural de lectura. h) Regla de los Tercios. 1-1-3-b-foto-regla-3-partes i) Líneas dominantes. i.1.) En S. 1-1-3-b-foto-en-s i.2.) Paralelas. i.3.) La de horizonte ¿Cómo debe de colocarse? i.4.) Diagonales. i.5.) La mirada (línea dominante imaginaria). i.6.) El movimiento (línea dominante imaginaria). j) Enfoque ¿Cómo conseguir mayor o menor profundidad de campo? k) Punto de vista (técnicas). k.1.) Picado. k.2.) Contrapicado. k.3.) Toma a ras. Introduce una imagen acompañando a cada una de las diferentes directrices empleadas para hacer un encuadre que ilustre la explicación de las diferentes directrices para hacer un encuadre (al menos utiliza 10 imágenes de apoyo en esta actividad). 1.1.3. Curso de vídeo: 11 El encuadre y la luz Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder al Curso de Video: 11 El Encuadre y la Luz 1.1.3. Ángulos de cámara, tipos de planos, movimientos de cámara Publicado el 25 septiembre, 2016 Estándar Responder Haz clic aquí para acceder a un vídeo explicativo sobre Ángulos de cámara, tipos de planos, movimientos de cámara y conocer las diferentes figuras en una producción audiovisual. Accdede haciendo clic aquí a definiciones de tipos de planos. TIPOS DE PLANO: General. Medio. Total o entero. 1º plano. Americano o de Tres Cuartos. Sobre el hombro. Detalle. Subjetivo o punto de vista. ÁNGULOS DE CÁMARA: Normal. Cenital. Contrapicado. Picado. Supine. MOVIMIENTOS DE CÁMARA: Paneo. Tilt. Travellings Cámara en mano. Zoom. ACTIVIDAD: 1º) Explica y pon un ejemplo de los tipos de planos que se suelen utilizar durante una producción audivisual. 2º) Comenta y pon ejemplos de tipos de ángulos (puedes capturar pantallas e insertarlas como ejemplos junto a la explicación correspondiente). 3º) Explica los tipos de movimientos de cámara más usuales en una producción audiovisual (puedes capturar pantallas e insertarlas como ejemplos junto a la explicación del tipo de movimiento). Criterios de calificacion: Cada explicación debe quedar correctamente explicada y acompañada de una imagen fija (o varias, cuando se trate de cámaras en movimiento). Ejemplo de plano detalle de Creazione di Adamo (en la Capilla Sixtina) la-creacion-de-adan-creazione-di-adamo-1 1.1.3. 6 ángulos de cámara básicos para tu cortometraje Publicado el 25 septiembre, 2016 Estándar Responder Visualiza el siguiente vídeo con 6 ángulos de cámara básicos para tu cortometraje. Haz clic aquí. 1.1.2. Cineducación: lenguaje audiovisual Publicado el 25 septiembre, 2016 Estándar Responder Cineeducación: lenguaje audiovisual. Haz clic aquí para visualizarlo. De1ºspués responde a las siguientes cuestiones: 1º) ¿Qué entendemos por lenguaje audiovisual? 2º) Composición del sonido 3º) Composición de la imagen. Visualiza las escenas de El resplandor de Stanley Kubrick (1980) y Titanic de James Cameron ((1990) y asócialas a lo que se entiende por lenguaje audiovisual. Tutorial básico de Java EE Sólo una tecnología puede programar todos estos dispositivos En esta ocasión vamos a por este: Java EE Copyright Copyright (c) 2010, Abraham Otero. Este documento puede ser distribuido solo bajo los términos y condiciones de la licencia de Documentación de javaHispano v1.0 o posterior (la última versión se encuentra en http://www.javahispano.org/licencias/). Para cualquier duda, consulta, insulto o tirón de orejas sobre este tutorial dirigirse a abraham@javahispano.org. Tutorial básico de Java EE 2 de 228 Tutorial de javaHispano http://javahispano.org Tutorial básico de Java EE 3 de 228 Tutorial de javaHispano http://javahispano.org Índice Índice ................................................................................................................................ 3 Preámbulo ......................................................................................................................... 8 Guía para usar este tutorial ............................................................................................. 10 1 HTTP ...................................................................................................................... 12 1.1 Las URL ......................................................................................................... 13 1.2 Peticiones HTTP ............................................................................................. 14 1.3 Respuestas HTTP ........................................................................................... 17 1.4 Códigos de estado del protocolo http ............................................................. 17 2 HTML ..................................................................................................................... 20 2.1 Las marcas o etiquetas .................................................................................... 21 2.2 Caracteres especiales ...................................................................................... 23 2.3 Etiquetas relacionadas con la presentación de texto ....................................... 24 2.3.1 Títulos de encabezamiento ..................................................................... 24 2.3.2 Párrafos, líneas y tipos de fuente ............................................................ 24 2.4 Listas ............................................................................................................... 30 2.5 Enlaces ............................................................................................................ 33 2.6 Imágenes ......................................................................................................... 36 2.7 Tablas ............................................................................................................. 37 2.8 Creación de formularios ................................................................................. 39 2.8.1 Campos de texto ..................................................................................... 40 2.8.2 RadioButton ............................................................................................ 41 2.8.3 Checkbox ................................................................................................ 42 2.8.4 Botones ................................................................................................... 43 Tutorial básico de Java EE 4 de 228 Tutorial de javaHispano http://javahispano.org 2.8.5 Campos de password .............................................................................. 44 2.8.6 Campos ocultos ...................................................................................... 44 2.8.7 Listas de selección .................................................................................. 45 2.8.8 Áreas de texto ......................................................................................... 46 2.8.9 Ejemplo de un formulario ....................................................................... 48 3 Breve introducción a las hojas de estilo (CSS) ...................................................... 52 3.1 Referenciando una hoja de estilo desde un documento .................................. 53 3.2 Sintaxis de las hojas de estilo ......................................................................... 53 3.2.1 Identificadores y clases ........................................................................... 55 3.3 Estilos CSS ..................................................................................................... 58 3.3.1 Estilos para texto .................................................................................... 58 3.3.2 Márgenes ................................................................................................ 61 3.3.3 Bordes ..................................................................................................... 61 3.4 Enlaces ............................................................................................................ 62 3.5 Un ejemplo ..................................................................................................... 64 4 Un primer vistazo a los Servlets ............................................................................. 68 4.1 El servidor de aplicaciones ............................................................................. 68 4.2 Estructura de directorios de una aplicación web ............................................ 69 4.3 Nuestro primer Servlet.................................................................................... 71 4.4 HttpServletRequest y HttpServletResponse ................................................... 77 4.5 Un Servlet que procesa un formulario ............................................................ 83 4.5.1 El ejemplo anterior apesta ...................................................................... 87 5 Ciclo de vida de los Servlets .................................................................................. 91 5.1 Configurando los Servlet: ServletConfig ....................................................... 92 5.2 Un ejemplo ..................................................................................................... 94 6 Recordando al usuario: sesiones y cookies............................................................. 96 Tutorial básico de Java EE 5 de 228 Tutorial de javaHispano http://javahispano.org 6.1 HttpSession ..................................................................................................... 96 6.1.1 Ejemplo: SessionServlet ......................................................................... 99 6.2 Las Cookies .................................................................................................. 102 6.2.1 Un ejemplo: .......................................................................................... 104 6.3 Sesiones vs Cookies ..................................................................................... 106 7 Compartiendo información entre Servlets ............................................................ 108 7.1 ServletContext .............................................................................................. 108 7.2 Compartir información dentro de una misma petición ................................. 111 7.3 Guardando información en el contexto de la aplicación .............................. 114 7.4 Recapitulando: opciones para "recordar" información ................................. 117 8 Gestión declarativa de errores en la aplicación .................................................... 119 8.1 Gestión de códigos de error http ................................................................... 120 8.2 Gestión declarativa de excepciones .............................................................. 121 9 Problemas de concurrencia con los Servlets......................................................... 125 9.1 Un Servlet con problemas de concurrencia .................................................. 125 9.2 ¿Con qué variables pueden aparecer los problemas de concurrencia? ......... 131 9.3 Una primera (cutre) solución a los problemas de concurrencia ................... 132 9.4 Una mejor solución a los problemas de concurrencia .................................. 133 10 Bases de datos y los Servlets ............................................................................ 136 10.1 Empleando JDBC directamente.................................................................... 136 10.2 Empleando el pool de conexiones ................................................................ 142 11 Reaccionando a eventos en el contenedor: listeners y filtros ........................... 146 11.1 ServletContextListener: arranque y parada de la aplicación ........................ 146 11.2 Escuchando eventos de sesión ...................................................................... 149 11.3 Filtros ............................................................................................................ 151 11.3.1 Un ejemplo de filtro .............................................................................. 154 Tutorial básico de Java EE 6 de 228 Tutorial de javaHispano http://javahispano.org 12 Páginas JSP ....................................................................................................... 158 12.1 Despliegue de las páginas JSP ...................................................................... 160 12.2 Mi primera página JSP ................................................................................. 161 12.3 Sintaxis de las páginas JSP ........................................................................... 162 12.3.1 Comentarios en las páginas JSP ........................................................... 162 12.3.2 Etiquetas de declaración ....................................................................... 163 12.3.3 Etiquetas de scriptlet ............................................................................. 164 12.3.4 Etiquetas de expresiones ....................................................................... 166 12.3.5 Etiquetas de directivas .......................................................................... 168 12.4 Variables implícitas en las páginas JSP ........................................................ 171 12.5 Un ejemplo de una página JSP ..................................................................... 172 12.6 Tipos de errores en las páginas JSP .............................................................. 174 13 Acciones estándar JSP ...................................................................................... 176 13.1 Sintaxis de las acciones estándar JSP ........................................................... 177 13.1.1 Manipulación de Java Beans ................................................................ 177 13.1.2 Accediendo a los parámetros de un formulario .................................... 179 13.1.3 Redirigiendo peticiones entre páginas JSP ........................................... 182 13.2 Poniendo todo esto junto: aplicación para salvar gatitos .............................. 182 13.2.1 Problemas con esta aplicación .............................................................. 189 13.3 Creando etiquetas a medida .......................................................................... 190 14 Poniéndolo todo junto en una aplicación: BasicCRUDWebApp ..................... 198 14.1 Patrón MVC .................................................................................................. 198 14.2 BasicCRUDWebApp .................................................................................... 199 14.3 El modelo y la persistencia (patrón DAO) ................................................... 201 14.4 El controlador ............................................................................................... 211 14.5 La vista ......................................................................................................... 219 Tutorial básico de Java EE 7 de 228 Tutorial de javaHispano http://javahispano.org 14.6 Cada una de las interacciones en más detalle ............................................... 224 15 ¿Y ahora qué? ................................................................................................... 226 15.1 Si has llegado hasta aquí estás en deuda con la comunidad ......................... 227 Tutorial básico de Java EE 8 de 228 Tutorial de javaHispano http://javahispano.org Preámbulo Hace aproximadamente 10 años acababa de comenzar mi doctorado en la Universidad de Santiago de Compostela. No tenía ningún tipo de financiación, y en el departamento donde estaba trabajando me echaron un cable para conseguir un trabajo impartiendo cursos de programación Java en la Universidad. Para impartir los cursos debía crear unos apuntes. Así que comencé a escribir un documento al cual titulé "Tutorial básico de Java". Esta intrascendente acción fue uno de esos pequeños hechos aleatorios que suceden en tu vida y que te la cambian completamente. El tutorial tuvo mucha aceptación entre los alumnos. Lo acabé enviando a una página web que se llamaba javaHispano.org para que lo publicasen, lo cual acabó haciendo que me uniese a los chicos que estaban detrás de la página. Con el tiempo, acabé siendo el presidente de la asociación sin ánimo de lucro que creamos a posteriori, y desde entonces prácticamente todos los años he estado involucrado en organizar una conferencia Java en España (entre otras muchas cosas) bajo el banner de javaHispano. El tutorial, del cual desde el año 2000 he escrito 3 revisiones, es el documento más descargado de javaHispano.org, sumando a estas alturas bastante más de un cuarto de millón de descargas. Mucha gente me ha escrito para darme las gracias por ese documento; no pasa un mes sin que reciba al menos un e-mail al respecto. Eso 10 años después; en su día recibía varios a la semana. También me han ofrecido escribir un libro sobre Java a raíz de este tutorial. Y una revista me pidió que escribiese una serie de artículos introductorios al lenguaje Java para ella, que finalmente acabó publicando tanto por separado en números normales de la revista, como en un monográfico especial que sólo contenía mis artículos. Mucha gente me ha escrito para pedir una continuación del "Tutorial básico de Java" donde se aborde Java EE. Sin duda, es la cosa que más veces me han pedido desde que me uní a javaHispano. Incluso una persona me ha dicho directamente que le indique un Tutorial básico de Java EE 9 de 228 Tutorial de javaHispano http://javahispano.org número de cuenta y que me pagaba por escribir esa continuación (de verdad, no es una broma). La falta de tiempo siempre me había impedido emprender esta tarea. Han pasado 10 años desde que escribí aquel primer tutorial. Ahora soy profesor en otra universidad, y el cuatrimestre que viene voy a impartir una asignatura de introducción a la programación web con Java por primera vez en esta universidad. Una excusa excelente para hacer unos buenos apuntes al respecto. Una excusa excelente para comenzar la escritura de este documento. No sé si será tan didáctico y tendrá tanto éxito como el primero; el listón está puesto bastante alto. Lo único que le puedo prometer al lector es que lo voy a intentar. Comencemos pues. Tutorial básico de Java EE 10 de 228 Tutorial de javaHispano http://javahispano.org Guía para usar este tutorial Este tutorial trata de ser un curso de programación web con Java empezando desde 0. No se sume ningún conocimiento previo de HTML, del protocolo http o de programación web. Sí se asume que el lector tiene soltura con el lenguaje de programación Java. Aquellos lectores con conocimiento de HTML, http y CSS pueden a su propia discreción saltarse los primeros tres temas. Este documento se distribuye junto con tres videos de apoyo. El primero hace una descripción general del código que acompaña a este tutorial. El segundo, es una introducción básica a Netbeans como herramienta para desarrollar aplicaciones web Java. El tercero, muestra cómo utilizar la consola de administración de Glassfish, así como la funcionalidad de administración de bases de datos de Netbeans. Los códigos que acompañan este tutorial son aplicaciones Java EE estándar que deberían funcionar el cualquiera contenedor de serles Java EE. No tienen ninguna dependencia con Netbeans, ni con Glassfish. No obstante, se distribuyen como un proyecto de Netbeans. El motivo de esto es que considero Netbeans indudablemente la mejor herramienta Java para comenzar a programar aplicaciones web. Eclipse no es tan autocontenido y requiere de la instalación de plugins para tener cierta funcionalidad. Si estás leyendo este tutorial probablemente no tengas ni idea de programación web, y con total certeza no tienes ni idea de programación web con Java. En este escenario, mi clara recomendación es que uses Netbeans. En cualquier caso, los códigos deberían funcionar perfectamente con cualquier otro entorno de desarrollo (o servidor de aplicaciones). Junto con el tutorial se distribuyen dos proyectos de Netbeans. El primero contiene todos los ejemplos que se irán mostrando desde el tema 4 hasta el tema 13. Este proyecto, cuyo nombre es CursoBasicoJavaEE, contiene un descriptor de despliegue completamente documentado y ordenado por temas. Estudialo según vayas avanzando en los temas. También contiene anotaciones equivalentes a toda la información presente en el descriptor. Es decir, toda la información de configuración está por duplicado con fines pedagógicos. Tutorial básico de Java EE 11 de 228 Tutorial de javaHispano http://javahispano.org El segundo proyecto, cuyo nombre es BasicCRUDWebApp, es un ejemplo de una aplicación web básica con soporte para las cuatro operaciones CRUD sobre un modelo sencillo. En este caso, la información de configuración sólo está en el descriptor de despliegue. Como veremos en el tema 14, dada la naturaleza de la aplicación es interesante que su información de configuración no esté empotrada en el código fuente. Uno de los ejemplos del tema 10, y uno de los tres mecanismos alternativos de persistencia empleados en BasicCRUDWebApp requieren de la configuración de un pool de conexiones en el servidor de aplicaciones. En uno de los videos que acompañan a este tutorial se explica cómo configurar dicho pool en Glassfish. A lo largo del tutorial se irá indicando el momento en el cual el lector debe consultar cada uno de los tres videos. Cuando se indique que se debe consultar uno de estos videos, recomiendo al lector que no continúe leyendo el tutorial y que lo mire. Ahora es el momento de ver el primer video. https://www.youtube.com/watch?v=PJtdpR1FDDE Tutorial básico de Java EE 12 de 228 Tutorial de javaHispano http://javahispano.org 1 HTTP Para desarrollar aplicaciones web es necesario tener al menos unas nociones básicas del funcionamiento del protocolo empleado para la transferencia de los recursos que componen una web. El Hypertext Transfer Protocol (protocolo de transferencia de hipertexto) o HTTP es el protocolo empleado con este fin. Se trata de un protocolo orientado a transacciones que sigue un esquema de petición-respuesta entre un cliente y un servidor. Al cliente que efectúa una petición (habitualmente, un navegador web) se le denomina "user agent". La información transmitida se denomina recurso y se la identifica mediante un localizador uniforme de recursos (URL, uniform resource locator). Como su nombre indica, una URL permite localizar un recurso en Internet. Las URL son siempre únicas, hecho que garantiza el W3C, y cada URL en Internet identifica unívocamente un recurso (página web, imagen, Applet, flash, etc.). El protocolo no tiene estado, esto es, no guarda ninguna información sobre conexiones anteriores. Una conversación en este protocolo habitualmente comienza por una petición del cliente de un determinado recurso al servidor. El servidor, responde sirviendo dicho recurso. Pero no guarda ningún tipo de registro o memoria de qué recursos ha servido a qué clientes. Si a continuación el mismo cliente vuelve a pedir otro recurso, la respuesta del servidor será idéntica al caso en el que un cliente diferente, totalmente nuevo, haya pedido el recurso. El hecho de tratarse de un protocolo sin estado hace que sea altamente escalable y ha sido uno de los secretos de su éxito. También es una de sus principales limitaciones con vistas a desarrollar aplicaciones web, y parte de la funcionalidad que nos proporcionarán los servidores de aplicaciones es precisamente mitigar este problema. Pero ya llegaremos allí. En este capítulo vamos a ver la estructura básica de las peticiones y respuestas del protocolo http. Tutorial básico de Java EE 13 de 228 Tutorial de javaHispano http://javahispano.org 1.1 Las URL Las URL indican cómo localizar en Internet un determinado recurso. Su formato es: protocolo://maquina:puerto/camino/fichero El protocolo habitualmente es http (HyperText Transport Protocol) o https (HyperText Transport Protocol Secure), aunque pueden emplearse otros protocolos como ftp (File Transfer Protocol). La máquina es el nombre o la IP del servidor al cual nos queremos conectar. Habitualmente, se emplea un nombre (como Google.com) que es traducido a una IP por el servicio de DNS. Después de la máquina, separado por ":" puede indicarse el puerto al cual nos queremos conectar. Por defecto, cada protocolo tiene un puerto asignado; por ejemplo http tiene asignado el puerto 80 y https tiene asignado el puerto 443. Al publicar una página web en Internet, lo habitual es emplear el puerto por defecto; sin embargo cuando estamos construyendo esa página web en nuestro equipo local a menudo se emplean puertos diferentes para depuración y testeo de dicha página. Camino es la ruta en el sistema de archivos de la máquina remota donde se encuentra el recurso al cual queremos acceder. Dicha ruta es relativa al directorio raíz de la web. Fichero es el recurso concreto al que queremos acceder dentro de un directorio de la máquina. Por ejemplo: http://javaHispano.org:4040/ejemplo/inicio.html accedería empleando el protocolo http al puerto 4040 de la máquina javaHispano.org. Dentro de esa máquina debería haber un servidor web sirviendo el contenido de algún directorio de la máquina. Partiendo de ese directorio, el servidor web iría al directorio "ejemplo" y buscaría el recurso con nombre inicio.html, que serviría al cliente que lo ha solicitado. Tutorial básico de Java EE 14 de 228 Tutorial de javaHispano http://javahispano.org 1.2 Peticiones HTTP Las peticiones de http siguen el siguiente formato: Método SP URL SP Versión Http CRLF (nombre-cabecera: valor-cabecera (, valor-cabecera)*CRLF)* Cuerpo del mensaje SP significa espacio en blanco; los espacios en blanco introducidos en el texto han sido introducidos por motivos de legibilidad, sólo los indicados mediante SP son requeridos en el protocolo. CRLF significa retorno de carro. Todo lo que aparece entre parentesis es opcional. Los paréntesis que están dentro de los paréntesis indican contenido opcional dentro del propio paréntesis. Cuando después de un paréntesis hay un *, significa que el contenido del paréntesis puede aparecer repetido cero o más veces. La primera parte de la petición es el método que se emplea para realizar la petición (habitualmente GET o POST). A continuación, separada mediante un espacio en blanco, se indica la URL del recurso que se está pidiendo. Después, separada por un nuevo espacio en blanco, se indica la versión del protocolo http que se está empleando. A continuación se pueden encontrar una o varias cabeceras. Las cabeceras tienen asociado un nombre y después llevan ":". Después de los ":" debe ir un valor para la cabecera. Es posible que una misma cabecera tenga asociados varios valores. En este caso, los valores se separan por ","; los espacios en blanco dentro del valor de una cabecera se considera que forman parte del valor, y no que son separadores. En el mensaje puede haber varias cabeceras separadas por retorno de carro. Después de las cabeceras, viene el cuerpo del mensaje, que puede ser vacío (es el caso del método GET) o no (es el caso del método POST). Por ejemplo, una petición http podría ser: GET /en/html/dummy?name=MyName&married=not+single&male=yes HTTP/1.1 Host: www.explainth.at User-Agent: Mozilla/5.0 (Windows;en-GB; rv:1.8.0.11) Gecko/20070312 Firefox/1.5.0.11 Accept: text/xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Tutorial básico de Java EE 15 de 228 Tutorial de javaHispano http://javahispano.org Accept-Language: en-gb,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://www.explainth.at/en/misc/httpreq.shtml En este caso, el cuerpo está vacío. Un ejemplo de petición http con cuerpo no vacío podría ser: POST /en/html/dummy HTTP/1.1 Host: www.explainth.at User-Agent: Mozilla/5.0 (Windows;en-GB; rv:1.8.0.11) Gecko/20070312 Firefox/1.5.0.11 Accept: text/xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-gb,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://www.explainth.at/en/misc/httpreq.shtml Content-Type: application/x-www-form-urlencoded Content-Length: 39 name=MyName&married=not+single&male=yes Este último caso podría ser el resultado del envío de un formulario del cliente al servidor. Esta petición tipo post sería completamente equivalente a la anterior petición get en lo que a envío de datos de un formulario al servidor se refiere. En este caso, el contenido del mensaje es sólo la última línea. En el formulario había tres campos, uno con nombre "name", otro con nombre "married", y el último con nombre "male". En la respuesta, cada uno de los tres campos está separado por el símbolo "&". Cada campo va seguido del valor que el usuario ha introducido en el formulario para dicho campo, y separando el nombre del campo y su valor va el signo "=". En el siguiente capítulo veremos cómo funcionan los formularios en más detalle y cómo crearlos. Tutorial básico de Java EE 16 de 228 Tutorial de javaHispano http://javahispano.org El protocolo de conexión http define varios métodos (algunas veces también llamados "verbos") que indican la acción que desea efectuar sobre el recurso indicado en la petición. Ese recurso podría ser un archivo que reside en un servidor, o podría ser un programa que se está ejecutando en dicho servidor. Los métodos son: • HEAD: pide al servidor que le envíe una respuesta idéntica a la que enviaría a una petición GET, pero sin el cuerpo de la respuesta. Esto es útil para la recuperación de la meta-información contenida en las cabeceras de la petición. • GET: pide al servidor que le envíe un recurso. • POST: envía datos al servidor para que sean procesados por el recurso especificado en la petición. Los datos se incluyen en el cuerpo de la petición. Este método podría crear un nuevo recurso en el servidor, o actualizar un recurso ya existente. • PUT: envía un recurso determinado (un archivo) al servidor. A diferencia que POST, este método crea una nueva conexión (socket) y la emplea para enviar el recurso, lo cual resulta más eficiente que enviarlo dentro del cuerpo del mensaje. • DELETE: elimina el recurso especificado. • TRACE: pide al servidor que le envíe un mensaje de respuesta. Se suele emplear para diagnosticar posibles problemas en la conexión. • OPTIONS: pide al servidor que le indique los métodos HTTP que soporta para una determinada URL. • CONNECT: se emplea para transformar una conexión ya existente a una conexión encriptada (https). • PATCH: se emplea para modificar parcialmente un recurso ya existente en el servidor. Tutorial básico de Java EE 17 de 228 Tutorial de javaHispano http://javahispano.org 1.3 Respuestas HTTP Una respuesta del servidor en el protocolo http sigue la siguiente estructura: Versión-http SP código-estado SP frase-explicación CRLF (nombre-cabecera: valor-cabecera ("," valor-cabecera)* CRLF)* Cuerpo del mensaje El código de estado es un código que indica si la petición ha tenido éxito o habido algún error con ella. La frase de explicación suele proporcionar alguna explicación del error. Las cabeceras siguen la misma estructura que en las peticiones. Después de las peticiones, podemos encontrar la respuesta del servidor. Un ejemplo de una respuesta del servidor podría ser: HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length ¡Hola mundo! 1.4 Códigos de estado del protocolo http Los códigos de estado del protocolo http son números de tres dígitos que forman parte de las respuestas http. Estos códigos explican qué ha sucedido al intentar llevar a cabo una petición. Estos códigos son: Tutorial básico de Java EE 18 de 228 Tutorial de javaHispano http://javahispano.org • Códigos 1xx : Mensajes o 100-111 Conexión rechazada • Códigos 2xx: Operación realizada con éxito o 200 OK o 201-203 Información no oficial o 204 Sin Contenido o 205 Contenido para recargar o 206 Contenido parcial • Códigos 3xx: Redireción o 301 Mudado permanentemente o 302 Encontrado o 303 Vea otros o 304 No modificado o 305 Utilice un proxy o 307 Redirección temporal • Códigos 4xx: Error por parte del cliente o 400 Solicitud incorrecta o 402 Pago requerido o 403 Prohibido o 404 No encontrado o 409 Conflicto o 410 Ya no disponible o 412 Falló precondición • Códigos 5xx: Error del servidor o 500 Error interno Tutorial básico de Java EE 19 de 228 Tutorial de javaHispano http://javahispano.org o 501 No implementado o 502 Pasarela incorrecta o 503 Servicio nodisponible o 504 Tiempo de espera de la pasarela agotado o 505 Versión de HTTP no soportada Tutorial básico de Java EE 20 de 228 Tutorial de javaHispano http://javahispano.org 2 HTML HTML (HyperText Markup Language, Lenguaje de Marcado de Hipertexto) es el lenguaje en el que se construyen las páginas web. La primera descripción de HTML disponible públicamente fue un documento llamado HTML Tags (Etiquetas HTML), publicado por primera vez en Internet por Tim Berners-Lee, un científico del CERN, en 1991. Su propósito era definir un lenguaje que permitiese crear vínculos electrónicos entre distintos documentos, de tal modo que desde un documento se pudiese referir a otro y navegar fácilmente hasta él. La primera versión de HTML que se convirtió en un estándar fue la 3.0, cuando el World Wide Web Consortium (W3C) lo aceptó como uno de sus estándares en 1995. En 1999 llegó HTML 4.0. En la actualidad, se está definiendo la versión 5.0. El propósito de este capítulo no es, ni mucho menos, hacer una presentación detallada del estándar HTML. Eso requeriría un tutorial completo. El propósito de este capítulo es proporcionar al lector sin experiencia previa en HTML unas nociones básicas que le permitan aprender a crear aplicaciones de servidor. Como ya irás teniendo más claro según vayas avanzando en el tutorial, el crear una aplicación web requiere por un lado realizar trabajo de programación en algún lenguaje (Java en nuestro caso) y trabajo con HTML y otras tecnologías relacionadas (CSS y Javascript fundamentalmente). A menudo los programadores se especializan en una u otra tarea. A los primeros, se le suele llamar programadores propiamente dichos y se dice que se encargan de implementar el "Back end" de la aplicación, la parte del servidor. A los segundos, a menudo se les llama diseñadores y se dice que se encargan de implementar el "Front end" de la aplicación, la parte del cliente; lo que el usuario finalmente vee en su navegador. Este tutorial hace énfasis en la parte del servidor. El propósito de este capítulo es poco más que proporcionar unas nociones básicas de HTML para que seamos capaces de generar unas páginas web mínimas que visualicen el resultado de la programación que hemos realizado en el servidor. Tutorial básico de Java EE 21 de 228 Tutorial de javaHispano http://javahispano.org Sobra decir que si el lector tiene experiencia previa en HTML, puede saltarse este capítulo. 2.1 Las marcas o etiquetas Como las siglas de HTML indican, HTML es un lenguaje basado en marcas o etiquetas. La sintaxis de las etiquetas es:
Encabezado 1
Encabezado 2
Encabezado 3
Encabezado 4
Encabezado 5
Encabezado 6
El texto del encabezamiento aparecerá habitualmente con un tamaño de fuente más grande y, en general, que resalta más cuanto mayor es el número del encabezamiento. 2.3.2 Párrafos, líneas y tipos de fuente La etiquetasirve para delimitar párrafos. Además de introducir un retorno de carro, fuerza un segundo retorno de carro para dejar una línea en blanco entre dos párrafos consecutivos. Por defecto los párrafos están justificados a la izquierda. Pero podemos modificar la alineación horizontal de un párrafo mediante el atributo ALIGN de la marca
, que puede tomar los valores: • LEFT: justificado la izquierda. Es el valor por defecto. Tutorial básico de Java EE 25 de 228 Tutorial de javaHispano http://javahispano.org • CENTER: el párrafo está centrado • RIGHT: justificado a la derecha La etiqueta
introduce un retorno de carro en la posición en la que es colocada. Se trata de una etiqueta compacta, es decir, una etiqueta que se abre y se cierra en el mismo punto. Es posible indicar que una frase, palabra, un conjunto de letras/letra de una palabra, deben mostrarse en negrita, cursiva, con algún tipo de énfasis... empleando las siguientes etiquetas: Negrita Cursiva Emplea una fuente de tamaño fijo Énfasis Más énfasis La etiqueta se emplea para usar fuente de ancho fijo. Al emplear esta fuente, un carácter como "." ocupa lo mismo que un carácter como "H". Este tipo de fuente suele emplearse para, por ejemplo, mostrar listados de código fuente dentro de un documento HTML. Todas estas etiquetas pueden afectar a un párrafo completo, a una palabra, o incluso a un conjunto de letras de una palabra. Por ejemplo, "negrita", se mostraría en un navegador web como "negrita". Puede modificarse el tamaño de la fuente utilizando el atributo size de la etiqueta : Texto HTML define siete tamaños de fuente distintos, siendo el tamaño 3 el tamaño por defecto. Podemos indicar el tamaño mediante un número entero entre 1 y 7, o también podemos indicar el número de veces que queremos que esa fuente sea mayor o menor que la fuente por defecto. Por ejemplo, Tutorial básico de Java EE 26 de 228 Tutorial de javaHispano http://javahispano.org Texto significa usar el tamaño "2" para la fuente, mientras que Texto significa usar una fuente con un tamaño igual al tamaño por defecto más 2 unidades. Del mismo modo, Texto significa usar una fuente con un tamaño igual al tamaño por defecto menos 2 unidades. Es posible especificar el tamaño de la fuente por defecto mediante la etiqueta:
. El contenido que se encuentra dentro de la etiqueta
respetará los espacios en blanco, tabulaciones y retornos de carro que contenga, además de mostrarse con una fuente de ancho de tamaño fijo. Esta etiqueta suele ser útil para, por ejemplo, visualizar código fuente dentro de una página web. Pongamos todo esto junto:Este será el título de la página
Párrafos
Este es el primer párrafo. Aquí hay una ruptura de línea de texto Y éste es otro párrafo. Observa como hay una línea en blanco entre ellos al mostrarse en el navegador web. Negrita Cursiva Emplea una fuente de tamaño fijo: *.* ocupa lo mismo que *A* énfasis Gran énfasisal renderizar esto se van a respetar Tutorial básico de Java EE 28 de 228 Tutorial de javaHispano http://javahispano.org los espacios en blanco y retornos de carro
Observa las líneas horizontales
Encabezado 1
Encabezado 2
Encabezado 3
Encabezado 4
Encabezado 5
Encabezado 6
Al abrir esto en un navegador web obtendremos algo similar a la imagen: Tutorial básico de Java EE 29 de 228 Tutorial de javaHispano http://javahispano.org A partir de ahora, para incrementar la legibilidad de este documento y porque la mayor parte de los navegadores web actuales soportan el uso directo de acentos en el texto sin emplear secuencias de escape, emplearemos directamente los acentos en el texto y no usaremos más las secuencias de escape. No obstante, cuando se crea una página web destinada a ser empleada por una audiencia muy amplia suele ser recomendable emplearlas. Tutorial básico de Java EE 30 de 228 Tutorial de javaHispano http://javahispano.org 2.4 Listas Las listas son una forma muy práctica de presentar información. En HTML existen varios tipos diferentes de listas. Las primeras, las listas ordenadas, se definen con etiqueta. En estas listas, cada uno de los elementos de la lista se numera consecutivamente, de ahí el nombre de lista ordenada. Cada elemento de la lista ordenada se define empleando la etiqueta
- . Por ejemplo
Se renderizará en un navegador web como: También es posible anidar una lista dentro de otra
- Java
- Python
- C++
Esto daría como resultado al mostrarse en un navegador: Tutorial básico de Java EE 31 de 228 Tutorial de javaHispano http://javahispano.org También podemos crear listas desordenadas mediante la etiqueta
- En la plataforma Java:
- Java
- Groovy
- JRuby
- Python
- C++
. En estas listas, cada uno de los elementos de la lista (elementos que se definen con la misma etiqueta que en el caso anterior:
- ) aparecerá precedido de algún tipo de símbolo (un punto, un cuadrado, etc.). Al igual que en el caso de las listas ordenadas, podemos anidar listas desordenadas, o anidar listas ordenadas dentro de ellas. El último tipo de lista es la lista de definición. Habitualmente, estas listas suelen emplearse para mostrar términos seguidos de su definición. En este caso, los elementos de las listas no emplean ningún tipo de marca ni numeración para identificar cada elemento, sino que emplean sangrado entre los párrafos. Las listas de definición se crean con la etiqueta
. Los términos a definir se etiquetan con
- , y sus correspondientes definiciones con
- . Al igual que los otros tipos de listas, éstas también pueden anidarse. A continuación mostramos una página web donde se ejemplifican los tres tipos de lista que hemos visto:
Listas
Lista ordenada
Tutorial básico de Java EE 32 de 228 Tutorial de javaHispano http://javahispano.org Los lenguajes de programación que mas me gustan son (en orden de preferencia):
- Java
- Python
- C++
Listas desordenadas
Sin un orden particular, mis comidas favoritas son las siguientes:
- La paella
- El cocido gallego
- Merluza
Listas de definición
Al mostrar esta página en un navegador web veremos algo parecido a esto: Tutorial básico de Java EE 33 de 228 Tutorial de javaHispano http://javahispano.org 2.5 Enlaces Si hay algo que caracteriza a los documentos HTML es la posibilidad de crear enlaces. Esto es, vínculos entre un documento y otros documentos del mismo servidor web, documentos de cualquier otro servidor web, o secciones del mismo documento. Estos enlaces son lo que han hecho Internet lo que es a día de hoy. Para crear enlaces se utiliza la etiqueta cuya sintaxis es: Texto del enlace El atributo href indica a dónde apunta el enlace. El texto que va dentro de la etiqueta es lo que se renderizará en la navegador web. Habitualmente, los enlaces suelen mostrarse en azul o en otro color especial distinto del resto de los textos. La dirección del enlace Tutorial básico de Java EE 34 de 228 Tutorial de javaHispano http://javahispano.org no se ve directamente en la página web, aunque habitualmente los navegadores la muestran en la barra que está situada al fondo de todo del navegador cuando el usuario pone el ratón encima del enlace. href puede apuntar a un documento que se encuentre en nuestro servidor web. Por ejemplo, Mi currículum Aunque la sintaxis del anterior enlace es correcta y válida, nunca debe emplearse. No es buena idea indicar la ruta absoluta de un recurso en nuestro propio servidor. Si, por ejemplo, cambiamos el directorio donde se encuentra la página web o cambiamos de sistema operativo, cambiará la localización de las páginas. Es mucho mejor usar rutas relativas, que van a permanecer constantes aunque cambiemos de máquina o de directorio. Por ejemplo, suponiendo que el enlace está en una página que se encuentra en el directorio web, podríamos cambiar el enlace anterior por: Mi currículum Los enlaces también pueden apuntar a cualquier otra URL de cualquier otro servidor web: Enlace a Google El tercer sitio al cual puede apuntar un enlace es a otra sección de la propia página. A veces, cuando la página es muy extensa, nos puede interesar dar un salto desde una posición a otra. Para ello tendremos que indicar empleando la etiqueta cuáles son los posibles sitios a los cuales se puede "saltar" dentro del documento. La sintaxis es: Tutorial básico de Java EE 35 de 228 Tutorial de javaHispano http://javahispano.org Para saltar al punto del documento donde se halle esa etiqueta emplearemos un enlace de la forma volver al índice observa como el valor del atributo href debe ser el nombre que hemos dado al punto del documento al cual debemos saltar, precedido por el signo de #. Es posible desde otra página web enlazar a una sección concreta de otro documento. Por ejemplo, supongamos que la pagina http://javaHispano.org/ejemplo.html tiene una marca en alguna región del documento. Desde otra página, podríamos saltar directamente a esa región del documento mediante el enlace: ir al fin A continuación mostramos un ejemplo donde se usan varios enlaces.
- Java
- Es el mejor lenguaje de programación del mundo
- .NET
- Es el lado oscuro de la fuerza
Índice
- Sección uno Tutorial básico de Java EE 36 de 228 Tutorial de javaHispano http://javahispano.org
- Sección dos
- Enlace javaHispano
- Enlace a Google
- Enlace al directorio de tu equipo donde has guardado esta página
Sección uno
Esta es la sección 1 de la pagina de enlaces locales
Click aqui para volver al índice
Sección dos
Esta es la sección 2 de la pagina de enlaces locales
Click aqui para volver al índice Para que la navegación dentro del propio documento funcione correctamente, deberás reducir el tamaño de la ventana del navegador web de tal modo que aparezca el scroll a la derecha. Si toda la página web se puede mostrar dentro de la pantalla del ordenador, y no hace falta scroll, no va a suceder nada cuando intentes hacer clic en los enlaces a secciones dentro de la propia página, ya que todos ellos se están mostrando ya. 2.6 Imágenes Podemos empotrar imágenes dentro de una página web empleando la etiquetael atributo src indica la fuente, la localización, de la imagen. Puede ser una URL a cualquier imagen situada en cualquier página web de Internet, o una ruta relativa o ruta absoluta de esa imagen dentro de nuestro servidor web. Es posible especificar el alto y el ancho de la imagen con los atributos width y height. El alto y el ancho se medirá en píxeles. Si especificamos ambos valores, es posible que la imagen se distorsione para adecuarse a ellos. Por lo general, es una buena práctica especificar sólo uno de los Tutorial básico de Java EE 37 de 228 Tutorial de javaHispano http://javahispano.org valores. En este caso, el navegador web escalará proporcionalmente la otra dimensión de la imagen y evitará distorsiones. El atributo alt de la etiqueta imagen permite especificar un texto alternativo, que se mostrará en pantalla en caso de no poderse mostrar la imagen. Algunos usuarios navegan por Internet sin mostrar imágenes para hacerlo más rápido, o por motivos de seguridad. Los invidentes, suelen emplear software que lee la pantalla del ordenador al navegar por Internet, y en el caso de las imágenes lee este texto. Por último, también es posible indicar cómo deseamos realizar la alineación de las imágenes y el texto mediante el atributo align, que puede tomar los valores : TOP, TEXTOP, CENTER, ABSCENTER, MIDDLE, ABSMIDDLE, BOTTOM, LEFT, y RIGTH. La etiqueta que se muestra a continuación empotra el logo de Google en una página, con un ancho de 500 píxeles y un tamaño de borde de cuatro píxeles. En caso de no poder mostrarse la imagen, se mostrará el texto "Logotipo de Google".
Es el posible usar una imagen como enlace; es decir, que al hacer clic sobre la imagen nos lleve a otra página web. Para ello, simplemente dentro de la etiqueta del enlace en vez de el texto que habitualmente suelen llevar los enlaces, colocamos una etiqueta de imagen:
2.7 Tablas Las tablas son una forma compacta y clara de mostrar información. En HTML, se definen mediante la etiqueta . Dentro de la etiqueta de tabla, emplearemos la etiqueta para crear filas, y dentro de esta etiqueta emplearemos la etiqueta
para delimitar el contenido de cada celda. Empleando el atributo border podemos Tutorial básico de Java EE 38 de 228 Tutorial de javaHispano http://javahispano.org indicar, en píxeles, el ancho del borde de la tabla. Si no indicamos ningún borde, la tabla tampoco dibujará la rejilla correspondiente con las celdas. La siguiente etiqueta define una tabla de 3 × 3 empleando un borde de un píxel:
Al renderizarse veremos algo similar a: Podemos indicar la anchura de la tabla mediante el atributo width, que puede ser o bien la anchura total de la tabla en píxeles, o un porcentaje. Si es un porcentaje, es el porcentaje del ancho total de pantalla que la tabla va a ocupar. Por ejemplo, ………
Celda A1 Celda B1 Celda C1 Celda A2 Celda B2 Celda C2 Celda A3 Celda B3 Celda C3
Esta tabla ocupará el 80% del espacio disponible. Anidando la etiqueta
dentro de una tabla podemos especificar un título para la tabla Tutorial básico de Java EE 39 de 228 Tutorial de javaHispano http://javahispano.org 2.8 Creación de formularios Los formularios se emplean para recoger datos del usuario en una página web y enviarlos al servidor. Estos datos pueden recogerse mediante campos de texto, checkboxes, listas de selección, etc. En el servidor, debe haber algún programa (como los que aprenderemos a desarrollar lo largo de este curso) capaz de recoger esos datos y procesarlos de algún modo. HTML y http se encargan sólo de enviarlos al servidor, pero no definen que se hace ni proporcionan ningún mecanismo para hacer algo con ellos. Los formularios se crean con etiqueta Tutorial básico de Java EE 41 de 228 Tutorial de javaHispano http://javahispano.org Al visualizarse en un navegador web veremos algo parecido a: 2.8.2 RadioButton Otro posible valor para el atributo type es radio, que permite definir un control equivalente a un JRadioButton. Junto con este valor de atributo, se pueden emplear los siguientes atributos: • name = "nombre": asigna un nombre único a la pieza de información que representarán los RadioButtons que pertenezcan al mismo grupo. Éste es el identificador que emplearemos en el servidor para recuperar esta pieza de información. Debe ser el mismo para todos los elementos radio de un mismo grupo. • value = "valor" define el valor que tomará la variable indicada en el atributo anterior y que se enviará al servidor. Es decir, al seleccionar uno de los RadioButtons el valor que tomará la variable que se envía al servidor será este atributo. • checked: permite indicar cuál es el elemento que está seleccionado por defecto dentro de un grupo. • disabled: desactiva el elemento, impidiendo que el usuario lo seleccione Por ejemplo, al incluir esto dentro de un formulario: ¿Cuánto tiempo llevas programando en él? Menos de dos años De dos a cinco años Más de cinco años Tutorial básico de Java EE 42 de 228 Tutorial de javaHispano http://javahispano.org el navegador web nos mostrará algo parecido a: 2.8.3 Checkbox Otro posible valor para el atributo type es checkbox, que define una o más casillas de las cuales el usuario puede marcar una, varias o ninguna. Junto con este valor de atributo, podemos especificar los siguientes atributos: • name = "nombre": asigna un nombre único a la pieza de información que representa un grupo de casillas. Éste es el identificador que emplearemos en el servidor para recuperar esta pieza de información. Debe ser el mismo para todas las casillas que pertenezcan a un mismo grupo. • checked: permite indicar si una casilla está o no seleccionada por defecto. • disabled: desactiva la casilla. Si incluimos estas etiquetas dentro de un formulario: ¿En qué entornos has usado ese lenguaje?: Descriptorio Web Movilidad Dispositivos empotrados El navegador web mostrará algo parecido a: Tutorial básico de Java EE 43 de 228 Tutorial de javaHispano http://javahispano.org 2.8.4 Botones Otro posible valor para el atributo type es button, que permite crear botones. Este botón puede ser usado con diferentes fines. A menudo se le proporciona funcionalidad mediante el lenguaje JavaScript, a partir del evento "OnClick". Al usar este valor de atributo, podemos emplear también los siguientes atributos: • name = "nombre": asigna un nombre al botón, que puede ser útil para definir las acciones que el botón va a efectuar desde JavaScript. • value = "valor": permite especificar el texto que se va a mostrar en el botón. • disabled: desactiva el botón, de tal modo que el usuario no pueda hacer clic sobre él. Esta etiqueta Creería este botón en un navegador web, que no haría absolutamente ninguna acción al ser pulsado: También podemos crear botones con la etiqueta Tutorial básico de Java EE 44 de 228 Tutorial de javaHispano http://javahispano.org También podemos conseguir un botón que envíe los datos del formulario asignando al atributo type el valor submit; de este modo estaremos incorporando al formulario un botón que permite realizar el envío de los datos. Cuando el usuario haga clic en ese botón, todos los datos del formulario serán enviados al programa del servidor o a la dirección de correo indicada en action. Junto con este atributo podemos emplear los siguientes atributos: • value = "valor": permite definir el texto que se va a mostrar en el botón de envío. • disabled: desactiva el botón. Asignando al atributo type el valor reset obtendremos un botón que resetea todos los campos del formulario. Junto con este atributo podemos emplear los mismos atributos que con submit. 2.8.5 Campos de password Cuando el atributo type toma el valor password, obtenemos un campo de texto en el cual cuando se teclea no se ve el contenido tecleado, sino que se muestran sólo "*" u otro carácter similar. Su propósito es permitir introducir passwords. 2.8.6 Campos ocultos Cuando el atributo type toma el valor hidden, estaremos creando un campo del formulario invisible, que no se mostrará en pantalla de ningún modo. Aunque ahora mismo esto pueda parecer bastante ridículo, cuando hagamos programas de servidor que procesen formularios veremos su utilidad. Junto con este valor, podemos usar los siguientes atributos: • name = "nombre": asigna un nombre al campo oculto. • value = "valor": valor que toma el campo oculto, y que el usuario no puede modificar de ningún modo. Tutorial básico de Java EE 45 de 228 Tutorial de javaHispano http://javahispano.org 2.8.7 Listas de selección La etiqueta cuando se envíe el formulario. • selected: indica que esta opción va a estar seleccionada por defecto. De no indicarse en ninguna de las opciones de la lista que está seleccionada por defecto, no aparecerá ninguna seleccionada. Por ejemplo, incluyendo estas etiquetas en un formulario: Tutorial básico de Java EE 46 de 228 Tutorial de javaHispano http://javahispano.org Obtenemos una lista como esta: Mientras que incluyendo estas etiquetas: Obtenemos una lista como ésta: 2.8.8 Áreas de texto Para incluir campos de texto que puedan contener múltiples líneas empleamos la etiqueta
el atributo src indica la fuente, la localización, de la imagen. Puede ser una URL a
cualquier imagen situada en cualquier página web de Internet, o una ruta relativa o ruta
absoluta de esa imagen dentro de nuestro servidor web. Es posible especificar el alto y
el ancho de la imagen con los atributos width y height. El alto y el ancho se medirá en
píxeles. Si especificamos ambos valores, es posible que la imagen se distorsione para
adecuarse a ellos. Por lo general, es una buena práctica especificar sólo uno de los
Tutorial básico de Java EE 37 de 228
Tutorial de javaHispano http://javahispano.org
valores. En este caso, el navegador web escalará proporcionalmente la otra dimensión
de la imagen y evitará distorsiones.
El atributo alt de la etiqueta imagen permite especificar un texto alternativo, que se
mostrará en pantalla en caso de no poderse mostrar la imagen. Algunos usuarios
navegan por Internet sin mostrar imágenes para hacerlo más rápido, o por motivos de
seguridad. Los invidentes, suelen emplear software que lee la pantalla del ordenador al
navegar por Internet, y en el caso de las imágenes lee este texto.
Por último, también es posible indicar cómo deseamos realizar la alineación de las
imágenes y el texto mediante el atributo align, que puede tomar los valores : TOP,
TEXTOP, CENTER, ABSCENTER, MIDDLE, ABSMIDDLE, BOTTOM, LEFT, y
RIGTH.
La etiqueta que se muestra a continuación empotra el logo de Google en una página, con
un ancho de 500 píxeles y un tamaño de borde de cuatro píxeles. En caso de no poder
mostrarse la imagen, se mostrará el texto "Logotipo de Google".
Es el posible usar una imagen como enlace; es decir, que al hacer clic sobre la imagen
nos lleve a otra página web. Para ello, simplemente dentro de la etiqueta del enlace en
vez de el texto que habitualmente suelen llevar los enlaces, colocamos una etiqueta de
imagen:
No hay comentarios:
Publicar un comentario