SlideShare a Scribd company logo
1 of 44
Download to read offline
Introducción a las Aplicaciones
Web con Java
Eudris Cabrera Rodríguez
08 de octubre 2014, Santiago, R. D.
@eudriscabrera @eudriscabrera
Diplomado en Programación Java
Introducción al desarrollo de
aplicaciones web en Java
Agenda
● Aplicaciones Web
○ Aplicaciones Web Java
○ Contenedores Web
● Tecnologías Java para aplicaciones Web.
○ Servlet
○ Java Server Pages (JSP)
○ Scriptlets
Objetivos
Proveer una visión general de las tecnologías Java
disponibles a partir de una explicación de las aplicaciones
web, destacando las normas importantes en Java.
Aplicaciones Web
'Por definición, se trata de algo más que un 'sitio web'.
Se trata de una aplicación cliente / servidor que utiliza un navegador Web
como su programa cliente, y por consiguiente constituye un servicio interactivo
mediante la conexión con los servidores a través de Internet (o Intranet).
Una aplicación web presenta contenido adaptado dinámicamente en función de
parámetros de la petición, los comportamientos de los usuarios seguidos, y
consideraciones de seguridad.
¿Qué es una aplicación web?
Tendencias en el desarrollo de software
Una aplicación Web Java puede ser representada como una jerarquía de
directorios y archivos, que a su vez contiene:
❏ Componentes Web (Servlets, JavaServer Pages, entre otros)
❏ Recursos estáticos (páginas html e imágenes).
❏ Clases Java.
❏ Librerías (Archivos Jars).
❏ Un archivo descriptor de despliegue (web.xml).
Una aplicación web de Java se puede implementar como un archivo ".war".
El archivo ".war" es un archivo zip que contiene todo el contenido de la
aplicación web correspondiente.
Aplicación Web Java
Las aplicaciones java web normalmente no se ejecutan directamente en el
servidor, sino que se ejecutan dentro de un contenedor en el servidor.
El contenedor proporciona un entorno de ejecución para aplicaciones web en
Java.
El contenedor es para aplicaciones web en Java lo que la JVM (Java Virtual
Machine) es para las aplicaciones Java que se ejecutan locales.
El contenedor en sí se ejecuta en la JVM.
Contenedores Web
Contenedores Web
En general, Java distingue dos contenedores: El contenedor web y el contenedor
Java EE.
Un contenedor Web apoya la ejecución de Servlets Java y JavaServer Pages.
Un contenedor compatible con Java EE
provee funcionalidades adicionales,
tales como, gestor de ejecución de
los Enterprise JavaBeans, interfaz
de conexión entre el servidor
Java EE y aplicaciones clientes.
Contenedores Web
Contenedores web típicas en el mundo
Java son Tomcat o Jetty.
Contenedores Web
La mayoría de los frameworks web modernos de Java están basadas en servlets
y JavaServer Pages.
Frameworks web populares en
Java son JavaServer Faces,
Struts, Spring.
Estos frameworks web por lo general
se ejecutan en un contenedor web.
Contenedores Web
Tecnologías usadas
en aplicaciones Web
Las tecnologías estándar de Java se definen a través de un proceso estándar
llamado Java Community Process (JCP).
Las siguientes tecnologías se definen por la JCP.
https://jcp.org/en/home/index
Estándares Web Java
Tecnologías Java para Aplicaciones Web
Un Java Servlet es un objeto Java que responde a las solicitudes HTTP.
Se ejecuta dentro de un contenedor de servlets(ej: Tomcat)
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.
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.
Otras opciones que permiten generar contenido dinámico son los lenguajes ASP, PHP,
JSP (un caso especial de servlet), Ruby y Python.
Java Servlet
Servlet dentro de un
contenedor Servlet.
Java Servlet
Podemos crear un Servlet haciendo uso del paquete javax.servlet.
Interface HttpServletRequest
Interface HttpServletResponse
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.
Clases y Objetos Necesarios
Java Servlet
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.
c. Si es la primera, se utiliza el motor de Servlets para cargarlo y se llama al
método init().
d. Si ya está iniciado, cualquier petición se convierte en un nuevo hilo. Un
Servlet puede manejar múltiples peticiones de clientes.
e. Se llama al método service() para procesar la petición devolviendo el
resultado al cliente.
f. Cuando se apaga el motor de un Servlet se llama al método destroy(), que lo
destruye y libera los recursos abiertos.
Ciclo de Vida
Beneficios de utilizar Servlets de CGI
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.
Tienen persistencia, por lo que siguen "vivos" una vez terminada la
petición.
a)
b)
Sessiones
HttpSession representa un objeto a una sesión de usuario y contiene
información sobre el usuario en las distintas solicitudes HTTP.
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
}
Almacenar session
session.setAttribute("userName", "theUserName");
Leer una session
String userName = (String) session.getAttribute("userName");
ServletContext
ServletContext es un objeto que contiene meta-información acerca de la
aplicación web.
Atributos
Asignación
context.setAttribute("someValue", "aValue");
Lectura
Object attribute = context.getAttribute("someValue");
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.
Descriptor de despliegue
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).
Servlet 3.0
Servlet 3.0
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.
Java Server Pages
Java Server Pages
Arquitectura
JSP puede considerarse como una manera alternativa, y simplificada, de construir
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)
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 Java bajo la
denominación de JSTL o las distribuidas por Apache junto con el Framework de
Struts.
TagLibs -> JSP -> Servidor Aplicaciones (Servlets) -> Cliente (Navegador)
Java Server Pages
Arquitectura
Java Server Pages
Java Server Pages
Un ejemplo sencillo:
<%@ page language="java" contentType="text/html" %>
<html>
<head>
<title>Hola, mundo!!</title>
</head>
<body>
<h1>Hola, mundo!</h1>
Hoy es <%= new java.util.Date() %>.
</body>
</html>
Java Server Pages
Directivas
Las directivas JSP son instrucciones procesadas por el motor JSP cuando la
página JSP se traduce a un servlet.
Las directivas usadas en este ejemplo le dicen al motor JSP que incluya
ciertos paquetes y clases.
Las directivas están encerradas entre etiquetas de directiva <%@ y %>.
<%@ page import="javax.naming.*" %>
<%@ page import="javax.rmi.PortableRemoteObject" %>
<%@ page import="Beans.*" %>
Java Server Pages
Declaraciones
Las declaraciones JSP nos permiten configurar variables para su uso posterior
en expresiones o scriptlets.
También podemos declarar variables dentro de expresiones o scriptlets en el
momento de usarlas.
<%! double bonus; String text; %>
<%! String strMult, socsec; %>
<%! Integer integerMult; %>
<%! int multiplier; %>
<%! double bonus; %>
Java Server Pages
Scriptlets
Los scriptlets JSP nos permiten embeber segmentos de código java dentro de
una página JSP.
El código embebido se inserta directamente en el servlet generado que se
ejecuta cuando se pide la página.
Este scriptlet usa las variables declaradas en las directivas descritas
anteriormente.
Java Server Pages
Scriptlets
Los Scriptlets van encerradas entre etiquetas <% y %>.
<%
strMult = request.getParameter("MULTIPLIER");
socsec = request.getParameter("SOCSEC");
integerMult = new Integer(strMult);
multiplier = integerMult.intValue();
bonus = 100.00;
%>
Java Server Pages
Variables Predefinidas
Un scriptlet puede usar las siguientes variables predefinidas: session, request,
response, out, e in.
Las variables predefinidas se usan en los scriptlets de la misma forma que se
usan en los servlets, excepto que no las declaramos.
<%
strMult = request.getParameter("MULTIPLIER");
socsec = request.getParameter("SOCSEC");
integerMult = new Integer(strMult);
multiplier = integerMult.intValue();
bonus = 100.00;
%>
Java Server Pages
Etiquetas específicas de JSP
<jsp:forward>, redirige la request a otra URL
<jsp:include>, incluye el texto de un fichero dentro de la página
<jsp:useBean>, permite manipular un Bean (si no existe, se creará el Bean),
especificando su ámbito (scope), la clase y el tipo.
<jsp:getProperty>, obtiene la propiedad especificada de un bean
previamente declarado y la escribe en el objeto response.
<jsp:setProperty>, establece el valor de una propiedad de un bean
previamente declarado.
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.
Esto permite separar en niveles las aplicaciones web, dejando la parte encargada
de generar el documento HTML en el archivo JSP.
Java Server Pages
Java Server Pages
ser
Ventajas:
JSP hereda la portabilidad de Java, y es posible ejecutar las aplicaciones en
múltiples plataformas sin cambios.
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.
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.
Java Server Pages
Referencias
Todas las marcas registradas, así como todos los logotipos, imágenes,
fotografías, audio y vídeos mostrados en esta presentación son propiedad de
sus respectivos propietarios y/o representantes.
Su utilización es solamente para fines ilustrativos.
Enlaces:
http://www.vogella.com/tutorials/JavaWebTerminology/article.html
http://tutorials.jenkov.com/java-servlets/overview.html
¿Preguntas?
@eudriscabrera
@eudris
@ecabrerar
@eudriscabrera
Eudris Cabrera Rodríguez
Ingeniero Telemático
Desarrollador de Software / Consultor Informático
eudris@gmail.com

More Related Content

What's hot

What's hot (20)

Curso Java Avanzado 3 4 Js Ps Con Java Beans
Curso Java Avanzado   3 4 Js Ps Con Java BeansCurso Java Avanzado   3 4 Js Ps Con Java Beans
Curso Java Avanzado 3 4 Js Ps Con Java Beans
 
Servlets y jsp
Servlets y jspServlets y jsp
Servlets y jsp
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicion
 
Manual programacion - java - jsp & xml
Manual   programacion - java - jsp & xmlManual   programacion - java - jsp & xml
Manual programacion - java - jsp & xml
 
Resumen jee
Resumen jeeResumen jee
Resumen jee
 
4. Curso Java JSP (Java Server Pages) - Curso 2005-2006
4. Curso Java JSP (Java Server Pages) - Curso 2005-20064. Curso Java JSP (Java Server Pages) - Curso 2005-2006
4. Curso Java JSP (Java Server Pages) - Curso 2005-2006
 
Curso Jsp Mas
Curso Jsp MasCurso Jsp Mas
Curso Jsp Mas
 
Jsp servlet- Tutorial BD Conexión
Jsp servlet- Tutorial BD ConexiónJsp servlet- Tutorial BD Conexión
Jsp servlet- Tutorial BD Conexión
 
Jsp(java server pages)
Jsp(java server pages)Jsp(java server pages)
Jsp(java server pages)
 
Practica jsp
Practica jspPractica jsp
Practica jsp
 
JSP
JSP JSP
JSP
 
Tomcat
TomcatTomcat
Tomcat
 
Eclipse
EclipseEclipse
Eclipse
 
Charla
CharlaCharla
Charla
 
SERVLET BASICS
SERVLET BASICSSERVLET BASICS
SERVLET BASICS
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-20065. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
 
Frameworks J2EE
Frameworks J2EEFrameworks J2EE
Frameworks J2EE
 
Curso Básico de JDBC
Curso Básico de JDBCCurso Básico de JDBC
Curso Básico de JDBC
 
Java WebServices JaxWS - JaxRs
Java WebServices JaxWS - JaxRsJava WebServices JaxWS - JaxRs
Java WebServices JaxWS - JaxRs
 

Viewers also liked

Java Day Santiago RD 2015
Java Day Santiago RD 2015Java Day Santiago RD 2015
Java Day Santiago RD 2015Eudris Cabrera
 
[ES] Tareas Administrativas en GNU/Linux
[ES] Tareas Administrativas en GNU/Linux[ES] Tareas Administrativas en GNU/Linux
[ES] Tareas Administrativas en GNU/LinuxEudris Cabrera
 
[ES] Administración de servicios en GNU/Linux
[ES] Administración de servicios en GNU/Linux[ES] Administración de servicios en GNU/Linux
[ES] Administración de servicios en GNU/LinuxEudris Cabrera
 
[ES] Primeros pasos con la Plataforma Java
[ES] Primeros pasos con la Plataforma Java[ES] Primeros pasos con la Plataforma Java
[ES] Primeros pasos con la Plataforma JavaEudris Cabrera
 
[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7Eudris Cabrera
 
[ES] Línea de Comandos GNU/Linux
[ES] Línea de Comandos GNU/Linux[ES] Línea de Comandos GNU/Linux
[ES] Línea de Comandos GNU/LinuxEudris Cabrera
 
[ES] Estructura del Sistema de Archivos Gnu/Linux
[ES] Estructura del Sistema de Archivos Gnu/Linux[ES] Estructura del Sistema de Archivos Gnu/Linux
[ES] Estructura del Sistema de Archivos Gnu/LinuxEudris Cabrera
 
Taller introducción Java EE 7 @UAPA
Taller introducción Java EE 7  @UAPATaller introducción Java EE 7  @UAPA
Taller introducción Java EE 7 @UAPAEudris Cabrera
 
Java8 : Más allá de las Expresiones Lambdas
Java8 :  Más allá de las Expresiones LambdasJava8 :  Más allá de las Expresiones Lambdas
Java8 : Más allá de las Expresiones LambdasEudris Cabrera
 

Viewers also liked (9)

Java Day Santiago RD 2015
Java Day Santiago RD 2015Java Day Santiago RD 2015
Java Day Santiago RD 2015
 
[ES] Tareas Administrativas en GNU/Linux
[ES] Tareas Administrativas en GNU/Linux[ES] Tareas Administrativas en GNU/Linux
[ES] Tareas Administrativas en GNU/Linux
 
[ES] Administración de servicios en GNU/Linux
[ES] Administración de servicios en GNU/Linux[ES] Administración de servicios en GNU/Linux
[ES] Administración de servicios en GNU/Linux
 
[ES] Primeros pasos con la Plataforma Java
[ES] Primeros pasos con la Plataforma Java[ES] Primeros pasos con la Plataforma Java
[ES] Primeros pasos con la Plataforma Java
 
[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7
 
[ES] Línea de Comandos GNU/Linux
[ES] Línea de Comandos GNU/Linux[ES] Línea de Comandos GNU/Linux
[ES] Línea de Comandos GNU/Linux
 
[ES] Estructura del Sistema de Archivos Gnu/Linux
[ES] Estructura del Sistema de Archivos Gnu/Linux[ES] Estructura del Sistema de Archivos Gnu/Linux
[ES] Estructura del Sistema de Archivos Gnu/Linux
 
Taller introducción Java EE 7 @UAPA
Taller introducción Java EE 7  @UAPATaller introducción Java EE 7  @UAPA
Taller introducción Java EE 7 @UAPA
 
Java8 : Más allá de las Expresiones Lambdas
Java8 :  Más allá de las Expresiones LambdasJava8 :  Más allá de las Expresiones Lambdas
Java8 : Más allá de las Expresiones Lambdas
 

Similar to Introducción al desarrollo de aplicaciones web en Java

Similar to Introducción al desarrollo de aplicaciones web en Java (20)

Programación en Internet
Programación en InternetProgramación en Internet
Programación en Internet
 
Servlet
ServletServlet
Servlet
 
Java Web - Servlet
Java Web - ServletJava Web - Servlet
Java Web - Servlet
 
[ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition [ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition
 
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)
 
Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones web
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 
Java Web - JSP
Java Web - JSPJava Web - JSP
Java Web - JSP
 
JSP
JSPJSP
JSP
 
Sesion06 apuntes
Sesion06 apuntesSesion06 apuntes
Sesion06 apuntes
 
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptintroduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
 
Jsp
JspJsp
Jsp
 
JEE y Tomcat
JEE y TomcatJEE y Tomcat
JEE y Tomcat
 
Jsp Paginacion
Jsp PaginacionJsp Paginacion
Jsp Paginacion
 
Herramientas de Desarrollo de Sistemas
Herramientas de Desarrollo de SistemasHerramientas de Desarrollo de Sistemas
Herramientas de Desarrollo de Sistemas
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
 
Java servlet
Java servletJava servlet
Java servlet
 
Introduccion java ser
Introduccion java serIntroduccion java ser
Introduccion java ser
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
 
Clase ii intro j2 ee resumen
Clase ii   intro j2 ee resumenClase ii   intro j2 ee resumen
Clase ii intro j2 ee resumen
 

Recently uploaded

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 JosephBRAYANJOSEPHPEREZGOM
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
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
 
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 UninoveFagnerLisboa3
 
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 FabricKeyla Dolores Méndez
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
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 JUNITMaricarmen Sánchez Ruiz
 
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)GDGSucre
 
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.pptx241521559
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
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íassuserf18419
 
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.pptxLolaBunny11
 

Recently uploaded (15)

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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
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...
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
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
 
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)
 
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
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
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
 
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
 

Introducción al desarrollo de aplicaciones web en Java

  • 1. Introducción a las Aplicaciones Web con Java Eudris Cabrera Rodríguez 08 de octubre 2014, Santiago, R. D. @eudriscabrera @eudriscabrera Diplomado en Programación Java Introducción al desarrollo de aplicaciones web en Java
  • 2. Agenda ● Aplicaciones Web ○ Aplicaciones Web Java ○ Contenedores Web ● Tecnologías Java para aplicaciones Web. ○ Servlet ○ Java Server Pages (JSP) ○ Scriptlets
  • 3. Objetivos Proveer una visión general de las tecnologías Java disponibles a partir de una explicación de las aplicaciones web, destacando las normas importantes en Java.
  • 5. 'Por definición, se trata de algo más que un 'sitio web'. Se trata de una aplicación cliente / servidor que utiliza un navegador Web como su programa cliente, y por consiguiente constituye un servicio interactivo mediante la conexión con los servidores a través de Internet (o Intranet). Una aplicación web presenta contenido adaptado dinámicamente en función de parámetros de la petición, los comportamientos de los usuarios seguidos, y consideraciones de seguridad. ¿Qué es una aplicación web?
  • 6. Tendencias en el desarrollo de software
  • 7. Una aplicación Web Java puede ser representada como una jerarquía de directorios y archivos, que a su vez contiene: ❏ Componentes Web (Servlets, JavaServer Pages, entre otros) ❏ Recursos estáticos (páginas html e imágenes). ❏ Clases Java. ❏ Librerías (Archivos Jars). ❏ Un archivo descriptor de despliegue (web.xml). Una aplicación web de Java se puede implementar como un archivo ".war". El archivo ".war" es un archivo zip que contiene todo el contenido de la aplicación web correspondiente. Aplicación Web Java
  • 8. Las aplicaciones java web normalmente no se ejecutan directamente en el servidor, sino que se ejecutan dentro de un contenedor en el servidor. El contenedor proporciona un entorno de ejecución para aplicaciones web en Java. El contenedor es para aplicaciones web en Java lo que la JVM (Java Virtual Machine) es para las aplicaciones Java que se ejecutan locales. El contenedor en sí se ejecuta en la JVM. Contenedores Web
  • 10. En general, Java distingue dos contenedores: El contenedor web y el contenedor Java EE. Un contenedor Web apoya la ejecución de Servlets Java y JavaServer Pages. Un contenedor compatible con Java EE provee funcionalidades adicionales, tales como, gestor de ejecución de los Enterprise JavaBeans, interfaz de conexión entre el servidor Java EE y aplicaciones clientes. Contenedores Web
  • 11. Contenedores web típicas en el mundo Java son Tomcat o Jetty. Contenedores Web
  • 12. La mayoría de los frameworks web modernos de Java están basadas en servlets y JavaServer Pages. Frameworks web populares en Java son JavaServer Faces, Struts, Spring. Estos frameworks web por lo general se ejecutan en un contenedor web. Contenedores Web
  • 14. Las tecnologías estándar de Java se definen a través de un proceso estándar llamado Java Community Process (JCP). Las siguientes tecnologías se definen por la JCP. https://jcp.org/en/home/index Estándares Web Java
  • 15. Tecnologías Java para Aplicaciones Web
  • 16. Un Java Servlet es un objeto Java que responde a las solicitudes HTTP. Se ejecuta dentro de un contenedor de servlets(ej: Tomcat) 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. 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. Otras opciones que permiten generar contenido dinámico son los lenguajes ASP, PHP, JSP (un caso especial de servlet), Ruby y Python. Java Servlet
  • 17. Servlet dentro de un contenedor Servlet. Java Servlet
  • 18. Podemos crear un Servlet haciendo uso del paquete javax.servlet. Interface HttpServletRequest Interface HttpServletResponse 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. Clases y Objetos Necesarios
  • 21. 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. c. Si es la primera, se utiliza el motor de Servlets para cargarlo y se llama al método init(). d. Si ya está iniciado, cualquier petición se convierte en un nuevo hilo. Un Servlet puede manejar múltiples peticiones de clientes. e. Se llama al método service() para procesar la petición devolviendo el resultado al cliente. f. Cuando se apaga el motor de un Servlet se llama al método destroy(), que lo destruye y libera los recursos abiertos. Ciclo de Vida
  • 22. Beneficios de utilizar Servlets de CGI 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. Tienen persistencia, por lo que siguen "vivos" una vez terminada la petición. a) b)
  • 23. Sessiones HttpSession representa un objeto a una sesión de usuario y contiene información sobre el usuario en las distintas solicitudes HTTP. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); } Almacenar session session.setAttribute("userName", "theUserName"); Leer una session String userName = (String) session.getAttribute("userName");
  • 24. ServletContext ServletContext es un objeto que contiene meta-información acerca de la aplicación web. Atributos Asignación context.setAttribute("someValue", "aValue"); Lectura Object attribute = context.getAttribute("someValue");
  • 25. 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. Descriptor de despliegue
  • 26. 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). Servlet 3.0
  • 28. 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. Java Server Pages
  • 29. Java Server Pages Arquitectura JSP puede considerarse como una manera alternativa, y simplificada, de construir 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)
  • 30. 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 Java bajo la denominación de JSTL o las distribuidas por Apache junto con el Framework de Struts. TagLibs -> JSP -> Servidor Aplicaciones (Servlets) -> Cliente (Navegador) Java Server Pages
  • 32. Java Server Pages Un ejemplo sencillo: <%@ page language="java" contentType="text/html" %> <html> <head> <title>Hola, mundo!!</title> </head> <body> <h1>Hola, mundo!</h1> Hoy es <%= new java.util.Date() %>. </body> </html>
  • 33. Java Server Pages Directivas Las directivas JSP son instrucciones procesadas por el motor JSP cuando la página JSP se traduce a un servlet. Las directivas usadas en este ejemplo le dicen al motor JSP que incluya ciertos paquetes y clases. Las directivas están encerradas entre etiquetas de directiva <%@ y %>. <%@ page import="javax.naming.*" %> <%@ page import="javax.rmi.PortableRemoteObject" %> <%@ page import="Beans.*" %>
  • 34. Java Server Pages Declaraciones Las declaraciones JSP nos permiten configurar variables para su uso posterior en expresiones o scriptlets. También podemos declarar variables dentro de expresiones o scriptlets en el momento de usarlas. <%! double bonus; String text; %> <%! String strMult, socsec; %> <%! Integer integerMult; %> <%! int multiplier; %> <%! double bonus; %>
  • 35. Java Server Pages Scriptlets Los scriptlets JSP nos permiten embeber segmentos de código java dentro de una página JSP. El código embebido se inserta directamente en el servlet generado que se ejecuta cuando se pide la página. Este scriptlet usa las variables declaradas en las directivas descritas anteriormente.
  • 36. Java Server Pages Scriptlets Los Scriptlets van encerradas entre etiquetas <% y %>. <% strMult = request.getParameter("MULTIPLIER"); socsec = request.getParameter("SOCSEC"); integerMult = new Integer(strMult); multiplier = integerMult.intValue(); bonus = 100.00; %>
  • 37. Java Server Pages Variables Predefinidas Un scriptlet puede usar las siguientes variables predefinidas: session, request, response, out, e in. Las variables predefinidas se usan en los scriptlets de la misma forma que se usan en los servlets, excepto que no las declaramos. <% strMult = request.getParameter("MULTIPLIER"); socsec = request.getParameter("SOCSEC"); integerMult = new Integer(strMult); multiplier = integerMult.intValue(); bonus = 100.00; %>
  • 38. Java Server Pages Etiquetas específicas de JSP <jsp:forward>, redirige la request a otra URL <jsp:include>, incluye el texto de un fichero dentro de la página <jsp:useBean>, permite manipular un Bean (si no existe, se creará el Bean), especificando su ámbito (scope), la clase y el tipo. <jsp:getProperty>, obtiene la propiedad especificada de un bean previamente declarado y la escribe en el objeto response. <jsp:setProperty>, establece el valor de una propiedad de un bean previamente declarado.
  • 39. 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. Esto permite separar en niveles las aplicaciones web, dejando la parte encargada de generar el documento HTML en el archivo JSP. Java Server Pages
  • 40. Java Server Pages ser Ventajas: JSP hereda la portabilidad de Java, y es posible ejecutar las aplicaciones en múltiples plataformas sin cambios. 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.
  • 41. 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. Java Server Pages
  • 42. Referencias Todas las marcas registradas, así como todos los logotipos, imágenes, fotografías, audio y vídeos mostrados en esta presentación son propiedad de sus respectivos propietarios y/o representantes. Su utilización es solamente para fines ilustrativos. Enlaces: http://www.vogella.com/tutorials/JavaWebTerminology/article.html http://tutorials.jenkov.com/java-servlets/overview.html
  • 44. @eudriscabrera @eudris @ecabrerar @eudriscabrera Eudris Cabrera Rodríguez Ingeniero Telemático Desarrollador de Software / Consultor Informático eudris@gmail.com