En este módulo, aprenderás a desarrollar una aplicación web utilizando Java. Cubriremos los conceptos básicos de las aplicaciones web, la configuración de un entorno de desarrollo web, y la implementación de una aplicación web simple utilizando tecnologías populares como Servlets, JSP y Spring Boot.
Contenido
Introducción a las Aplicaciones Web
Las aplicaciones web son programas que se ejecutan en un servidor web y son accesibles a través de un navegador. A diferencia de las aplicaciones de escritorio, las aplicaciones web no requieren instalación en el dispositivo del usuario y pueden ser accedidas desde cualquier lugar con una conexión a Internet.
Conceptos Clave
- Cliente-Servidor: Modelo de comunicación donde el cliente (navegador) solicita recursos y el servidor responde con los recursos solicitados.
- HTTP: Protocolo de comunicación utilizado para la transferencia de datos en la web.
- Servlets: Componentes Java que responden a solicitudes HTTP.
- JSP (JavaServer Pages): Tecnología que permite la creación de contenido dinámico en páginas web utilizando Java.
- Spring Boot: Framework que simplifica el desarrollo de aplicaciones Java, incluyendo aplicaciones web.
Configuración del Entorno de Desarrollo
Para desarrollar aplicaciones web en Java, necesitas configurar tu entorno de desarrollo. A continuación, se detallan los pasos para configurar un entorno básico utilizando Eclipse y Apache Tomcat.
Requisitos
- Java Development Kit (JDK): Asegúrate de tener instalado el JDK.
- Eclipse IDE: Un entorno de desarrollo integrado popular para Java.
- Apache Tomcat: Un servidor web y contenedor de servlets.
Pasos
- Instalar JDK: Descarga e instala el JDK desde el sitio oficial de Oracle.
- Instalar Eclipse: Descarga e instala Eclipse IDE para desarrolladores Java.
- Configurar Apache Tomcat:
- Descarga Apache Tomcat desde su sitio oficial.
- Descomprime el archivo descargado en una ubicación de tu elección.
- En Eclipse, ve a
Window > Preferences > Server > Runtime Environments
. - Haz clic en
Add
, seleccionaApache Tomcat
, y proporciona la ruta de instalación.
Desarrollo de una Aplicación Web con Servlets y JSP
Creación de un Proyecto Web Dinámico
-
Crear un Proyecto Web Dinámico:
- En Eclipse, ve a
File > New > Dynamic Web Project
. - Proporciona un nombre para el proyecto y selecciona la versión de Tomcat.
- Haz clic en
Finish
.
- En Eclipse, ve a
-
Crear un Servlet:
- Haz clic derecho en el proyecto, selecciona
New > Servlet
. - Proporciona un nombre y un paquete para el servlet.
- Eclipse generará un archivo Java con el siguiente contenido básico:
- Haz clic derecho en el proyecto, selecciona
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/hello") public class HelloServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().append("Hello, World!"); } }
-
Configurar el archivo web.xml:
- Eclipse genera automáticamente el archivo
web.xml
enWEB-INF
. - Asegúrate de que el servlet esté mapeado correctamente.
- Eclipse genera automáticamente el archivo
-
Crear una Página JSP:
- Haz clic derecho en
WebContent
, seleccionaNew > JSP File
. - Proporciona un nombre para el archivo JSP, por ejemplo,
index.jsp
. - Agrega el siguiente contenido:
- Haz clic derecho en
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>My First JSP Page</title> </head> <body> <h1>Welcome to My First JSP Page</h1> <a href="hello">Say Hello</a> </body> </html>
- Ejecutar la Aplicación:
- Haz clic derecho en el proyecto, selecciona
Run As > Run on Server
. - Selecciona Apache Tomcat y haz clic en
Finish
. - La aplicación se desplegará y se abrirá en el navegador.
- Haz clic derecho en el proyecto, selecciona
Desarrollo de una Aplicación Web con Spring Boot
Spring Boot simplifica el desarrollo de aplicaciones web al proporcionar configuraciones predeterminadas y herramientas integradas.
Creación de un Proyecto Spring Boot
-
Crear un Proyecto Spring Boot:
- Ve a Spring Initializr.
- Configura el proyecto con las siguientes opciones:
- Project: Maven
- Language: Java
- Spring Boot: 2.5.4 (o la versión más reciente)
- Group: com.example
- Artifact: demo
- Dependencies: Spring Web
- Haz clic en
Generate
para descargar el proyecto.
-
Importar el Proyecto en Eclipse:
- Descomprime el archivo descargado.
- En Eclipse, ve a
File > Import > Existing Maven Projects
. - Selecciona la carpeta descomprimida y haz clic en
Finish
.
-
Crear un Controlador:
- En el paquete principal (
com.example.demo
), crea una clase llamadaHelloController
:
- En el paquete principal (
package com.example.demo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @GetMapping("/hello") public String sayHello() { return "Hello, World!"; } }
- Ejecutar la Aplicación:
- Haz clic derecho en la clase principal del proyecto (
DemoApplication.java
), seleccionaRun As > Spring Boot App
. - La aplicación se ejecutará en el puerto 8080 por defecto.
- Abre un navegador y navega a
http://localhost:8080/hello
.
- Haz clic derecho en la clase principal del proyecto (
Ejercicio Práctico
Descripción del Ejercicio
Desarrolla una aplicación web simple que permita a los usuarios ingresar su nombre y recibir un saludo personalizado.
Requisitos
- Formulario de Entrada: Una página JSP con un formulario que permita al usuario ingresar su nombre.
- Servlet: Un servlet que procese la solicitud y genere una respuesta con el saludo personalizado.
- Página de Respuesta: Una página JSP que muestre el saludo personalizado.
Solución
- Formulario de Entrada (index.jsp):
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Greeting Application</title> </head> <body> <h1>Enter Your Name</h1> <form action="greet" method="post"> <label for="name">Name:</label> <input type="text" id="name" name="name"> <input type="submit" value="Submit"> </form> </body> </html>
- Servlet (GreetingServlet.java):
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/greet") public class GreetingServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); request.setAttribute("name", name); request.getRequestDispatcher("greeting.jsp").forward(request, response); } }
- Página de Respuesta (greeting.jsp):
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Greeting</title> </head> <body> <h1>Hello, ${name}!</h1> </body> </html>
Ejecución
- Desplegar la Aplicación: Sigue los pasos anteriores para ejecutar la aplicación en Apache Tomcat.
- Probar la Aplicación: Abre un navegador y navega a
http://localhost:8080/tu-proyecto/index.jsp
. Ingresa un nombre y envía el formulario para ver el saludo personalizado.
Conclusión
En este módulo, has aprendido a desarrollar una aplicación web básica utilizando Java. Hemos cubierto tanto el desarrollo con Servlets y JSP como con Spring Boot. Ahora tienes las herramientas necesarias para crear aplicaciones web dinámicas y escalables.
En el siguiente módulo, exploraremos cómo desplegar aplicaciones en diferentes entornos, asegurando que estén listas para ser utilizadas por los usuarios finales.
Curso de Programación en Java
Módulo 1: Introducción a Java
- Introducción a Java
- Configuración del Entorno de Desarrollo
- Sintaxis y Estructura Básica
- Variables y Tipos de Datos
- Operadores
Módulo 2: Flujo de Control
Módulo 3: Programación Orientada a Objetos
- Introducción a la POO
- Clases y Objetos
- Métodos
- Constructores
- Herencia
- Polimorfismo
- Encapsulamiento
- Abstracción
Módulo 4: Programación Orientada a Objetos Avanzada
Módulo 5: Estructuras de Datos y Colecciones
Módulo 6: Manejo de Excepciones
- Introducción a las Excepciones
- Bloque Try-Catch
- Throw y Throws
- Excepciones Personalizadas
- Bloque Finally
Módulo 7: Entrada/Salida de Archivos
- Lectura de Archivos
- Escritura de Archivos
- Flujos de Archivos
- BufferedReader y BufferedWriter
- Serialización
Módulo 8: Multihilo y Concurrencia
- Introducción al Multihilo
- Creación de Hilos
- Ciclo de Vida de un Hilo
- Sincronización
- Utilidades de Concurrencia
Módulo 9: Redes
- Introducción a las Redes
- Sockets
- ServerSocket
- DatagramSocket y DatagramPacket
- URL y HttpURLConnection