25
Let's Rock Java Fundamentos de Java Enterprise Edition con JDeveloper Eudris Cabrera Rodriguez Ingeniero Telemático Senior Software Developer Skype:eudriscabrera LinkedIn:http://www.linkedin.com/in/eudriscabrera Noviembre 2011, Santiago de los Caballeros, R. D.

[ES] Introdución al desarrollo de aplicaciones web en java

Embed Size (px)

DESCRIPTION

Introducir los conceptos básicos de la programación web usando tecnología Java.

Citation preview

Page 1: [ES] Introdución al desarrollo de aplicaciones  web en java

Let's Rock Java

Fundamentos de Java Enterprise Edition con JDeveloper

Eudris Cabrera Rodriguez

Ingeniero TelemáticoSenior Software DeveloperSkype:eudriscabreraLinkedIn:http://www.linkedin.com/in/eudriscabrera Noviembre 2011, Santiago de los Caballeros, R. D.

Page 2: [ES] Introdución al desarrollo de aplicaciones  web en java

Objetivos

Entender los conceptos básicos de la programación web usando tecnología Java.

Page 3: [ES] Introdución al desarrollo de aplicaciones  web en java

Agenda○ Introducción al desarrollo de aplicaciones web en Java.

■ Servlet■ Java Server Pages (JSP)

Page 4: [ES] Introdución al desarrollo de aplicaciones  web en java

Java Servlet

Los servlets, son objetos que corren dentro del contexto de un contenedor de servlets (ej: Tomcat) y extienden su funcionalidad.

La palabra servlet deriva de otra anterior, applet, que se refería a pequeños programas que se ejecutan en el contexto de un navegador web. Por contraposición, un servlet es un programa que se ejecuta en un servidor.

El uso más común de los servlets es generar páginas web de forma dinámica a partir de los parámetros de la petición que envíe el navegador web.

Page 5: [ES] Introdución al desarrollo de aplicaciones  web en java

Aspectos técnicos

Un servlet es un objeto que se ejecuta en un servidor o contenedor JEE, especialmente diseñado para ofrecer contenido dinámico desde un servidor web, generalmente HTML.

Otras opciones que permiten generar contenido dinámico son los lenguajes ASP, PHP, JSP (un caso especial de servlet), Ruby y Python. Forman parte de JEE (Java Enterprise Edition), que es una ampliación de JSE (Java Standard Edition).

Un servlet implementa la interfaz javax.servlet.Servlet o hereda alguna de las clases más convenientes para un protocolo específico (ej: javax.servlet.HttpServlet). Al implementar esta interfaz el servlet es capaz de interpretar los objetos de tipo HttpServletRequest y HttpServletResponse quienes contienen la información de la página que invocó al servlet.

Page 6: [ES] Introdución al desarrollo de aplicaciones  web en java

Aspectos técnicos

Entre el servidor de aplicaciones (o web content) y el servlet existe un contrato que determina cómo han de interactuar. La especificación de éste se encuentra en los JSR (Java Specification Requests) del JCP (Java Community Process).

Page 7: [ES] Introdución al desarrollo de aplicaciones  web en java

Ciclo de vida

El ciclo de vida de un Servlet se divide en los siguientes puntos:

a. El cliente solicita una petición a un servidor vía URL.b. El servidor recibe la petición.

i. Si es la primera, se utiliza el motor de Servlets para cargarlo y se llama al método init().

ii. Si ya está iniciado, cualquier petición se convierte en un nuevo hilo. Un Servlet puede manejar múltiples peticiones de clientes.

c. Se llama al método service() para procesar la petición devolviendo el resultado al cliente.

d. Cuando se apaga el motor de un Servlet se llama al método destroy(), que lo destruye y libera los recursos abiertos.

Page 8: [ES] Introdución al desarrollo de aplicaciones  web en java

Clases y objetos necesarios

Podemos crear un Servlet haciendo uso del paquete javax.servlet.

Interface HttpServletRequest

Interface HttpServletResponse

Page 9: [ES] Introdución al desarrollo de aplicaciones  web en java

Beneficios de utilizar Servlets en lugar de CGI

a. Son más eficientes y utilizan menos recursos. CGI utiliza un nuevo proceso por cada petición. En cambio en los Servlets sólo existe una copia cargada en la máquina virtual y por cada petición se inicia un hilo, lo cual reduce el uso de memoria del servidor y el tiempo de respuesta.

b. Tienen persistencia, por lo que siguen "vivos" una vez terminada la petición.

Page 10: [ES] Introdución al desarrollo de aplicaciones  web en java

DEMO Ia. Configurar entorno de trabajo para poder desplegar

archivos web.b. Ejemplo básico de Servlet.

Page 11: [ES] Introdución al desarrollo de aplicaciones  web en java

Descriptor de despliegueEl descriptor de despliegue es un archivo que se localiza en el directorio WEB-INF y se llama web.xml. En él es donde se controla el comportamiento de los Servlet y páginas JSP.

Explicación del descriptor de despliegue del ejemplo realizado

Page 12: [ES] Introdución al desarrollo de aplicaciones  web en java

Servlet 3.0Es una actualización a la versión anterior Servlet 2.5, sus principales funcionalidades son:

● Soporte para transacciones asíncrona.● Facilidad de configuración.● Mejoras en el API.● Facilidad para ser integrada con otras tecnologías

(Pluggability).

Page 13: [ES] Introdución al desarrollo de aplicaciones  web en java

DEMO IIa. Otros ejemplos de Servlet

Page 14: [ES] Introdución al desarrollo de aplicaciones  web en java

JavaServer Pages

JavaServer Pages (JSP) es una tecnología Java que permite generar contenido dinámico para web, en forma de documentos HTML, XML o de otro tipo.

Las JSP's permiten la utilización de código Java mediante scripts. Además, es posible utilizar algunas acciones JSP predefinidas mediante etiquetas. Estas etiquetas pueden ser enriquecidas mediante la utilización de Bibliotecas de Etiquetas (TagLibs o Tag Libraries) externas e incluso personalizadas.

Page 15: [ES] Introdución al desarrollo de aplicaciones  web en java

JavaServer Pages

Arquitectura

JSP puede considerarse como una manera alternativa, y simplificada, de construir servlets. Es por ello que una página JSP puede hacer todo lo que un servlet puede hacer, y viceversa. Cada versión de la especificación de JSP está fuertemente vinculada a una versión en particular de la especificación de servlets.

El funcionamiento general de la tecnología JSP es que el Servidor de Aplicaciones interpreta el código contenido en la página JSP para construir el código Java del servlet a generar. Este servlet será el que genere el documento (típicamente HTML) que se presentará en la pantalla del Navegador del usuario.

JSP -> Servidor Aplicaciones (Servlets) -> Cliente (Navegador)

Page 16: [ES] Introdución al desarrollo de aplicaciones  web en java

JavaServer Pages

Arquitectura

Es posible enriquecer el lenguaje de etiquetas utilizado por JSP. Para ello debemos extender la capa de alto nivel JSP mediante la implementación de Bibliotecas de Etiquetas (Tags Libraries). Un ejemplo de estas bibliotecas son las proporcionadas por Sun bajo la denominación de JSTL o las distribuidas por Apache junto con el Framework de Struts.

TagLibs -> JSP -> Servidor Aplicaciones (Servlets) -> Cliente (Navegador)

Page 17: [ES] Introdución al desarrollo de aplicaciones  web en java

JavaServer Pages

El rendimiento de una página JSP es el mismo que tendría el servlet equivalente, ya que el código es compilado como cualquier otra clase Java. A su vez, la máquina virtual compila dinámicamente el código de máquina de las partes de la aplicación que lo requieran.

Esto hace que JSP tenga un buen desempeño y sea más eficiente que otras tecnologías web que ejecutan el código de una manera puramente interpretada.

Page 18: [ES] Introdución al desarrollo de aplicaciones  web en java

JavaServer Pages

Ventajas:

La principal ventaja de JSP frente a otros lenguajes es que el lenguaje Java es un lenguaje de propósito general que excede el mundo web y que es apto para crear clases que manejan lógica de negocio y acceso a datos de una manera prolija.

Esto permite separar en niveles las aplicaciones web, dejando la parte encargada de generar el documento HTML en el archivo JSP.

Page 19: [ES] Introdución al desarrollo de aplicaciones  web en java

JavaServer Pages

Ventajas:

JSP hereda la portabilidad de Java, y es posible ejecutar las aplicaciones en múltiples plataformas sin cambios. Es común incluso que los desarrolladores trabajen en una plataforma y que la aplicación termine siendo ejecutada en otra.

Los servlets y Java Server Pages (JSPs) son dos métodos de creación de páginas web dinámicas en servidor usando el lenguaje Java. En ese sentido son similares a otros métodos o lenguajes tales como el PHP, ASP o los CGIs, programas que generan páginas web en el servidor. Sin embargo, se diferencian de ellos en otras cosas.

Page 20: [ES] Introdución al desarrollo de aplicaciones  web en java

JavaServer Pages

Ventajas:

Para empezar, los JSPs y servlets se ejecutan en una máquina virtual Java, lo cual permite que, en principio, se puedan usar en cualquier tipo de ordenador, siempre que exista una máquina virtual Java para él.

Cada servlet (o JSP, a partir de ahora lo usaremos de forma indistinta) se ejecuta en su propia hebra, es decir, en su propio contexto; pero no se comienza a ejecutar cada vez que recibe una petición, sino que persiste de una petición a la siguiente, de forma que no se pierde tiempo en invocarlo (cargar programa + intérprete).

Page 21: [ES] Introdución al desarrollo de aplicaciones  web en java

JavaServer Pages

Ventajas

Su persistencia le permite también hacer una serie de cosas de forma más eficiente: conexión a bases de datos y manejo de sesiones, por ejemplo.

Las JSPs son en realidad una forma alternativa de crear servlets ya que el código JSP se traduce a código de servlet Java la primera vez que se le invoca y en adelante es el código del nuevo servlet el que se ejecuta produciendo como salida el código HTML que compone la página web de respuesta.

Page 22: [ES] Introdución al desarrollo de aplicaciones  web en java

JavaServer Pages

Arquitectura

Page 23: [ES] Introdución al desarrollo de aplicaciones  web en java

DEMO III

● Primeros pasos con JSP

● Conociendo etiquetas

● Taglibs

Page 24: [ES] Introdución al desarrollo de aplicaciones  web en java

PREGUNTAS ?

Page 25: [ES] Introdución al desarrollo de aplicaciones  web en java

WE ROCK JAVA !!!