Este documento introduce los conceptos básicos de desarrollo web con Java, incluyendo servlets y Java Server Pages (JSP). Explica que los servlets son objetos que generan contenido dinámico y corren en un contenedor como Tomcat, mientras que las JSP permiten usar código Java en páginas web para generar contenido dinámico. También incluye demostraciones de cómo crear y desplegar servlets y JSP simples.
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
[ES] Introdución al desarrollo de aplicaciones web en java
1. 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.
3. Agenda
○ Introducción al desarrollo de aplicaciones web en Java.
■ Servlet
■ Java Server Pages (JSP)
4. 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.
5. 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.
6. 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).
7. 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.
8. Clases y objetos necesarios
Podemos crear un Servlet haciendo uso del paquete javax.
servlet.
Interface HttpServletRequest
Interface HttpServletResponse
9. 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.
10. DEMO I
a. Configurar entorno de trabajo para poder desplegar
archivos web.
b. Ejemplo básico de Servlet.
11. Descriptor de despliegue
El 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
12. Servlet 3.0
Es 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).
14. 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.
15. 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)
16. 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)
17. 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.
18. 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.
19. 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.
20. 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).
21. 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.