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.xmlenWEB-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
Generatepara 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
