Desarrollo Web con Java (Servlets y JSP)

Capítulo 10: Desarrollo Web con Java (Servlets y JSP)

Compartir

En este capítulo, exploraremos el desarrollo web en Java utilizando Servlets y JSP (JavaServer Pages). Estas tecnologías son fundamentales para crear aplicaciones web dinámicas en el entorno Java. Aprenderás a construir páginas web interactivas y gestionar solicitudes de clientes.

10.1. Introducción a Servlets y JSP

Los Servlets son clases de Java que gestionan solicitudes y respuestas HTTP. Son la base para el desarrollo web en Java y permiten la creación de aplicaciones web dinámicas. Por otro lado, JSP es una tecnología que permite la creación de páginas web dinámicas utilizando código Java embebido en HTML.

10.2. Creación de un Servlet

Un Servlet es una clase Java que extiende HttpServlet y anotada con @WebServlet. Aquí hay un ejemplo básico:

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/EjemploServlet")
public class EjemploServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        response.getWriter().write("Hola desde el Servlet");
    }
}

10.3. Creación de una Página JSP

Una página JSP es un archivo con extensión .jsp que contiene código HTML y Java embebido. Aquí hay un ejemplo:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Ejemplo JSP</title>
</head>
<body>
    <h1><%= "Hola desde la página JSP" %></h1>
</body>
</html>

10.4. Comunicación entre Servlets y JSP

Los Servlets y las páginas JSP pueden comunicarse entre sí. Los Servlets pueden enviar datos a las JSP para mostrar en la página web. Aquí hay un ejemplo de cómo un Servlet envía datos a una página JSP:

request.setAttribute("mensaje", "Hola desde el Servlet");
request.getRequestDispatcher("pagina.jsp").forward(request, response);

Luego, en la página JSP, puedes acceder al atributo «mensaje» y mostrarlo en la página.

10.5. Ejercicios de Práctica

Ejercicio 10.5.1: Crear un Formulario de Registro

Desarrolla un Servlet y una página JSP para crear un formulario de registro de usuarios. Captura los datos del formulario en el Servlet y muestra un mensaje de confirmación en la página JSP.

Ejercicio 10.5.2: Crear una Lista de Elementos

Crea un Servlet y una página JSP que muestren una lista de elementos (por ejemplo, nombres) almacenados en una lista Java. Los elementos se deben mostrar dinámicamente en la página JSP.

Resumen del Capítulo

Este capítulo ha introducido el desarrollo web en Java utilizando Servlets y JSP. Hemos aprendido cómo crear Servlets y páginas JSP, así como cómo comunicar datos entre ellos. Los ejercicios proporcionados permiten a los lectores practicar y profundizar en su comprensión del desarrollo web en Java. Estas tecnologías son fundamentales para crear aplicaciones web dinámicas y escalables.

Respuesta ejercicio 10.5.1:

Para desarrollar un Servlet y una página JSP que creen un formulario de registro de usuarios, capturen los datos del formulario en el Servlet y muestren un mensaje de confirmación en la página JSP, sigue estos pasos:

Paso 1: Crear el Proyecto Web

  1. Crea un nuevo proyecto web en tu entorno de desarrollo Java EE, como Eclipse o NetBeans.

Paso 2: Crear un Servlet

2.1. Crea un Servlet llamado RegistroServlet que manejará la lógica del formulario de registro y la confirmación.

import java.io.IOException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/RegistroServlet")
public class RegistroServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // Capturar datos del formulario
        String nombre = request.getParameter("nombre");
        String correo = request.getParameter("correo");

        // Realizar alguna lógica de procesamiento aquí (por ejemplo, almacenar en una base de datos)

        // Enviar mensaje de confirmación a la página JSP
        request.setAttribute("mensaje", "Registro exitoso para " + nombre + " (" + correo + ")");
        request.getRequestDispatcher("confirmacion.jsp").forward(request, response);
    }
}

Paso 3: Crear una Página JSP

3.1. Crea una página JSP llamada registro.jsp que contendrá el formulario de registro.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Formulario de Registro</title>
</head>
<body>
    <h1>Formulario de Registro</h1>
    <form action="RegistroServlet" method="post">
        Nombre: <input type="text" name="nombre" required><br>
        Correo: <input type="email" name="correo" required><br>
        <input type="submit" value="Registrar">
    </form>
</body>
</html>

3.2. Crea una página JSP llamada confirmacion.jsp que mostrará el mensaje de confirmación.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Confirmación de Registro</title>
</head>
<body>
    <h1>Confirmación de Registro</h1>
    <p>${mensaje}</p>
</body>
</html>

Paso 4: Configuración del Despliegue

4.1. Asegúrate de que el Servlet y las páginas JSP estén configurados adecuadamente en el archivo web.xml o utilizando anotaciones si estás utilizando Java EE 6 o versiones posteriores.

Paso 5: Ejecución de la Aplicación

5.1. Ejecuta la aplicación en tu servidor web (por ejemplo, Apache Tomcat).

Resultado Esperado:

Al acceder a registro.jsp, los usuarios verán un formulario de registro donde pueden ingresar su nombre y correo. Cuando envíen el formulario, el Servlet RegistroServlet capturará los datos, realizará alguna lógica de procesamiento (por ejemplo, almacenamiento en una base de datos simulada) y luego redirigirá a la página JSP confirmacion.jsp, donde se mostrará un mensaje de confirmación.

Este ejercicio muestra cómo crear un formulario de registro de usuarios en Java utilizando Servlets y JSP. Puedes personalizar este ejemplo para incluir más campos en el formulario y lógica de procesamiento adicional.

Respuesta ejercicio 10.5.2:

Para crear un Servlet y una página JSP que muestren una lista de elementos (por ejemplo, nombres) almacenados en una lista Java y se muestren dinámicamente en la página JSP, sigue estos pasos:

Paso 1: Crear el Proyecto Web

  1. Crea un nuevo proyecto web en tu entorno de desarrollo Java EE, como Eclipse o NetBeans.

Paso 2: Crear un Servlet

2.1. Crea un Servlet llamado ListaServlet que manejará la lógica de la lista de elementos y la presentación en la página JSP.

import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/ListaServlet")
public class ListaServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // Crear una lista de nombres
        ArrayList<String> nombres = new ArrayList<>();
        nombres.add("Juan");
        nombres.add("María");
        nombres.add("Carlos");
        nombres.add("Ana");

        // Agregar la lista de nombres como atributo de solicitud
        request.setAttribute("nombres", nombres);

        // Redirigir a la página JSP
        request.getRequestDispatcher("lista.jsp").forward(request, response);
    }
}

Paso 3: Crear una Página JSP

3.1. Crea una página JSP llamada lista.jsp que mostrará dinámicamente los elementos de la lista.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Lista de Nombres</title>
</head>
<body>
    <h1>Lista de Nombres</h1>
    <ul>
        <c:forEach items="${nombres}" var="nombre">
            <li>${nombre}</li>
        </c:forEach>
    </ul>
</body>
</html>

Paso 4: Configuración del Despliegue

4.1. Asegúrate de que el Servlet y la página JSP estén configurados adecuadamente en el archivo web.xml o utilizando anotaciones si estás utilizando Java EE 6 o versiones posteriores.

Paso 5: Ejecución de la Aplicación

5.1. Ejecuta la aplicación en tu servidor web (por ejemplo, Apache Tomcat).

Resultado Esperado:

Al acceder a ListaServlet, los usuarios verán una lista de nombres que se muestra dinámicamente en la página JSP lista.jsp. Los nombres provienen de la lista Java definida en el Servlet y se presentan utilizando etiquetas JSTL (JavaServer Pages Standard Tag Library).

Este ejercicio muestra cómo crear una página web que muestra una lista de elementos dinámicamente en Java utilizando Servlets y JSP. Puedes personalizar este ejemplo para incluir más elementos en la lista y lógica de procesamiento adicional.


Compartir

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *