J2EE - 01 Arquitectura Web

5,208 views
5,092 views

Published on

Curso de Desarrollo de Aplicaciones web con tecnología Java. Introducción a J2EE.

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,208
On SlideShare
0
From Embeds
0
Number of Embeds
58
Actions
Shares
0
Downloads
0
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

J2EE - 01 Arquitectura Web

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

×