SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
DESARROLLO WEB CON JAVA
Introducción: Servlets
Autor: Jon Vadillo
www.jonvadillo.com
Metodología
■ Aprendizaje continuo
■ Learn by doing
■ Paso a paso
■ Código en Github
■ Construye aplicaciones reales
■ Fundamentos básicos y buenas prácticas
El camino
■ Fundamentos básicos de una aplicación web.
■ Tomcat
■ Maven
■ Servlet
■ Flujo de peticiones de una aplicación web
Apache Netbeans
https://netbeans.apache.org/
Instalación
■ Descargar Apache Netbeans
■ Descomprimir
■ Ejecutar:
■ Instalar Plug-ins
Herramienta de software para la
gestión y construcción de proyectos
Java
Maven
Maven
■ Está basado en POM (Project Object Model). Cada proyecto
tiene la información para su ciclo de vida en el descriptor
xml (por defecto el fichero pom.xml).
■ Proporciona funcionalidades desde la compilación hasta la
distribución, despliegue y documentación de los proyectos
<project
<!-- INFORMACIÓN DEL PROYECTO -->
<groupId>com.jvadillo</groupId>
<artifactId>HelloWebProject</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>HelloWebProject</name>
<!-- dependencias -->
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
Estructura de carpetas
Plugins
■ Ir a Tools > Plugins > Settings
■ Activar la opción Netbeans 8.2 Plugin Portal
■ Ir a Available Plugins Tab y pulsar en Check for
Newest
■ Buscar “web” o “EE” y seleccionar “Install box for
Java EE”
■ Pulsar “Install” y reiniciar el IDE
Tomcat es un servidor de aplicaciones
contenedor web con soporte de
servlets y JSPs.
Tomcat
Instalar Tomcat
1. Ir a https://tomcat.apache.org/download-90.cgi
2. Descargar el archivo de 32/64 bit para Windows del Core.
3. Descomprimir (p.ej. En “C:/tomact”)
4. Ir a Variables de Entorno y añadir CATALINA_HOME (seleccionar el directorio
donde se ha descomprimido) y añadir %CATALINA_PATH%bin a la variable
del sistema Path.
https://www.youtube.com/watch?v=EdoyzEdseHk
https://confluence.atlassian.com/doc/setting-the-java_home-variable-in-windows-8895.htm
Instalar Tomcat
5. En caso de no haber añadido previamente la variable de entorno
JAVA_HOME, añadirla apuntando al JDK o JRE.
6. En el directorio bin de Apache Tomcat ejecutar el comando startup.
7. Comprobación: http://localhost:8080/
8. Añadir usuario
https://www.youtube.com/watch?v=EdoyzEdseHk
https://confluence.atlassian.com/doc/setting-the-java_home-variable-in-windows-8895.htm
https://tutobasico.com/instalar-tomcat-windows/
Agregar Tomcat a Netbeans
1. En NetBeans, da click al menú Tools>Servers
2. En el cuadro de dialogo, da click en Add Server.
3. Selecciona Apache Tomcat y pulsa siguiente
4. Pulsa el botón Browse y selecciona el directorio donde colocaste los archivos
de Tomcat.
5. 6.- Coloca un usuario y una contraseña (pueden ser las que tu prefieras, al
correr una aplicación tal vez te los pida). Acepta los cambios. De preferencia
cambia el puerto del nuevo Tomcat por el 8084.
https://videlcloud.wordpress.com/2018/04/06/agrega-el-
servidor-tomcat-9-a-netbeans/
Nuestra primera aplicación web JAVA con Maven y
Tomcat
Hands on!
https://github.com/jvadillo/01-servlet-hello-world
Ficheros importantes
■ HelloServlet
■ pom.xml
■ web.xml (opcional si utilizamos anotaciones)
¿Qué componentes toman parte?
■ Cliente web (p.ej. Firefox, Chrome, …)
■ Web Server (p.ej. Apache Tomcat)
■ Web Container (Servlet Container)
■ Nuestra aplicación web (conjunto de Servlets y
otros componentes)
Un Servlet es una clase JAVA capaz de
responder a solicitudes HTTP
¿Qué es un Servlet?
Servlet
■ Los paquetes javax.servlet and javax.servlet.http contienen
interfaces and clases que nos permiten implementar Servlets.
■ La clase HttpServlet proporciona métodos, como doGet y doPost,
para gestionar los servicios HTTP.
@WebServlet(name = "HelloServlet", urlPatterns = {"/HelloServlet"})
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
//CODIGO
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
//CODIGO
}
}
}
Servlet Workflow
Cliente Web Server
Servlet Container
Servlet
1. El cliente realiza una
petición HTTP al servidor
2. El servidor web delega
A un el contenedor.
3. El contenedor crea las objetos
HTTPServletRequest y HTTPResponse
y ejecuta un Servlet.
4. El Servlet se ejecuta y
genera una respuesta
5. El servidor envía la
respuesta al cliente
Ciclo de vida de un Servlet
Inicialización
Init()
service() Destrucción
doPut()
1. Al arrancar el servidor
web, el contenedor crea una
instancia de cada Servlet y
se invoca el método init() de
cada uno.
4. Cuando se apaga el contenedor
de Servlets, elimina todas las
instancias de Servlets creadas y
llama a su método destroy()
2. Por cada petición que recibe el
servidor web, crea un hilo y llama
al método service() del Servlet
correspondiente
3. En función de la
petición recibida (GET,
POST,…), invoca el
método correspondiente.
doPost() doDelete()doGet()
…
Creada por el Servlet Container, proporciona información
sobre la petición HTTP.
El objeto Request
//GET: http://miservidor.com?nombre=Pedro
request.getParameter("nombre"); //Pedro
El objeto Request
Contiene toda la
información que será
devuelta al cliente.
El objeto Response
try (PrintWriter out = response.getWriter()) {
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet HelloServlet</title>")
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello World</h1>");
out.println("</body>");
out.println("</html>");
}
Escribe una aplicación web que almacene los parámetros de la
siguiente url en un objeto (deberás crear una clase JAVA llamada
Persona) y muestre una página con los datos del objeto creado.
http://localhost/mi-aplicación?nombre=Telmo&edad=24
Hands on!
Escribe una aplicación web que contenga dos páginas. La primera
mostrará un formulario para introducir los valores “Nombre” y “Edad” y
la segunda mostrará los valores enviados (deberá almacenar los valores
recibidos un objeto (deberás crear una clase JAVA llamada Persona.
Hands on!
Sources
■ Apache Netbeans: https://netbeans.apache.org/
■ Oracle oficial documentation: https://docs.oracle.com
■ Apache Maven Project: https://maven.apache.org

Más contenido relacionado

La actualidad más candente

Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programaciónMario Garcia-Valdez
 
Apache, getting the best version
Apache, getting the best versionApache, getting the best version
Apache, getting the best versionIvan Ortega
 
Directorio vitual
Directorio vitualDirectorio vitual
Directorio vitualmomum
 
Nodejs.introduccion
Nodejs.introduccionNodejs.introduccion
Nodejs.introduccionkillfill
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJSBEEVA_es
 
Instalar Docker Desktop y Kubernetes en Windows 10
Instalar Docker Desktop y Kubernetes en Windows 10Instalar Docker Desktop y Kubernetes en Windows 10
Instalar Docker Desktop y Kubernetes en Windows 10Moisés Elías Araya
 
Servidor ubuntu(linux)
Servidor ubuntu(linux)Servidor ubuntu(linux)
Servidor ubuntu(linux)simeon
 
Sesion Nº 03 Tecnologias Web I Instalación Y Configuración Del Servidor A...
Sesion Nº 03   Tecnologias Web I   Instalación Y Configuración Del Servidor A...Sesion Nº 03   Tecnologias Web I   Instalación Y Configuración Del Servidor A...
Sesion Nº 03 Tecnologias Web I Instalación Y Configuración Del Servidor A...Edgar A. Cruz Huaman
 
Como instalar tomcat_ubuntu
Como instalar tomcat_ubuntuComo instalar tomcat_ubuntu
Como instalar tomcat_ubuntubetosix1
 
Instalacion basica ELK (elasticsearch) Windows
Instalacion basica ELK (elasticsearch) WindowsInstalacion basica ELK (elasticsearch) Windows
Instalacion basica ELK (elasticsearch) WindowsMoisés Elías Araya
 
Xampp+Wordpress
Xampp+WordpressXampp+Wordpress
Xampp+WordpressAula108
 

La actualidad más candente (16)

Tomcat yant
Tomcat yantTomcat yant
Tomcat yant
 
Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programación
 
Apache, getting the best version
Apache, getting the best versionApache, getting the best version
Apache, getting the best version
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 
Directorio vitual
Directorio vitualDirectorio vitual
Directorio vitual
 
Nodejs.introduccion
Nodejs.introduccionNodejs.introduccion
Nodejs.introduccion
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Instalar Docker Desktop y Kubernetes en Windows 10
Instalar Docker Desktop y Kubernetes en Windows 10Instalar Docker Desktop y Kubernetes en Windows 10
Instalar Docker Desktop y Kubernetes en Windows 10
 
php
phpphp
php
 
Apache
Apache Apache
Apache
 
Servidor ubuntu(linux)
Servidor ubuntu(linux)Servidor ubuntu(linux)
Servidor ubuntu(linux)
 
Sesion Nº 03 Tecnologias Web I Instalación Y Configuración Del Servidor A...
Sesion Nº 03   Tecnologias Web I   Instalación Y Configuración Del Servidor A...Sesion Nº 03   Tecnologias Web I   Instalación Y Configuración Del Servidor A...
Sesion Nº 03 Tecnologias Web I Instalación Y Configuración Del Servidor A...
 
Como instalar tomcat_ubuntu
Como instalar tomcat_ubuntuComo instalar tomcat_ubuntu
Como instalar tomcat_ubuntu
 
Instalacion basica ELK (elasticsearch) Windows
Instalacion basica ELK (elasticsearch) WindowsInstalacion basica ELK (elasticsearch) Windows
Instalacion basica ELK (elasticsearch) Windows
 
Tomcat y Jboss
Tomcat y JbossTomcat y Jboss
Tomcat y Jboss
 
Xampp+Wordpress
Xampp+WordpressXampp+Wordpress
Xampp+Wordpress
 

Similar a Introducción a Servlets con Java

Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a TomcatIker Canarias
 
Instalación de Tomcat 7 en Linux y Windows
Instalación de Tomcat 7 en Linux y WindowsInstalación de Tomcat 7 en Linux y Windows
Instalación de Tomcat 7 en Linux y Windowspablolp
 
[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
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web javaCésar Ocampo
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicionFlashnet S.A
 
Servicio apache gnu linux-centos ::: http://leymebamba.com
Servicio apache  gnu linux-centos  ::: http://leymebamba.comServicio apache  gnu linux-centos  ::: http://leymebamba.com
Servicio apache gnu linux-centos ::: http://leymebamba.com{|::::::. ELDAVAN .:::::::|}
 
Introducción a Servidor HTTP Apache
Introducción a Servidor HTTP ApacheIntroducción a Servidor HTTP Apache
Introducción a Servidor HTTP ApacheIker Canarias
 
Sistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebSistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebTensor
 
Clase17(introduccion a la web)
Clase17(introduccion a la web)Clase17(introduccion a la web)
Clase17(introduccion a la web)Tensor
 
Apache Tomcat 8: integración con Apache Server (con mod_jk)
Apache Tomcat 8: integración con Apache Server (con mod_jk)Apache Tomcat 8: integración con Apache Server (con mod_jk)
Apache Tomcat 8: integración con Apache Server (con mod_jk)pablozacrosuarez
 
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 JavaEudris Cabrera
 
Apache2 dia1
Apache2 dia1Apache2 dia1
Apache2 dia1lyonel_cc
 

Similar a Introducción a Servlets con Java (20)

Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
Servlet
ServletServlet
Servlet
 
Curso Java Avanzado 2 Servlets
Curso Java Avanzado   2 ServletsCurso Java Avanzado   2 Servlets
Curso Java Avanzado 2 Servlets
 
Tomcat
TomcatTomcat
Tomcat
 
Instalación de Tomcat 7 en Linux y Windows
Instalación de Tomcat 7 en Linux y WindowsInstalación de Tomcat 7 en Linux y Windows
Instalación de Tomcat 7 en Linux y Windows
 
Curso de php
Curso de phpCurso de php
Curso de php
 
Servidor web Apache
Servidor web ApacheServidor web Apache
Servidor web Apache
 
[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
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web java
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicion
 
Servicio apache gnu linux-centos ::: http://leymebamba.com
Servicio apache  gnu linux-centos  ::: http://leymebamba.comServicio apache  gnu linux-centos  ::: http://leymebamba.com
Servicio apache gnu linux-centos ::: http://leymebamba.com
 
Introducción a Servidor HTTP Apache
Introducción a Servidor HTTP ApacheIntroducción a Servidor HTTP Apache
Introducción a Servidor HTTP Apache
 
Sistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebSistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la Web
 
Clase17(introduccion a la web)
Clase17(introduccion a la web)Clase17(introduccion a la web)
Clase17(introduccion a la web)
 
Apache Tomcat 8: integración con Apache Server (con mod_jk)
Apache Tomcat 8: integración con Apache Server (con mod_jk)Apache Tomcat 8: integración con Apache Server (con mod_jk)
Apache Tomcat 8: integración con Apache Server (con mod_jk)
 
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
 
Apache2 dia1
Apache2 dia1Apache2 dia1
Apache2 dia1
 

Introducción a Servlets con Java

  • 1. DESARROLLO WEB CON JAVA Introducción: Servlets Autor: Jon Vadillo www.jonvadillo.com
  • 2. Metodología ■ Aprendizaje continuo ■ Learn by doing ■ Paso a paso ■ Código en Github ■ Construye aplicaciones reales ■ Fundamentos básicos y buenas prácticas
  • 3. El camino ■ Fundamentos básicos de una aplicación web. ■ Tomcat ■ Maven ■ Servlet ■ Flujo de peticiones de una aplicación web
  • 5. Instalación ■ Descargar Apache Netbeans ■ Descomprimir ■ Ejecutar: ■ Instalar Plug-ins
  • 6. Herramienta de software para la gestión y construcción de proyectos Java Maven
  • 7. Maven ■ Está basado en POM (Project Object Model). Cada proyecto tiene la información para su ciclo de vida en el descriptor xml (por defecto el fichero pom.xml). ■ Proporciona funcionalidades desde la compilación hasta la distribución, despliegue y documentación de los proyectos
  • 8. <project <!-- INFORMACIÓN DEL PROYECTO --> <groupId>com.jvadillo</groupId> <artifactId>HelloWebProject</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>HelloWebProject</name> <!-- dependencias --> <dependencies> <dependency> <groupId>javax</groupId> <artifactId>javaee-web-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> </dependencies> </project>
  • 9.
  • 11. Plugins ■ Ir a Tools > Plugins > Settings ■ Activar la opción Netbeans 8.2 Plugin Portal ■ Ir a Available Plugins Tab y pulsar en Check for Newest ■ Buscar “web” o “EE” y seleccionar “Install box for Java EE” ■ Pulsar “Install” y reiniciar el IDE
  • 12. Tomcat es un servidor de aplicaciones contenedor web con soporte de servlets y JSPs. Tomcat
  • 13. Instalar Tomcat 1. Ir a https://tomcat.apache.org/download-90.cgi 2. Descargar el archivo de 32/64 bit para Windows del Core. 3. Descomprimir (p.ej. En “C:/tomact”) 4. Ir a Variables de Entorno y añadir CATALINA_HOME (seleccionar el directorio donde se ha descomprimido) y añadir %CATALINA_PATH%bin a la variable del sistema Path. https://www.youtube.com/watch?v=EdoyzEdseHk https://confluence.atlassian.com/doc/setting-the-java_home-variable-in-windows-8895.htm
  • 14. Instalar Tomcat 5. En caso de no haber añadido previamente la variable de entorno JAVA_HOME, añadirla apuntando al JDK o JRE. 6. En el directorio bin de Apache Tomcat ejecutar el comando startup. 7. Comprobación: http://localhost:8080/ 8. Añadir usuario https://www.youtube.com/watch?v=EdoyzEdseHk https://confluence.atlassian.com/doc/setting-the-java_home-variable-in-windows-8895.htm https://tutobasico.com/instalar-tomcat-windows/
  • 15. Agregar Tomcat a Netbeans 1. En NetBeans, da click al menú Tools>Servers 2. En el cuadro de dialogo, da click en Add Server. 3. Selecciona Apache Tomcat y pulsa siguiente 4. Pulsa el botón Browse y selecciona el directorio donde colocaste los archivos de Tomcat. 5. 6.- Coloca un usuario y una contraseña (pueden ser las que tu prefieras, al correr una aplicación tal vez te los pida). Acepta los cambios. De preferencia cambia el puerto del nuevo Tomcat por el 8084. https://videlcloud.wordpress.com/2018/04/06/agrega-el- servidor-tomcat-9-a-netbeans/
  • 16. Nuestra primera aplicación web JAVA con Maven y Tomcat Hands on! https://github.com/jvadillo/01-servlet-hello-world
  • 17. Ficheros importantes ■ HelloServlet ■ pom.xml ■ web.xml (opcional si utilizamos anotaciones)
  • 18. ¿Qué componentes toman parte? ■ Cliente web (p.ej. Firefox, Chrome, …) ■ Web Server (p.ej. Apache Tomcat) ■ Web Container (Servlet Container) ■ Nuestra aplicación web (conjunto de Servlets y otros componentes)
  • 19. Un Servlet es una clase JAVA capaz de responder a solicitudes HTTP ¿Qué es un Servlet?
  • 20. Servlet ■ Los paquetes javax.servlet and javax.servlet.http contienen interfaces and clases que nos permiten implementar Servlets. ■ La clase HttpServlet proporciona métodos, como doGet y doPost, para gestionar los servicios HTTP.
  • 21. @WebServlet(name = "HelloServlet", urlPatterns = {"/HelloServlet"}) public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //CODIGO } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //CODIGO } } }
  • 22. Servlet Workflow Cliente Web Server Servlet Container Servlet 1. El cliente realiza una petición HTTP al servidor 2. El servidor web delega A un el contenedor. 3. El contenedor crea las objetos HTTPServletRequest y HTTPResponse y ejecuta un Servlet. 4. El Servlet se ejecuta y genera una respuesta 5. El servidor envía la respuesta al cliente
  • 23. Ciclo de vida de un Servlet Inicialización Init() service() Destrucción doPut() 1. Al arrancar el servidor web, el contenedor crea una instancia de cada Servlet y se invoca el método init() de cada uno. 4. Cuando se apaga el contenedor de Servlets, elimina todas las instancias de Servlets creadas y llama a su método destroy() 2. Por cada petición que recibe el servidor web, crea un hilo y llama al método service() del Servlet correspondiente 3. En función de la petición recibida (GET, POST,…), invoca el método correspondiente. doPost() doDelete()doGet() …
  • 24. Creada por el Servlet Container, proporciona información sobre la petición HTTP. El objeto Request //GET: http://miservidor.com?nombre=Pedro request.getParameter("nombre"); //Pedro
  • 26. Contiene toda la información que será devuelta al cliente. El objeto Response try (PrintWriter out = response.getWriter()) { out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<title>Servlet HelloServlet</title>") out.println("</head>"); out.println("<body>"); out.println("<h1>Hello World</h1>"); out.println("</body>"); out.println("</html>"); }
  • 27. Escribe una aplicación web que almacene los parámetros de la siguiente url en un objeto (deberás crear una clase JAVA llamada Persona) y muestre una página con los datos del objeto creado. http://localhost/mi-aplicación?nombre=Telmo&edad=24 Hands on!
  • 28. Escribe una aplicación web que contenga dos páginas. La primera mostrará un formulario para introducir los valores “Nombre” y “Edad” y la segunda mostrará los valores enviados (deberá almacenar los valores recibidos un objeto (deberás crear una clase JAVA llamada Persona. Hands on!
  • 29. Sources ■ Apache Netbeans: https://netbeans.apache.org/ ■ Oracle oficial documentation: https://docs.oracle.com ■ Apache Maven Project: https://maven.apache.org