SlideShare una empresa de Scribd logo
1 de 43
MÓDULO 4 ENTORNO J2EE 4.1 INTRO J2EE 40 HORAS Jesús Muñoz jesus@iluego.com
Contenidostema 4 – entorno J2EE Arquitectura web Servlets 1 Servlets 2 Servlets avanzado 2
3 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
4 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
5 Aplicación web
6 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
7 Componentes y contenedor Los componentes web existen bien en forma Servlet o JSP (a través de JavaBeans y etiquetas) Los componentes web corren en un contenedor web Tomcat es uno de los contenedores más populares El contenedor web provee servicios de sistema a los componentes Dispathing, seguridad y gestión del ciclo de vida
8 Componentes y contenedor La aplicación web es un paquete desplegable Componentes web (servlets y JSPs) Ficheros de recursos estáticos (imágenes, …) Librerías Descriptor de despliegue (fichero web.xml) La aplicación web puede ser representada como: Jerarquía de directorios y ficheros (sin comprimir) Fichero WAR reflejando la misma jerarquía (una vez que está desplegado se descomprime igualmente)
9 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
10 Web request handling
11 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
12 Tecnologías de aplicación web
13 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
14 Desarrollo y despliegue Escribir (y compilar) el código del componente (servlet o JSP) y las clases necesarias por este código Crear los recursos estáticos (imágenes, páginas…) Crear el descriptor de despliegue (web.xml) Construir la aplicación (.war o directorio) Desplegar la aplicación en un contenedor Los clientes web pueden ahora acceder la aplicación vía URL
15 Desarrollo y despliegue Escribir y compilar el código del componente Crear la estructura arbol de despliegue Escribir código servlet o páginas JSP Crear build.xml para Ant Todo esto se puede hacer a través del IDE (Eclipse o NetBeans…) Mantener el código de la aplicación y los ficheros compilados por separado Esto facilita el desarrollo iterativo Directorio raíz Build.xml  Ant build file src  directorio de fuentes web  páginas JSP y HTML, imágenes
16 Desarrollo y despliegue Crear los recursos estáticos (imágenes, páginas…) Páginas HTML Páginas personalizadas Páginas login Páginas de error Imágenes que son usadas en las páginas
17 Desarrollo y despliegue Crear el descriptor de despliegue (web.xml) Este descriptor contiene las instrucciones de ejecución para el contenedor URL en la cual el cliente accede al componente web Cada aplicación debe tener uno
18 Desarrollo y despliegue Construir la aplicación (.war o directorio) El WAR o el directorio desplegado: Proceso de build se compone de: Crear build directorio (si no existe) y los subdirectorios Compilar código en el directorio build/WEB-INF/classes Copiar web.xml dentro del directorio build/WEB-INF Copiar imágenes dentro del directorio build
19 Desarrollo y despliegue Desplegar la aplicación en un contenedor Desplegar la aplicación en el contenedor, por ejemplo Tomcat Existen varias maneras de hacer el despliegue, dependiendo del IDE usado, por ejemplo.
20 Desarrollo y despliegue Una aplicación puede ser desplegada de dos maneras diferentes: *.war Directorio descomprimido Usar *.war cuando tenemos que desplegar en una máquina remota Paquete listo para ser desplegado Parecido a un .jar Contiene: Componentes (servlets o JSPs) Clases Contenido estático
21 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
22 Raíz documento y contexto Documento raíz de la aplicación web Top-level directorio del WAR Contiene páginas JSP, clases client-side y archivos, y los recursos estáticos son almacenados Contiene directorio WEB-INF El contexto es el nombre que es mapeado al documento raíz de la aplicación web /hello1 es el contexto para el ejemplo hello1 Distingue la aplicación web dentro del contenedor (que puede tener varias aplicaciones web) Tiene que ser especificado como parte del URL cliente
23 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
24 Estructura .WAR
25 Estructura .WAR 3 formas diferentes de desplegar: Usar IDE (Eclipse, NetBeans…) Usar herramienta ant después 3 different ways – Use IDE (NetBeans) – Use ant tool after putting proper build instruction in build.xml file ● “asant create-war” (under J2EE 1.4 tutorial) – Use “jar cvf <filename>.war .” command under build directory
26 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
27 Usando el web.xml La información de configuración está especificada en el web.xml (Web Applications Deployment Descriptor) Prolog Alias Paths Context and Initialization Parameters Event Listeners Filter Mappings Error Mappings Reference to Environment Entries, Resource environment entries, or Resources Case sensitive Order sensitive (in the following order) icon, display-name, description, distributable context-param, filter, filter-mapping listener, servet, servlet-mapping, session-config mime-mapping, welcome-file-list error-page, taglib, resource-env-ref, resource-ref security-constraint, login-config, security-role env-entry, ejb-ref, ejb-local-ref
28 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
29 Prólogo (del web.xml) Todo documento necesita de un prólogo: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/webapp_ 2_3.dtd">
30 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
31 Alias path (del web.xml) Cuando una petición es recibida en el contenedor del servlet, se debe determinar qué componente web y en qué aplicación web debe recoger la petición. Esto se lleva a cabo de la siguiente forma: Una URL que contiene la raíz del contexto y el alias path 		http://<host>:8080/context_root/alias_path
32 Alias path (del web.xml)
33 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
34 Contexto e inicialización Representa contexto de aplicación Puede ser compartido a lo largo de los componentes en un fichero WAR <web-app> ... <context-param> <param-name> javax.servlet.jsp.jstl.fmt.localizationContext </param-name> <param-value> messages.BookstoreMessages </param-value> </context-param> ... </web-app>
35 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
36 Event listeners Recibe los evento del ciclo de vida <listener> <listener-class> listeners.ContextListener </listener-class> </listener>
37 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
38 Filter mappings Especifica qué filtros son aplicados a qué petición, y en qué orden: <filter> <filter-name>OrderFilter<filter-name> <filter-class>filters.OrderFilter<filter-class> </filter> <filter-mapping> <filter-name>OrderFilter</filter-name> <url-pattern>/receipt</url-pattern> </filter-mapping>
39 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
40 Error mappings Los mappings pueden terminar con una excepción si alguna de las URL que contienen no se encuentra. En tal caso le indicamos qué hacer: <error-page> <exception-type>exception.OrderException</exception-type> <location>/errorpage.html</location> </error-page>
41 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
42 References Son necesarios cuando los componentes necesitan hacer referencia a otras entradas del entorno, otras clases o recursos como bases de datos Ejemplo: declarar una referencia a una fuente de datos: <resource-ref> <res-ref-name>jdbc/BookDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
Es importante que recordeis… “Si haces todos los días lo mismo no llegarás más lejos de lo que otras veces has llegado” Adelante!!! Jesús Muñoz jesus@iluego.com

Más contenido relacionado

La actualidad más candente (8)

nn
nnnn
nn
 
Webutil
WebutilWebutil
Webutil
 
Introducción a JEE
Introducción a JEEIntroducción a JEE
Introducción a JEE
 
Webutil
WebutilWebutil
Webutil
 
Asp.net conceptos
Asp.net conceptosAsp.net conceptos
Asp.net conceptos
 
Barracuda mvc
Barracuda mvcBarracuda mvc
Barracuda mvc
 
Oracle Forms
Oracle FormsOracle Forms
Oracle Forms
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de Datos
 

Destacado

2011 2012-practica poo.v.1.2
2011 2012-practica poo.v.1.22011 2012-practica poo.v.1.2
2011 2012-practica poo.v.1.2
MarcosFerVega
 

Destacado (20)

Entrega final
Entrega finalEntrega final
Entrega final
 
Conceptos de la poo
Conceptos de la pooConceptos de la poo
Conceptos de la poo
 
Tutorial eclipse 1
Tutorial eclipse 1Tutorial eclipse 1
Tutorial eclipse 1
 
FPJUCE - Capitulo2
FPJUCE - Capitulo2FPJUCE - Capitulo2
FPJUCE - Capitulo2
 
02 Bases Del Lenguaje Java
02   Bases Del Lenguaje Java02   Bases Del Lenguaje Java
02 Bases Del Lenguaje Java
 
Analisis orientado a objetos
Analisis orientado a objetosAnalisis orientado a objetos
Analisis orientado a objetos
 
Cafeteando east
Cafeteando eastCafeteando east
Cafeteando east
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
13 Networking
13   Networking13   Networking
13 Networking
 
06 Paquetes Y Java Classpath
06   Paquetes Y Java Classpath06   Paquetes Y Java Classpath
06 Paquetes Y Java Classpath
 
2011 2012-practica poo.v.1.2
2011 2012-practica poo.v.1.22011 2012-practica poo.v.1.2
2011 2012-practica poo.v.1.2
 
Java
JavaJava
Java
 
INTRODUCCION A LA POO
INTRODUCCION A LA POOINTRODUCCION A LA POO
INTRODUCCION A LA POO
 
Moodle para dummies
Moodle para dummiesMoodle para dummies
Moodle para dummies
 
Conceptos Basicos de POO
Conceptos Basicos de POOConceptos Basicos de POO
Conceptos Basicos de POO
 
04 Clases Y Objetos
04   Clases Y Objetos04   Clases Y Objetos
04 Clases Y Objetos
 
Programación orientada a objetos (I)
Programación orientada a objetos (I)Programación orientada a objetos (I)
Programación orientada a objetos (I)
 
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a ObjetosClase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
 
03 Oop
03   Oop03   Oop
03 Oop
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del software
 

Similar a J2EE - 01 Arquitectura Web

J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slides
mundojava
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
Robert Rayco Quiroz
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java
Eudris Cabrera
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web java
César Ocampo
 
1 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_11 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_1
josezapana
 
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperGuia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
Oscar V
 

Similar a J2EE - 01 Arquitectura Web (20)

Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado   1 IntroduccióN Al Desarrollo WebCurso Java Avanzado   1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 
03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jee03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jee
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slides
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
 
Spring framework 3
Spring framework 3Spring framework 3
Spring framework 3
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web java
 
Curso de Struts 2: Unidad Didáctica 01 El Entorno de Desarrollo
Curso de Struts 2: Unidad Didáctica 01 El Entorno de DesarrolloCurso de Struts 2: Unidad Didáctica 01 El Entorno de Desarrollo
Curso de Struts 2: Unidad Didáctica 01 El Entorno de Desarrollo
 
Deploy
DeployDeploy
Deploy
 
Tema 4
Tema 4Tema 4
Tema 4
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
 
La Arquitectura De Netbeans V2
La Arquitectura De Netbeans V2La Arquitectura De Netbeans V2
La Arquitectura De Netbeans V2
 
Java Web - Servlet
Java Web - ServletJava Web - Servlet
Java Web - Servlet
 
Documento Web2Py
Documento Web2PyDocumento Web2Py
Documento Web2Py
 
1 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_11 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_1
 
El Nuevo Internet Explorer 9
El Nuevo Internet Explorer 9El Nuevo Internet Explorer 9
El Nuevo Internet Explorer 9
 
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperGuia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 

Más de Network Sens

Más de Network Sens (8)

12 Logging
12   Logging12   Logging
12 Logging
 
11 Excepciones
11   Excepciones11   Excepciones
11 Excepciones
 
10 Polimorfismo
10   Polimorfismo10   Polimorfismo
10 Polimorfismo
 
09 Clases Abstractas E Interfaces
09   Clases Abstractas E Interfaces09   Clases Abstractas E Interfaces
09 Clases Abstractas E Interfaces
 
08 Herencia
08   Herencia08   Herencia
08 Herencia
 
07 Javabeans
07   Javabeans07   Javabeans
07 Javabeans
 
01 - Introducción
01 - Introducción01 - Introducción
01 - Introducción
 
05 Creando Clases
05   Creando Clases05   Creando Clases
05 Creando Clases
 

Último

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
silviayucra2
 

Último (10)

Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

J2EE - 01 Arquitectura Web

  • 1. MÓDULO 4 ENTORNO J2EE 4.1 INTRO J2EE 40 HORAS Jesús Muñoz jesus@iluego.com
  • 2. Contenidostema 4 – entorno J2EE Arquitectura web Servlets 1 Servlets 2 Servlets avanzado 2
  • 3. 3 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 4. 4 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 6. 6 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 7. 7 Componentes y contenedor Los componentes web existen bien en forma Servlet o JSP (a través de JavaBeans y etiquetas) Los componentes web corren en un contenedor web Tomcat es uno de los contenedores más populares El contenedor web provee servicios de sistema a los componentes Dispathing, seguridad y gestión del ciclo de vida
  • 8. 8 Componentes y contenedor La aplicación web es un paquete desplegable Componentes web (servlets y JSPs) Ficheros de recursos estáticos (imágenes, …) Librerías Descriptor de despliegue (fichero web.xml) La aplicación web puede ser representada como: Jerarquía de directorios y ficheros (sin comprimir) Fichero WAR reflejando la misma jerarquía (una vez que está desplegado se descomprime igualmente)
  • 9. 9 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 10. 10 Web request handling
  • 11. 11 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 12. 12 Tecnologías de aplicación web
  • 13. 13 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 14. 14 Desarrollo y despliegue Escribir (y compilar) el código del componente (servlet o JSP) y las clases necesarias por este código Crear los recursos estáticos (imágenes, páginas…) Crear el descriptor de despliegue (web.xml) Construir la aplicación (.war o directorio) Desplegar la aplicación en un contenedor Los clientes web pueden ahora acceder la aplicación vía URL
  • 15. 15 Desarrollo y despliegue Escribir y compilar el código del componente Crear la estructura arbol de despliegue Escribir código servlet o páginas JSP Crear build.xml para Ant Todo esto se puede hacer a través del IDE (Eclipse o NetBeans…) Mantener el código de la aplicación y los ficheros compilados por separado Esto facilita el desarrollo iterativo Directorio raíz Build.xml  Ant build file src  directorio de fuentes web  páginas JSP y HTML, imágenes
  • 16. 16 Desarrollo y despliegue Crear los recursos estáticos (imágenes, páginas…) Páginas HTML Páginas personalizadas Páginas login Páginas de error Imágenes que son usadas en las páginas
  • 17. 17 Desarrollo y despliegue Crear el descriptor de despliegue (web.xml) Este descriptor contiene las instrucciones de ejecución para el contenedor URL en la cual el cliente accede al componente web Cada aplicación debe tener uno
  • 18. 18 Desarrollo y despliegue Construir la aplicación (.war o directorio) El WAR o el directorio desplegado: Proceso de build se compone de: Crear build directorio (si no existe) y los subdirectorios Compilar código en el directorio build/WEB-INF/classes Copiar web.xml dentro del directorio build/WEB-INF Copiar imágenes dentro del directorio build
  • 19. 19 Desarrollo y despliegue Desplegar la aplicación en un contenedor Desplegar la aplicación en el contenedor, por ejemplo Tomcat Existen varias maneras de hacer el despliegue, dependiendo del IDE usado, por ejemplo.
  • 20. 20 Desarrollo y despliegue Una aplicación puede ser desplegada de dos maneras diferentes: *.war Directorio descomprimido Usar *.war cuando tenemos que desplegar en una máquina remota Paquete listo para ser desplegado Parecido a un .jar Contiene: Componentes (servlets o JSPs) Clases Contenido estático
  • 21. 21 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 22. 22 Raíz documento y contexto Documento raíz de la aplicación web Top-level directorio del WAR Contiene páginas JSP, clases client-side y archivos, y los recursos estáticos son almacenados Contiene directorio WEB-INF El contexto es el nombre que es mapeado al documento raíz de la aplicación web /hello1 es el contexto para el ejemplo hello1 Distingue la aplicación web dentro del contenedor (que puede tener varias aplicaciones web) Tiene que ser especificado como parte del URL cliente
  • 23. 23 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 25. 25 Estructura .WAR 3 formas diferentes de desplegar: Usar IDE (Eclipse, NetBeans…) Usar herramienta ant después 3 different ways – Use IDE (NetBeans) – Use ant tool after putting proper build instruction in build.xml file ● “asant create-war” (under J2EE 1.4 tutorial) – Use “jar cvf <filename>.war .” command under build directory
  • 26. 26 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 27. 27 Usando el web.xml La información de configuración está especificada en el web.xml (Web Applications Deployment Descriptor) Prolog Alias Paths Context and Initialization Parameters Event Listeners Filter Mappings Error Mappings Reference to Environment Entries, Resource environment entries, or Resources Case sensitive Order sensitive (in the following order) icon, display-name, description, distributable context-param, filter, filter-mapping listener, servet, servlet-mapping, session-config mime-mapping, welcome-file-list error-page, taglib, resource-env-ref, resource-ref security-constraint, login-config, security-role env-entry, ejb-ref, ejb-local-ref
  • 28. 28 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 29. 29 Prólogo (del web.xml) Todo documento necesita de un prólogo: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/webapp_ 2_3.dtd">
  • 30. 30 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 31. 31 Alias path (del web.xml) Cuando una petición es recibida en el contenedor del servlet, se debe determinar qué componente web y en qué aplicación web debe recoger la petición. Esto se lleva a cabo de la siguiente forma: Una URL que contiene la raíz del contexto y el alias path http://<host>:8080/context_root/alias_path
  • 32. 32 Alias path (del web.xml)
  • 33. 33 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 34. 34 Contexto e inicialización Representa contexto de aplicación Puede ser compartido a lo largo de los componentes en un fichero WAR <web-app> ... <context-param> <param-name> javax.servlet.jsp.jstl.fmt.localizationContext </param-name> <param-value> messages.BookstoreMessages </param-value> </context-param> ... </web-app>
  • 35. 35 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 36. 36 Event listeners Recibe los evento del ciclo de vida <listener> <listener-class> listeners.ContextListener </listener-class> </listener>
  • 37. 37 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 38. 38 Filter mappings Especifica qué filtros son aplicados a qué petición, y en qué orden: <filter> <filter-name>OrderFilter<filter-name> <filter-class>filters.OrderFilter<filter-class> </filter> <filter-mapping> <filter-name>OrderFilter</filter-name> <url-pattern>/receipt</url-pattern> </filter-mapping>
  • 39. 39 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 40. 40 Error mappings Los mappings pueden terminar con una excepción si alguna de las URL que contienen no se encuentra. En tal caso le indicamos qué hacer: <error-page> <exception-type>exception.OrderException</exception-type> <location>/errorpage.html</location> </error-page>
  • 41. 41 Contenidos de este tema Introducción a J2EE Aplicaciones web Componentes y contenedor Web REQUEST handling Tecnologías de aplicación web Desarrollo y despliegue Raíz documento o contexto Estructura WAR Usando el web.xml Web.xml – Prólogo Web.xml – Alias path Contexto e inicialización Event listeners Filter mappings Error mappings References
  • 42. 42 References Son necesarios cuando los componentes necesitan hacer referencia a otras entradas del entorno, otras clases o recursos como bases de datos Ejemplo: declarar una referencia a una fuente de datos: <resource-ref> <res-ref-name>jdbc/BookDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
  • 43. Es importante que recordeis… “Si haces todos los días lo mismo no llegarás más lejos de lo que otras veces has llegado” Adelante!!! Jesús Muñoz jesus@iluego.com