SEMANA 10

Desarrollo Web con JSP, Apache Tomcat y Spring Framework

📚 Temas Aprendidos y Definiciones

Apache Tomcat

Apache Tomcat es un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Implementa las especificaciones de los servlets y de JavaServer Pages (JSP) de Oracle Corporation. Su estructura incluye directorios específicos como bin (ejecutables), webapps (aplicaciones web), conf (configuración), y logs (registros).

Gestores de Dependencias

Maven es una herramienta de software libre para gestionar proyectos Java lanzada en 2002. Utiliza archivos XML para la configuración y permite gestionar dependencias, compilar código, empaquetarlo y manejar el ciclo de vida completo del proyecto. El archivo pom.xml es el núcleo de la configuración donde se define toda la información del proyecto.

JavaServer Pages (JSP)

JSP es un lenguaje script del lado del servidor que permite crear aplicaciones web dinámicas independientes de la plataforma. Los elementos principales incluyen:
  • Scriptlets: <% código %>
  • Declaraciones: <%! declaración %>
  • Expresiones: <%= expresión %>
  • Directivas: <%@ directiva %>

Spring Framework

Spring Framework es un robusto framework para el desarrollo de aplicaciones empresariales en Java. Sus características principales incluyen:
  • Inversión de Control (IoC): Cambio en el flujo de ejecución donde el framework controla la aplicación
  • Inyección de Dependencias (DI): Las dependencias son inyectadas automáticamente
  • Spring Container: Contenedor IoC que maneja el ciclo de vida de los objetos
  • Beans: Componentes manejados por Spring en forma de JavaBeans

Arquitectura MVC

El patrón Modelo-Vista-Controlador (MVC) separa el desarrollo en tres capas:
  • Modelo: Manejo de datos y lógica de negocio
  • Vista: Presentación e interfaz de usuario
  • Controlador: Lógica de control y coordinación

🔧 Ejercicios de Laboratorio

Ejercicio 1: Instalación del Entorno

Configuración completa del entorno de desarrollo:

  1. Instalación de OpenJDK desde la página oficial
  2. Configuración de variables de entorno JAVA_HOME y PATH
  3. Descarga e instalación de Apache Tomcat
  4. Verificación del funcionamiento con comandos java --version y javac --version

Ejercicio 2: Aplicación JSP Básica

Desarrollo de una página JSP que muestra la fecha actual:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <title>Ejemplo JSP</title> </head> <body> <h1>¡Hola desde JSP!</h1> <p>La fecha y hora actual es: <%= new java.util.Date() %></p> </body> </html>

Ejercicio 3: Calculadora de Factorial

Aplicación JSP que calcula el factorial de un número utilizando formularios y manejo de sesiones:

Características implementadas:
  • Formulario con método GET
  • Validación de entrada numérica
  • Cálculo matemático del factorial
  • Manejo de sesiones para contar ejecuciones
  • Control de errores con try-catch

Ejercicios Propuestos

Desarrollo de APIs REST con Spring:

  1. API de validación de estudiantes con ID y nota
  2. API de cálculo de promedios con múltiples notas
  3. API REST para consulta de base de datos (departamento, provincia, distrito)
  4. API REST completa con operaciones CRUD

📊 Resultados

Configuración del Entorno

Se logró la instalación exitosa de todos los componentes necesarios:

  • ✅ OpenJDK 19 configurado correctamente
  • ✅ Apache Tomcat 10 funcionando en puerto 8080
  • ✅ Variables de entorno JAVA_HOME y PATH configuradas
  • ✅ IntelliJ IDEA integrado con el proyecto

Aplicaciones JSP Desarrolladas

Se crearon aplicaciones funcionales que demuestran:

  • ✅ Uso correcto de sintaxis JSP
  • ✅ Manejo de formularios GET y POST
  • ✅ Procesamiento de datos del servidor
  • ✅ Gestión de sesiones web
  • ✅ Control de errores y validaciones

Comprensión Teórica

Se adquirió conocimiento sólido sobre:

  • ✅ Arquitectura de aplicaciones web con JSP
  • ✅ Principios del patrón MVC
  • ✅ Conceptos de IoC e inyección de dependencias
  • ✅ Gestión de proyectos con Maven

🧠 Reflexión Final

¿Qué Aprendí?

Durante esta semana de laboratorio, adquirí conocimientos fundamentales sobre el desarrollo web del lado del servidor con tecnologías Java. El aprendizaje más significativo fue comprender cómo las diferentes tecnologías se integran para formar un ecosistema completo de desarrollo web.

La instalación y configuración del entorno me enseñó la importancia de tener un ambiente de desarrollo bien estructurado. Aprender sobre Apache Tomcat me permitió entender cómo funciona un servidor de aplicaciones y cómo maneja las solicitudes HTTP.

El trabajo con JSP me mostró la evolución desde HTML estático hacia contenido dinámico, donde el servidor puede procesar lógica de negocio y generar respuestas personalizadas. La implementación del patrón MVC me ayudó a comprender la importancia de separar las responsabilidades en el desarrollo de software.

¿Cómo lo Hice?

Mi proceso de aprendizaje siguió una metodología práctica y estructurada:

  1. Preparación del entorno: Comencé instalando y configurando todas las herramientas necesarias, verificando cada paso antes de continuar.
  2. Estudio teórico: Revisé la documentación oficial de cada tecnología para comprender los conceptos fundamentales.
  3. Implementación práctica: Desarrollé los ejercicios paso a paso, probando cada funcionalidad antes de avanzar.
  4. Experimentación: Modifiqué el código para entender mejor el comportamiento de cada componente.
  5. Resolución de problemas: Cuando encontré errores, utilicé los logs y la documentación para encontrar soluciones.

Reflexión Metacognitiva

Este proceso de aprendizaje me ha permitido desarrollar no solo competencias técnicas, sino también habilidades metacognitivas importantes. He aprendido a aprender de manera más eficiente al combinar teoría y práctica de forma iterativa.

La autorregulación del aprendizaje fue clave: establecí objetivos claros para cada sesión, monitoreé mi progreso y ajusté mi estrategia cuando encontré dificultades. Por ejemplo, cuando tuve problemas con la configuración de Tomcat, cambié mi enfoque de seguir tutoriales a leer la documentación oficial.

He desarrollado una mentalidad de crecimiento al entender que los errores son oportunidades de aprendizaje. Cada error de configuración o bug en el código me enseñó algo nuevo sobre el funcionamiento interno de estas tecnologías.

La transferencia de conocimientos ha sido evidente: los conceptos de programación orientada a objetos que ya conocía se aplicaron naturalmente a Spring Framework, y mi experiencia previa con HTML/CSS facilitó el trabajo con JSP.

Finalmente, he mejorado mi capacidad de síntesis al integrar múltiples tecnologías (JDK, Tomcat, JSP, Spring) en un entendimiento coherente del desarrollo web empresarial con Java.

📚 Bibliografía

  • Documentación oficial de Apache Tomcat
    Apache Software Foundation. Apache Tomcat Documentation.
    URL: https://tomcat.apache.org/
  • Maven: The Complete Guide
    Apache Maven Project. Maven Documentation.
    URL: https://maven.apache.org/
  • Spring Framework Reference
    VMware, Inc. Spring Framework Documentation.
    URL: https://docs.spring.io/spring-framework/docs/current/reference/html/
  • Jakarta Server Pages Specification
    Eclipse Foundation. Jakarta Server Pages 3.0.
    URL: https://jakarta.ee/specifications/pages/3.0/
  • OpenJDK Documentation
    Oracle Corporation. OpenJDK Project.
    URL: https://openjdk.java.net/
  • Spring Boot Reference Guide
    VMware, Inc. Spring Boot Documentation.
    URL: https://spring.io/projects/spring-boot
  • Maven Repository
    Sonatype, Inc. MVN Repository.
    URL: https://mvnrepository.com/
  • Spring Initializr
    VMware, Inc. Spring Boot Project Generator.
    URL: https://start.spring.io/