Está en la página 1de 30

Introduccin a Java J2EE o

Guillermo Romn a
Fac. Informtica(UPM) a

28 de octubre de 2010

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

1 / 22

Indice
1 2 3

Introduccin o Conceptos bsicos a J2EE, Java Enterprise Edition Servlets JSPs Utilidades J2EE
Pgina de Error a Scopes JavaBeans Filtros de acceso

Librer as Publicacin de aplicaciones o Otras Tecnolog o Frameworks J2EE as

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

2 / 22

Introduccin o
Objetivos del Seminario
Dar una visin general de la Programacin Web o o Conceptos bsicos Aplicacin Web a o Servidores de Aplicaciones Algunos componentes J2EE
Servlets JSPs JavaBeans

Algunas librer de utilidad? as Ejemplo sencillo de aplicacin basada en Struts? o JDBC?

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

3 / 22

Conceptos bsicos a
Cliente
Navegador o Browser HTML (HyperText Markup Language) Javascript URL (Uniform Resource Locator) Http (Hypertext Transfer Protocol)

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

4 / 22

Conceptos bsicos a
Cliente
Navegador o Browser HTML (HyperText Markup Language) Javascript URL (Uniform Resource Locator) Http (Hypertext Transfer Protocol)

Servidor
Servidor Web Servidor de aplicaciones Servlets, JSP EJBs, JSF, Spring, AJAX

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

4 / 22

Conceptos bsicos a

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

5 / 22

Pginas estticas Vs. pginas dinmicas a a a a


Pginas estticas a a
Se utilizan para publicacin de contenidos en HTML o Estos contenidos son independientes del cliente Creacin ad-hoc y requieren trabajo manual para cambiar su o contenido

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

6 / 22

Pginas estticas Vs. pginas dinmicas a a a a


Pginas estticas a a
Se utilizan para publicacin de contenidos en HTML o Estos contenidos son independientes del cliente Creacin ad-hoc y requieren trabajo manual para cambiar su o contenido

Pginas dinmicas a a
Generan el contenido dependiendo de las peticiones Pueden usar BBDD, otros servicios, para generar los contenidos Ejecutan en el servidor antes de enviarlo al cliente Para el cliente son iguales que las anteriores Para el servidor las diferencias son abismales...

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

6 / 22

Servidores
Pginas estticas: Apache a a
Sirve contenido esttico (HTML o cheros) a Redirige las pginas que no es capaz de servir a

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

7 / 22

Servidores
Pginas estticas: Apache a a
Sirve contenido esttico (HTML o cheros) a Redirige las pginas que no es capaz de servir a

Scripting: PHP
PHP no utiliza un servidor de aplicaciones y tampoco lo ejecuta Apache Procesa y ejecuta en el momento de la peticin o

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

7 / 22

Servidores
Pginas estticas: Apache a a
Sirve contenido esttico (HTML o cheros) a Redirige las pginas que no es capaz de servir a

Scripting: PHP
PHP no utiliza un servidor de aplicaciones y tampoco lo ejecuta Apache Procesa y ejecuta en el momento de la peticin o

Servidor Aplicaciones: J2EE, ASP, ...


Requiere que el programa haya sido compilado previamente Puede haberlos de diferentes lenguajes (Java, .net, ...) Tambin pueden publicar pginas estticas e a a
Guillermo Romn (Fac. Informtica(UPM)) a a Introduccin a Java J2EE o 28 de octubre de 2010 7 / 22

J2EE, Java Enterprise Edition


J2EE
Java 2 Enterprise Edition es un conjunto de componentes que forman una plataforma de programacin para el desarrollo y ejecucin de aplicaciones o o basndose en componentes modulares y que se ejecutan en un servidor de a aplicaciones

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

8 / 22

J2EE, Java Enterprise Edition


J2EE
Java 2 Enterprise Edition es un conjunto de componentes que forman una plataforma de programacin para el desarrollo y ejecucin de aplicaciones o o basndose en componentes modulares y que se ejecutan en un servidor de a aplicaciones

Componentes
Sun (ahora Oracle) dene los interfaces de los componentes pero se pueden encontrar mltiples implementaciones de los componentes u
Servlets, JSPs EJBs (Enterprise JavaBeans) Naming (JNDI: Java Naming and Directory Interface) JDBC (Java DataBase Connectivity) XML JMS (Java Message Service) Persistencia
Guillermo Romn (Fac. Informtica(UPM)) a a Introduccin a Java J2EE o 28 de octubre de 2010 8 / 22

Estructura baica de una aplicacin Web J2EE s o


Estructura de Directorios para despliegue
Esta estructura sirve para todos los servidores de aplicaciones J2EE Es obligatoria para todas las aplicaciones
WEB-INF
classes lib web.xml

META-INF public-html

Directorios para desarrollo


src para cheros fuentes Java lib para librer de la aplicacin (.jar) as o

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

9 / 22

Primeros pasos
Estructura del Proyecto
Descargar la versin Eclipse IDE for Web Developers o Crear un Proyecto Web (Dynamic Web Project) Establecer el directorio WEB-INF/classes como directorio destino Aadir al Classpath las librer del servidor de aplicaciones (p.e. n as Tomcat) Enlazado simblico desde el directorio webapps de Tomcat o

Instalacin de servidor de aplicaciones o


Tomcat puede servir para empezar, aunque est limitado a A priori, las aplicaciones son vlidas para cualquier servidor de a aplicaciones Para despleguar una aplicacin hay 2 formas o
Directorio de despliegue automtico a Desplegar a travs de una consola de administracin e o
Guillermo Romn (Fac. Informtica(UPM)) a a Introduccin a Java J2EE o 28 de octubre de 2010 10 / 22

Publicacin de un Servlet o
Creacin de un Servlet o
Se implementa en una clase Java que hereda de HttpServlet
doGet (request, response) doPost (request, response)

La clase HttpServlet tiene que estar accesible en el classpath del proyecto Se dene en web.xml <s e r v l e t > < s e r v l e t name>HolaMundo</ s e r v l e t name> < s e r v l e t c l a s s >t e s t . H o l a S e r v l e t </ s e r v l e t c l a s s > </ s e r v l e t > < s e r v l e t mapping> < s e r v l e t name>HolaMundo</ s e r v l e t name> <u r l p a t t e r n >/Hola </ u r l p a t t e r n > </ s e r v l e t mapping>
Guillermo Romn (Fac. Informtica(UPM)) a a Introduccin a Java J2EE o 28 de octubre de 2010 11 / 22

Env de datos entre cliente y servidor o


Env Formularios HTML o:
HTML dispone del componente form para enviar datos de usuario Dentro del formulario tiene que haber componentes de tipo input Hay mtliples tipos, text, radio, file, password, ... u El tipo submit permite enviar el formulario Hay que establecer el tipo de envio get o post El navegador genera la peticin con los datos o En una misma pgina puede haber mltiples formularios a u

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

12 / 22

Env de datos entre cliente y servidor o


Env Formularios HTML o:
HTML dispone del componente form para enviar datos de usuario Dentro del formulario tiene que haber componentes de tipo input Hay mtliples tipos, text, radio, file, password, ... u El tipo submit permite enviar el formulario Hay que establecer el tipo de envio get o post El navegador genera la peticin con los datos o En una misma pgina puede haber mltiples formularios a u

Recogida en de los datos


Dependiendo de el tipo de env (pre o post) se recoger usando el o a doGet o el doPost req.getParameter(nombre) permite obtener el valor del parmetro a
Guillermo Romn (Fac. Informtica(UPM)) a a Introduccin a Java J2EE o 28 de octubre de 2010 12 / 22

JSPs
Ventajas y desventajas Servlets
El despligue de los cambios es largo, suele requerir reiniciar el servidor Para la generacin de cheros binarios es muy util o Generar HTML en un Servlet es poco claro Cada nuevo Servlet implica un cambio en el web.xml El despligue de los cambios es largo, suele requerir reiniciar

JSP (JavaServer Pages)


Permiten escribir cdigo Java intercalado en el cdigo HTML o o El despligue de los cambios durante el desarrollo es automtico a En el fondo generan un Servlet Dispone de una serie de variables predenidas request, session, response, out, application, ...
Guillermo Romn (Fac. Informtica(UPM)) a a Introduccin a Java J2EE o 28 de octubre de 2010 13 / 22

Generacin de una pgina de error o a


Control de errores
En JSPs o Servlets se pueden producir excepciones Puede hacerse el control del ujo manualmente J2EE permite redirigir a travs de la conguracin a determinadas e o pginas a Se hace en el web.xml <error-page> <exception-type>java.lang.Throwable</exception-type> <location>/Test/public_html/error.jsp</location> </error-page> Al principio del JSP al que se redirige el error se incluye <%@ page isErrorPage="true"%>

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

14 / 22

Scopes
Request
Los datos de la request unicamente viven durante la peticin o Si se quieren mantener entre dos request es necesario volverlos a enviar

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

15 / 22

Scopes
Request
Los datos de la request unicamente viven durante la peticin o Si se quieren mantener entre dos request es necesario volverlos a enviar

Session
La sesin la crea el navegador al establecer una conexin o o Se mantiene durante todas las conexiones del mismo navegador Permite almacenar objetos utiles durante toda la conexin o

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

15 / 22

Scopes
Request
Los datos de la request unicamente viven durante la peticin o Si se quieren mantener entre dos request es necesario volverlos a enviar

Session
La sesin la crea el navegador al establecer una conexin o o Se mantiene durante todas las conexiones del mismo navegador Permite almacenar objetos utiles durante toda la conexin o

Application
Se genera al desplegar una aplicacin en el servidor de aplicaciones o Los datos se comparten para todos los clientes conectados Ojo: Los atributos estticos se comportan de la misma forma a
Guillermo Romn (Fac. Informtica(UPM)) a a Introduccin a Java J2EE o 28 de octubre de 2010 15 / 22

JavaBean
Concepto
Son clases normales que unicamente disponen de atributos (privados), getters y setters Viven en alguno de los scopes (o mbitos) de la aplicacin a o J2EE dispone de componentes para que sean accedidos de una forma ms sencilla con algunas etiquetas a Los datos que se encuentran accesibles en una aplicacin se o encuentran en JavaBeans, que a su vez se encuentran en alguno de los scopes El objetivo de la Web ser cargar, mostrar, solicitar, presentar a JavaBeans Pueden anidarse objetos Puede ser un objeto de tipo Collection (ArrayList, Vector, HashMap, ...)
Guillermo Romn (Fac. Informtica(UPM)) a a Introduccin a Java J2EE o 28 de octubre de 2010 16 / 22

Uso de ltro de acceso


Control de Login
T pico problema de control de acceso a una parte privada de la aplicacin o Requiere haber pasado previamente por el login pero cmo sabemos o si ya se ha logado? J2EE permite denir ltros para determinadas partes de la web Un mecanismo habitual es evaluar un determinado objeto de la sesin o que se genera al hacer el login de usuario Es necesario implementar el interfaz implements javax.servlet.Filter Denir en web.xml las pginas a ltrar a La comprobacin de la existencia de cookies se puede hacer en los o ltros
Guillermo Romn (Fac. Informtica(UPM)) a a Introduccin a Java J2EE o 28 de octubre de 2010 17 / 22

Log4Java
Motivacin o
La gestin de los logs es clave en la programacin Web o o
Un servidor est 24x7 horas funcionando, por tanto es necesario a disponer de un registro de lo que va sucediendo Es fundamental para el anlisis post-mortem a

Caracter sticas
Se trata de una de las librer ms extendidas para la programacin as a o web con J2EE Permite congurar de forma sencilla donde se escribirn los mensajes a de la aplicacin o Permite establecer el nivel de log que se quiere mostrar La conguracin se realiza (por defecto) en el chero log4j.xml o Permite identicar un vocamente una transaccin para poder trazarla o
Guillermo Romn (Fac. Informtica(UPM)) a a Introduccin a Java J2EE o 28 de octubre de 2010 18 / 22

JSTL (JavaServer Standard Tag Library)


Motivacin o
Meter cdigo scriptlet en el HTML hace muy poco uniforme el cdigo o o <jsp:useBean> permite acceder a los Beans de una forma un poco ms homognea a e jsp:useBean est muy limitado y necesita de cdigo Java para la a o mayor parte de los problemas t picos

Caracter sticas
Dene una serie de tags (etiquetas) para realizar las acciones ms a comunes en la programacin Web o
Acceder a los datos de un Bean en cualquier scope Acceder a objetos anidados o colecciones Recorrer una coleccin de objetos o Implementar un if-then-else

El resultado queda muy uniforme en el HTML


Guillermo Romn (Fac. Informtica(UPM)) a a Introduccin a Java J2EE o 28 de octubre de 2010 19 / 22

Distribucin de aplicaciones o
Ficheros contenedores
Normalmente no se publican las aplicaciones con el directorio desplegado Se genera un chero WAR (Web Application Resource) para su distribucin o Tiene la misma estructura comentada anteriormente pero comprimida en formato zip El chero contiene tanto los cheros jsp, class, html, properties, ... El servidor de aplicaciones lee este formato y lo descomprime en directorios temporales Los cheros WAR pueden estar contenidos en cheros EAR (Enterprise Application Resource)

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

20 / 22

Otros Conceptos
Otras tecnolog J2EE as
EJBs (Entreprise Java Beans) JMS (Java Message Service) Servicios Web JDBC

Frameworks
Struts JSF (Java Server Faces) AJAX Spring Hibernate

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

21 / 22

Muchas Gracias!! guillermo.roman@upm.es

Guillermo Romn (Fac. Informtica(UPM)) a a

Introduccin a Java J2EE o

28 de octubre de 2010

22 / 22

También podría gustarte