SlideShare una empresa de Scribd logo
Java Web
Servlet
http://javacuriosities.blogspot.com/
¿Que es CGI?
Java Web
▪ CGI = Common Gateway Interface.
▪ Los CGIs fueron una de las primeras tecnologías utilizadas para el
proceso de datos en el servidor.
▪ Son dependientes de la plataforma y difíciles de integrar en aplicaciones
de gran envergadura ya que presentan problemas de escalabilidad.
¿Que es un Servlet?
Java Web
▪ Es parte de la tecnología Java y pertenece a la Edición Empresarial
(J2EE).
▪ Es una unidad de funcionalidad que se ejecuta del lado del servidor, y
genera resultados que son enviados al cliente.
▪ Debe ser desplegado dentro de un Servlet Container (También llamado
Web Container) para su correcto funcionamiento.
CGI Vs Servlet
Java Web
Desventajas CGI:
- Mientras mas clientes tenemos, mas se incrementa el tiempo de respuesta.
- Para cada request se crea un proceso.
- El programa CGI es dependiente de la plataforma.
Ventajas Servlet:
- Mejor performance: Cada request crea un hilo y no un proceso.
- Portabilidad: Dado que se usa Java el código es multiplataforma.
- Robustez: Servlets son manejados por la JVM, por ende los temas de
memoria son manejados automáticamente.
- Seguridad: Tiene toda la capa de seguridad de Java.
Arquitectura de HTTP I
Java Web
Arquitectura de HTTP II
Java Web
El Web Client
- Es el consumidor principal de la arquitectura.
- Representa a un browser realizando requests (pedidos) al servidor, y recibiendo
responses (respuestas).
El Web Server
- Es el servidor que provee servicios Web.
- Recibe pedidos de los clientes, y les brinda respuestas.
- En su carácter mas básico, se encarga de servir páginas según la demanda.
- Contiene al Servlet Container
¿Que es el Servlet Container?
Java Web
▪ El Servlet Container es el componente encargado de la creación, acceso
y destrucción de los Servlets, controla su ciclo de vida.
▪ El Web Server trabaja en conjunto con el Servlet Container para ejecutar
los Servlets y generar contenido dinámico.
Tomcat como Servlet Container
Java Web
▪ El Tomcat es uno de los Servlet Container mas utilizados.
▪ Si bien es también un WebServer, no se recomienda su uso en
producción.
▪ Su uso como WebServer debería ser exclusivamente para desarrollo y
testing.
▪ Es común instalarlo sobre el Apache WebServer.
Web.xml
Java Web
Este archivo es conocido como el "Descriptor de despliegue" y contiene la información necesaria para
configurar la aplicación.
- <web-app>: Representa la aplicación.
- <servlet>: Es un subelemento dentro de <web-app> y representa un Servlet.
- <servlet-name>: Es un subelemento dentro de <servlet> representa el nombre del Servlet.
- <servlet-class>: Es un subelemento dentro de <servlet> representa la clase del Servlet.
- <servlet-mapping>: Es un subelemento dentro de <web-app>. Se usa para mapear el Servlet.
- <url-pattern>: Es un subelemento dentro de <servlet-mapping>. Es el patrón que se usa del lado
cliente para invocar ese Servlet. Podemos definir varios url-pattern para el mismo servlet-
mapping. Los url.pattern son case sensitive.
Ambiente de despliegue
Java Web
La carpeta webapps
- El Servlet Container puede lidiar con mas de una
aplicación.
- La carpeta webapps contiene las distintas
aplicaciones Web que podrán utilizarse, cada una de
ellas en una carpeta distinta
- Es la carpeta de mayor nivel en la jerarquía dentro del
Servlet Container
La carpeta WEB-INF
- Representa el corazón de la aplicación Web en
cuanto a las reglas de negocio
- Contiene el archivo de configuración web.xml
- Contiene el directorio correspondiente a las clases
La carpeta classes
- Deberá contener todos los archivos .class
- Cada clase compilada deberá estar ubicada en el
directorio correspondiente al paquete que la contiene
La carpeta lib
- Deberán estar ubicados todas las librerías que se
utilizan en el proyecto, es decir los archivos .jar
Archivos .war (Web Archive)
Java Web
- Deberá contener todos los Web Components necesarios de la aplicación.
- Entre ellos se incluyen archivos de texto, imágenes y archivos de audio, como también las
clases compiladas necesarias para su correcta ejecución.
- La ventaja que tiene es que resulta mas fácil desplegar una aplicación ya que se necesita de
un único archivo.
- Se puede ver como la versión Web del archivo “.jar”.
- La aplicación “MyApp” podría construirse dentro de un archivo .war con todo su contenido, y
copiarse al directorio webapps.
Request Dispatcher
Java Web
Un servlet/JSP puede invocar de modo directo a un recurso de la web. La
idea es poder reenviar la petición (request) a dicho recurso (HTML, Servlet,
JSP). Para hacer esto necesitamos un RequestDispatcher, que es un
referencia que encapsula el recurso.
El RequestDispatcher provee dos métodos:
- include: Donde incluimos otro recurso en nuestra respuesta.
- forward: Donde se re-direcciona la petición.
Método include
Java Web
Método forward
Java Web
Ejemplo
Java Web
Método sendRedirect
Java Web
El método sendRedirect() permite enviar el response a un recurso distinto,
esto realmente hace que el browser cree un nuevo request para atender
este pedido, este método nos permite usar URL internas al server o
externas. O sea la URL que se ve en el browser es la nueva.
Atributos
Java Web
Los atributos son objetos que son usados para compartir informacion en la
Web App, los atributos puede estar definidos a distintos niveles (Scope)
- Application Scope: Usamos el objeto ServletContext.
- Session Scope: Usamos el objeto HttpSession.
- Request Scope: Usamos el objeto ServletRequest.

Más contenido relacionado

La actualidad más candente

Bootstrap
BootstrapBootstrap
Analisis lexico automatas i
Analisis lexico automatas iAnalisis lexico automatas i
Analisis lexico automatas i
rubiyanetvalenciavelazquez
 
Monitoreo sql server
Monitoreo sql serverMonitoreo sql server
Monitoreo sql server
César Ramiro Martinez
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
Daniel Zambrano
 
XSLT
XSLTXSLT
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datosNuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
Hugo Alberto Rivera Diaz
 
DOM HTML Javascript
DOM HTML JavascriptDOM HTML Javascript
DOM HTML Javascript
Efrain Herrera Jimenez
 
Form Validation in JavaScript
Form Validation in JavaScriptForm Validation in JavaScript
Form Validation in JavaScript
Ravi Bhadauria
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
Guillermo
 
PHP - Introduction to PHP AJAX
PHP -  Introduction to PHP AJAXPHP -  Introduction to PHP AJAX
PHP - Introduction to PHP AJAX
Vibrant Technologies & Computers
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
José Antonio Sandoval Acosta
 
How to implement internationalization (i18n) in angular application(multiple ...
How to implement internationalization (i18n) in angular application(multiple ...How to implement internationalization (i18n) in angular application(multiple ...
How to implement internationalization (i18n) in angular application(multiple ...
Katy Slemon
 
Lab #2: Introduction to Javascript
Lab #2: Introduction to JavascriptLab #2: Introduction to Javascript
Lab #2: Introduction to Javascript
Walid Ashraf
 
Java Web - JSP
Java Web - JSPJava Web - JSP
Java Web - JSP
Luis Miguel De Bello
 
Módulo 7–Programación Web con Java.pdf
Módulo 7–Programación Web con Java.pdfMódulo 7–Programación Web con Java.pdf
Módulo 7–Programación Web con Java.pdf
tripfrap
 
Introducción a Sql
Introducción a SqlIntroducción a Sql
Introducción a Sql
alexmerono
 
Introduction to css & its attributes with syntax
Introduction to css & its attributes with syntaxIntroduction to css & its attributes with syntax
Introduction to css & its attributes with syntax
priyadharshini murugan
 
Dom JavaScript
Dom JavaScriptDom JavaScript
Dom JavaScript
Jorge García C.
 
ReactJS presentation.pptx
ReactJS presentation.pptxReactJS presentation.pptx
ReactJS presentation.pptx
DivyanshGupta922023
 

La actualidad más candente (20)

Bootstrap
BootstrapBootstrap
Bootstrap
 
Analisis lexico automatas i
Analisis lexico automatas iAnalisis lexico automatas i
Analisis lexico automatas i
 
Monitoreo sql server
Monitoreo sql serverMonitoreo sql server
Monitoreo sql server
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
XSLT
XSLTXSLT
XSLT
 
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datosNuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
 
DOM HTML Javascript
DOM HTML JavascriptDOM HTML Javascript
DOM HTML Javascript
 
Form Validation in JavaScript
Form Validation in JavaScriptForm Validation in JavaScript
Form Validation in JavaScript
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
 
PHP - Introduction to PHP AJAX
PHP -  Introduction to PHP AJAXPHP -  Introduction to PHP AJAX
PHP - Introduction to PHP AJAX
 
php
phpphp
php
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
How to implement internationalization (i18n) in angular application(multiple ...
How to implement internationalization (i18n) in angular application(multiple ...How to implement internationalization (i18n) in angular application(multiple ...
How to implement internationalization (i18n) in angular application(multiple ...
 
Lab #2: Introduction to Javascript
Lab #2: Introduction to JavascriptLab #2: Introduction to Javascript
Lab #2: Introduction to Javascript
 
Java Web - JSP
Java Web - JSPJava Web - JSP
Java Web - JSP
 
Módulo 7–Programación Web con Java.pdf
Módulo 7–Programación Web con Java.pdfMódulo 7–Programación Web con Java.pdf
Módulo 7–Programación Web con Java.pdf
 
Introducción a Sql
Introducción a SqlIntroducción a Sql
Introducción a Sql
 
Introduction to css & its attributes with syntax
Introduction to css & its attributes with syntaxIntroduction to css & its attributes with syntax
Introduction to css & its attributes with syntax
 
Dom JavaScript
Dom JavaScriptDom JavaScript
Dom JavaScript
 
ReactJS presentation.pptx
ReactJS presentation.pptxReactJS presentation.pptx
ReactJS presentation.pptx
 

Similar a Java Web - Servlet

Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en Java
Eudris Cabrera
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con JavaEudris Cabrera
 
[ES] Introdución al desarrollo de aplicaciones web en java
[ES] Introdución al desarrollo de aplicaciones  web en java[ES] Introdución al desarrollo de aplicaciones  web en java
[ES] Introdución al desarrollo de aplicaciones web en java
Eudris Cabrera
 
20001215 Programación de Servlets y WML
20001215   Programación de Servlets y WML20001215   Programación de Servlets y WML
20001215 Programación de Servlets y WML
Santiago Márquez Solís
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
Iker Canarias
 
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)Robert Rayco Quiroz
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web javaCésar Ocampo
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
Juan Carlos Rubio Pineda
 
Programación en Internet
Programación en InternetProgramación en Internet
Programación en Internet
Fernando Solis
 
Servlet
ServletServlet
Servlet
spcsliki62
 
Manual programacion - java - jsp & xml
Manual   programacion - java - jsp & xmlManual   programacion - java - jsp & xml
Manual programacion - java - jsp & xmlgilhorak
 
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado   1 IntroduccióN Al Desarrollo WebCurso Java Avanzado   1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Emilio Aviles Avila
 
[ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition [ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition
Eudris Cabrera
 
componentes de jsp
componentes de jsp componentes de jsp
componentes de jsp Angie2331
 
CURSO-JEE-Parte4a-Servlets-Serv.App y estructura de una app. Web.pptx
CURSO-JEE-Parte4a-Servlets-Serv.App y estructura de una app. Web.pptxCURSO-JEE-Parte4a-Servlets-Serv.App y estructura de una app. Web.pptx
CURSO-JEE-Parte4a-Servlets-Serv.App y estructura de una app. Web.pptx
ssuser7222d8
 
Curso: Programación Web con Tecnología Java
Curso:  	Programación Web con Tecnología JavaCurso:  	Programación Web con Tecnología Java
Curso: Programación Web con Tecnología Java
alvaro alcocer sotil
 

Similar a Java Web - Servlet (20)

Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en Java
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java
 
[ES] Introdución al desarrollo de aplicaciones web en java
[ES] Introdución al desarrollo de aplicaciones  web en java[ES] Introdución al desarrollo de aplicaciones  web en java
[ES] Introdución al desarrollo de aplicaciones web en java
 
Eclipse
EclipseEclipse
Eclipse
 
20001215 Programación de Servlets y WML
20001215   Programación de Servlets y WML20001215   Programación de Servlets y WML
20001215 Programación de Servlets y WML
 
SERVLET BASICS
SERVLET BASICSSERVLET BASICS
SERVLET BASICS
 
Resumen jee
Resumen jeeResumen jee
Resumen jee
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
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)
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web java
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Programación en Internet
Programación en InternetProgramación en Internet
Programación en Internet
 
Servlet
ServletServlet
Servlet
 
Manual programacion - java - jsp & xml
Manual   programacion - java - jsp & xmlManual   programacion - java - jsp & xml
Manual programacion - java - jsp & xml
 
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado   1 IntroduccióN Al Desarrollo WebCurso Java Avanzado   1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
 
[ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition [ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition
 
Java servlet
Java servletJava servlet
Java servlet
 
componentes de jsp
componentes de jsp componentes de jsp
componentes de jsp
 
CURSO-JEE-Parte4a-Servlets-Serv.App y estructura de una app. Web.pptx
CURSO-JEE-Parte4a-Servlets-Serv.App y estructura de una app. Web.pptxCURSO-JEE-Parte4a-Servlets-Serv.App y estructura de una app. Web.pptx
CURSO-JEE-Parte4a-Servlets-Serv.App y estructura de una app. Web.pptx
 
Curso: Programación Web con Tecnología Java
Curso:  	Programación Web con Tecnología JavaCurso:  	Programación Web con Tecnología Java
Curso: Programación Web con Tecnología Java
 

Más de Luis Miguel De Bello

Java Web Services - REST
Java Web Services - RESTJava Web Services - REST
Java Web Services - REST
Luis Miguel De Bello
 
Java Web Services - SOAP Temas Adicionales
Java Web Services - SOAP Temas AdicionalesJava Web Services - SOAP Temas Adicionales
Java Web Services - SOAP Temas Adicionales
Luis Miguel De Bello
 
Java Web Services - SOAP Binding
Java Web Services - SOAP BindingJava Web Services - SOAP Binding
Java Web Services - SOAP Binding
Luis Miguel De Bello
 
Java Web Services - Introduccion
Java Web Services - IntroduccionJava Web Services - Introduccion
Java Web Services - Introduccion
Luis Miguel De Bello
 
Java Web - JSF
Java Web - JSFJava Web - JSF
Java Web - JSF
Luis Miguel De Bello
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
Luis Miguel De Bello
 
Base de datos - Clase 2
Base de datos - Clase 2Base de datos - Clase 2
Base de datos - Clase 2
Luis Miguel De Bello
 
Base de datos - Clase 3
Base de datos - Clase 3Base de datos - Clase 3
Base de datos - Clase 3
Luis Miguel De Bello
 
Base de datos - Clase 1
Base de datos - Clase 1Base de datos - Clase 1
Base de datos - Clase 1
Luis Miguel De Bello
 
Base de datos - Clase 4
Base de datos - Clase 4Base de datos - Clase 4
Base de datos - Clase 4
Luis Miguel De Bello
 
Java Web - Session
Java Web - SessionJava Web - Session
Java Web - Session
Luis Miguel De Bello
 
Java Web - Introduccion
Java Web - IntroduccionJava Web - Introduccion
Java Web - Introduccion
Luis Miguel De Bello
 
Sockets TCP
Sockets TCPSockets TCP
Sockets UDP
Sockets UDPSockets UDP
Thread 02
Thread 02Thread 02
Thread 01
Thread 01Thread 01
Log4J
Log4JLog4J
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
Luis Miguel De Bello
 
Best Practices
Best PracticesBest Practices
Best Practices
Luis Miguel De Bello
 

Más de Luis Miguel De Bello (19)

Java Web Services - REST
Java Web Services - RESTJava Web Services - REST
Java Web Services - REST
 
Java Web Services - SOAP Temas Adicionales
Java Web Services - SOAP Temas AdicionalesJava Web Services - SOAP Temas Adicionales
Java Web Services - SOAP Temas Adicionales
 
Java Web Services - SOAP Binding
Java Web Services - SOAP BindingJava Web Services - SOAP Binding
Java Web Services - SOAP Binding
 
Java Web Services - Introduccion
Java Web Services - IntroduccionJava Web Services - Introduccion
Java Web Services - Introduccion
 
Java Web - JSF
Java Web - JSFJava Web - JSF
Java Web - JSF
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
 
Base de datos - Clase 2
Base de datos - Clase 2Base de datos - Clase 2
Base de datos - Clase 2
 
Base de datos - Clase 3
Base de datos - Clase 3Base de datos - Clase 3
Base de datos - Clase 3
 
Base de datos - Clase 1
Base de datos - Clase 1Base de datos - Clase 1
Base de datos - Clase 1
 
Base de datos - Clase 4
Base de datos - Clase 4Base de datos - Clase 4
Base de datos - Clase 4
 
Java Web - Session
Java Web - SessionJava Web - Session
Java Web - Session
 
Java Web - Introduccion
Java Web - IntroduccionJava Web - Introduccion
Java Web - Introduccion
 
Sockets TCP
Sockets TCPSockets TCP
Sockets TCP
 
Sockets UDP
Sockets UDPSockets UDP
Sockets UDP
 
Thread 02
Thread 02Thread 02
Thread 02
 
Thread 01
Thread 01Thread 01
Thread 01
 
Log4J
Log4JLog4J
Log4J
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
 
Best Practices
Best PracticesBest Practices
Best Practices
 

Último

Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 

Último (6)

Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 

Java Web - Servlet

  • 2. ¿Que es CGI? Java Web ▪ CGI = Common Gateway Interface. ▪ Los CGIs fueron una de las primeras tecnologías utilizadas para el proceso de datos en el servidor. ▪ Son dependientes de la plataforma y difíciles de integrar en aplicaciones de gran envergadura ya que presentan problemas de escalabilidad.
  • 3. ¿Que es un Servlet? Java Web ▪ Es parte de la tecnología Java y pertenece a la Edición Empresarial (J2EE). ▪ Es una unidad de funcionalidad que se ejecuta del lado del servidor, y genera resultados que son enviados al cliente. ▪ Debe ser desplegado dentro de un Servlet Container (También llamado Web Container) para su correcto funcionamiento.
  • 4. CGI Vs Servlet Java Web Desventajas CGI: - Mientras mas clientes tenemos, mas se incrementa el tiempo de respuesta. - Para cada request se crea un proceso. - El programa CGI es dependiente de la plataforma. Ventajas Servlet: - Mejor performance: Cada request crea un hilo y no un proceso. - Portabilidad: Dado que se usa Java el código es multiplataforma. - Robustez: Servlets son manejados por la JVM, por ende los temas de memoria son manejados automáticamente. - Seguridad: Tiene toda la capa de seguridad de Java.
  • 5. Arquitectura de HTTP I Java Web
  • 6. Arquitectura de HTTP II Java Web El Web Client - Es el consumidor principal de la arquitectura. - Representa a un browser realizando requests (pedidos) al servidor, y recibiendo responses (respuestas). El Web Server - Es el servidor que provee servicios Web. - Recibe pedidos de los clientes, y les brinda respuestas. - En su carácter mas básico, se encarga de servir páginas según la demanda. - Contiene al Servlet Container
  • 7. ¿Que es el Servlet Container? Java Web ▪ El Servlet Container es el componente encargado de la creación, acceso y destrucción de los Servlets, controla su ciclo de vida. ▪ El Web Server trabaja en conjunto con el Servlet Container para ejecutar los Servlets y generar contenido dinámico.
  • 8. Tomcat como Servlet Container Java Web ▪ El Tomcat es uno de los Servlet Container mas utilizados. ▪ Si bien es también un WebServer, no se recomienda su uso en producción. ▪ Su uso como WebServer debería ser exclusivamente para desarrollo y testing. ▪ Es común instalarlo sobre el Apache WebServer.
  • 9. Web.xml Java Web Este archivo es conocido como el "Descriptor de despliegue" y contiene la información necesaria para configurar la aplicación. - <web-app>: Representa la aplicación. - <servlet>: Es un subelemento dentro de <web-app> y representa un Servlet. - <servlet-name>: Es un subelemento dentro de <servlet> representa el nombre del Servlet. - <servlet-class>: Es un subelemento dentro de <servlet> representa la clase del Servlet. - <servlet-mapping>: Es un subelemento dentro de <web-app>. Se usa para mapear el Servlet. - <url-pattern>: Es un subelemento dentro de <servlet-mapping>. Es el patrón que se usa del lado cliente para invocar ese Servlet. Podemos definir varios url-pattern para el mismo servlet- mapping. Los url.pattern son case sensitive.
  • 10. Ambiente de despliegue Java Web La carpeta webapps - El Servlet Container puede lidiar con mas de una aplicación. - La carpeta webapps contiene las distintas aplicaciones Web que podrán utilizarse, cada una de ellas en una carpeta distinta - Es la carpeta de mayor nivel en la jerarquía dentro del Servlet Container La carpeta WEB-INF - Representa el corazón de la aplicación Web en cuanto a las reglas de negocio - Contiene el archivo de configuración web.xml - Contiene el directorio correspondiente a las clases La carpeta classes - Deberá contener todos los archivos .class - Cada clase compilada deberá estar ubicada en el directorio correspondiente al paquete que la contiene La carpeta lib - Deberán estar ubicados todas las librerías que se utilizan en el proyecto, es decir los archivos .jar
  • 11. Archivos .war (Web Archive) Java Web - Deberá contener todos los Web Components necesarios de la aplicación. - Entre ellos se incluyen archivos de texto, imágenes y archivos de audio, como también las clases compiladas necesarias para su correcta ejecución. - La ventaja que tiene es que resulta mas fácil desplegar una aplicación ya que se necesita de un único archivo. - Se puede ver como la versión Web del archivo “.jar”. - La aplicación “MyApp” podría construirse dentro de un archivo .war con todo su contenido, y copiarse al directorio webapps.
  • 12. Request Dispatcher Java Web Un servlet/JSP puede invocar de modo directo a un recurso de la web. La idea es poder reenviar la petición (request) a dicho recurso (HTML, Servlet, JSP). Para hacer esto necesitamos un RequestDispatcher, que es un referencia que encapsula el recurso. El RequestDispatcher provee dos métodos: - include: Donde incluimos otro recurso en nuestra respuesta. - forward: Donde se re-direcciona la petición.
  • 16. Método sendRedirect Java Web El método sendRedirect() permite enviar el response a un recurso distinto, esto realmente hace que el browser cree un nuevo request para atender este pedido, este método nos permite usar URL internas al server o externas. O sea la URL que se ve en el browser es la nueva.
  • 17. Atributos Java Web Los atributos son objetos que son usados para compartir informacion en la Web App, los atributos puede estar definidos a distintos niveles (Scope) - Application Scope: Usamos el objeto ServletContext. - Session Scope: Usamos el objeto HttpSession. - Request Scope: Usamos el objeto ServletRequest.