¡Voy a crear una aplicación web! O sea, una aplicación que se puede ejecutar en cualquier plataforma, ya sea en la computadora, un celular o cualquier dispositivo que funcione con cualquier navegador. Para ejecutar una aplicación web necesitamos un servidor de aplicaciones que se encargará de mantener nuestra aplicación en funcionamiento.
Actualmente existen varios servidores de aplicaciones y lenguajes de programación que podemos utilizar para nuestra aplicación, así que vamos a crear una aplicación Java Web y nuestro servidor de aplicaciones será Tomcat.
¡Para desarrollar esta aplicación usaremos el IDE Eclipse que nos facilitará la vida durante el desarrollo! Si no tiene Eclipse, puede descargar la versión de Java EE, descomprimir el archivo .zip y ejecutar Eclipse:
¡Necesitamos crear un proyecto Java Web! pero ¿cómo hacemos esto en nuestro Eclipse?, ¡Simple! Vaya al menú "File > New > Dynamic Web Project":
Le ponemos un nombre al proyecto, en este caso he puesto miBiblioteca, porque será una aplicación que registrará y listará todos mis libros. Después de colocar el nombre, haga clic en "Next":
Esta ventana nos sirve para la configuración de construcción del proyecto.
Dejaremos esta configuración estándar, luego haga click en “Next” nuevamente:
Esta ventana nos sirve para las configuraciones del módulo, solo marcamos la opción "Generate web.xml deployment descriptor" para crear el archivo web.xml estándar que usaremos a continuación, finalmente damos clic en "Finish":
¡Observamos que nuestro proyecto fue creado! ¿Qué tenemos que hacer ahora? ¿Cómo podemos ejecutar nuestra aplicación?
Necesitamos, de alguna manera, configurar alguna clase para cumplir con las solicitudes de nuestra aplicación, entonces, ¿cómo podemos configurar esta clase?
Hay varias formas de configurar esta clase y en este post usaremos la API de Servlet de Java para resolver esto.
Descargue la biblioteca Servlet 3.0 la opción con el nombre "[servlet-3_0-final-jar_and_schema.zip" y descomprima el archivo. Ahora necesitamos agregar Servlet a nuestro proyecto, que es solo el archivo .jar.
Vayamos a Eclipse y observemos que hay una carpeta llamada lib dentro de la carpeta"WebContent/WEB-INF/". Copie el archivo .jar y colóquelo en esta carpeta:
Haga clic en el botón derecho en el archivo .jar y elija la opción "Build Path > Add to Build Path". Ahora vayamos a la carpeta "Java Resource" y observemos que nuestro .jar se ha agregado a nuestra lista de bibliotecas en el proyecto.
Cuando agregamos una biblioteca dentro de una carpeta de nuestro proyecto, como fue en este caso de "WebContent/WEB-INF/lib/", tenemos la ventaja de exportar nuestro proyecto junto con las dependencias para su funcionamiento, o sea, todas las bibliotecas necesarias para que nuestra aplicación funcione en cualquier lugar.
¡Ahora podemos configurar nuestro primer Servlet! Entonces, creemos una nueva clase que representará nuestro Servlet, llamémoslo MainServlet:
Para transformar una clase en un Servlet, necesitamos extender la clase HttpServlet:
Ahora necesitamos implementar el método que se encargará de recibir una solicitud a través de HTTP, que es doGET():
¡Ya creamos nuestro primer Servlet! ¿Ejecutamos nuestra aplicación? Haga clic en el botón superior del proyecto "Run as > 1 Run On Server"
¡Nos dimos cuenta de que ahora necesitamos configurar nuestro servidor de aplicaciones! Dentro del campo de "Select the server type:" Vemos la opción Tomcat, esta opción es la que vamos a usar y también elija en esta ventana siguiente haga clic en "Next">
Luego hagamos click en "Finish"
¡Ahora Tomcat está configurado! Puedes ver que se creó el proyecto Servers, que es precisamente el lugar donde Eclipse agregó nuestro Tomcat y también apareció una pestaña de Servers que indica que Tomcat está funcionando.
A demás de esto, verificamos en la pestaña console, veremos el log de Tomcat que muestra el momento en que se inició, si ocurrió algún problema o no:
Solo log de INFO, entonces, aparentemente, ¡todo está bien! Si hacemos clic sobre Tomcat en la view Servers, se abrirá el panel de configuración de nuestro servidor de aplicación:
Observamos que tenemos diversas opciones para configurar, por ello, las que nos interesa en este momento es precisamente el port name HTTP/1.1 que es justamente la puerta por la que Tomcat está tratando las solicitudes del protocolo HTTP, o sea, para acceder a nuestra aplicación a través de una URL del protocolo HTTP, ¡necesitará usar el puerto 8080!
¡Ahora podemos probar nuestra aplicación! Vamos al navegador, copiamos y obtenemos la siguiente URL:http://localhost:8080/miBiblioteca (En caso de que tengas otro nombre para tu proyecto, solo necesitas substituir la última parte de "miBiblioteca por el nombre que le pusiste y funcionaría") lo que significa que estamos accediendo a una URL vía HTTP en localhost (nuestra propia máquina) y en el puerto 8080. Finalmente, presiona Enter para hacer una llamada a la aplicación:
¿Error 404? ¡No encontré nada de nuestro proyecto! ¿Qué pasó? Además de crear un Servlet, necesitamos registrarlo en el archivo web.xml que es el archivo responsable de describir toda la información de implementación de deploy de nuestra aplicación. Así que registremos nuestro Servlet:
Observamos que tuvimos que utilizar la etiqueta de nombre servlet-name para para nombrar nuestro Servlet y una etiqueta servlet-class para especificar qué clase que representa este servlet que estamos registrando. También podemos ver que el nombre que necesitamos especificar es justamente el nombre completo de la clase, o sea, el nombre del package y despues de la clase.
Si probamos nuevamente nuestra aplicación no responderá con la misma URL, ¡porque no hemos definido que responderemos a esa URL! Para configurar la dirección que nuestro Servlet atenderá, simplemente agregue la etiqueta servlet-mapping que informa el nombre de nuestro Servlet y la URL que se recibirá, en este caso una barra inclinada ("/"):
Nuestro XML se quedaría así:
¿Vamos a probar nuestra aplicación de nuevo? Pero primero, agreguemos un mensaje para que se imprima al momento de ejecutar nuestro proyecto:
Haga click en el botón derecho encima del proyecto "Run as > 1 Run on Server", ahora que Tomcat ya se inició, Eclipse va a preguntar se deseamos reiniciarlo, ponemos la opción de reiniciar para garantizar que todas las modificaciones que hicimos funcionen. Ahora, probamos nuestra URL:http://localhost:8080/miBiblioteca
Página en blanco? vamos a verificar nuestra consola:
Nuestro sysout fue imprimido! Pero lo ideal seria imprimir ese mensaje en el navegador! Como podemos hacer eso? Observamos que recibimos dos parametros en el método doGet()
, HttpServletRequest req
y HttpServletResponse resp
:
Esto significa que podemos usar HttpServletResponse
para mandar un mensaje! y Haremos eso utilizando el método getWriter()
que devuelve un objeto del tipo PrintWriter
:
Ahora falta solo imprimir utilizando el método print()
:
Vamos a comprobar nuevamente! Haga click con el botón derecho encima de Tomcat y elija la opción "restart" para reiniciarlo, entonces intentamos nuevamente el link: http://localhost:8080/miBiblioteca
Conseguimos enviar un mensaje! A demás de imprimir un texto, también podemos enviar tags en HTML, solo informando que la respuesta será en HTML por medio del método setContentType()
, por ejemplo, para listar mis libros:
¡Excelente! ¡Ya podemos imprimir los mensajes que queramos en nuestro navegador! ¡Es incluso mejor usando HTML!
En este post aprendimos cómo crear una aplicación Java Web básica usando Eclipse para Java EE y una API Servlet de Java. Vimos cómo podemos crear un proyecto para Java Web y cómo podemos agregar bibliotecas Servlet al proyecto por medio del Build Path.
Además, aprendimos que para crear un Servlet, necesitamos entender la clase HttpServlet, implementar el método doGet()
y registrar nuestro servlet en el archivo web.xml que se encargará de describir toda la información de deploy de nuestra aplicación. Y por último, vimos cómo enviar una respuesta en texto o en un HTML cada vez que alguien realiza una solicitud a nuestra aplicación.
¿Qué te pareció la API de Servlet? ¿Quieres aprender más sobre los servlets? En Alura Latam tenemos una Formación Java, donde abordamos diferentes temas sobre Servlets y los principales fundamentos sobre programación de aplicaciones para Java Web!
Álex Felipe Victor Vieira
Alex es instructor y desarrollador y tiene experiencia en Java, Kotlin, Android. Creador de más de 40 cursos, como Kotlin, Flutter, Android, persistencia de datos, comunicación con Web API, personalización de pantalla, pruebas automatizadas, arquitectura App y Firebase. Es experto en Programación Orientada a Objetos, siempre con el objetivo de compartir las mejores prácticas y tendencias en el mercado de desarrollo de software. Trabajó durante 2 años como editor de contenidos en el blog de Alura y hoy sigue escribiendo artículos técnicos.
Traducido para Alura Latam por Luis Puig
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Puedes realizar el pago de tus planes en moneda local en los siguientes países:
País | |||||||
---|---|---|---|---|---|---|---|
Plan Semestral |
487.37
BOB |
69289.36
CLP |
307472.10
COP |
65.90
USD |
264.35
PEN |
1435.53
MXN |
2978.57
UYU |
Plan Anual |
738.82
BOB |
105038.04
CLP |
466107.17
COP |
99.90
USD |
400.74
PEN |
2176.17
MXN |
4515.32
UYU |
Acceso a todos
los cursos
Estudia las 24 horas,
dónde y cuándo quieras
Nuevos cursos
cada semana