Servidores web y servlets/JSP en Java EE: fundamentos y ejemplos

InformáticaActualizado el 4,4 KB

Resumen

El documento explica qué son los servidores y las aplicaciones web, su arquitectura en tres capas (cliente, servidor web y base de datos) y el funcionamiento de las tecnologías de servidor en Java EE. Se detallan los Servlets, su ciclo de vida y los JSPs, con sus elementos principales, además del patrón MVC y la diferencia entre los métodos HTTP GET y POST.

Puntos clave

  • Una aplicación web se estructura en tres capas: cliente (navegador), servidor web y base de datos (BBDD).
  • Un Servlet es un programa Java que procesa peticiones HTTP y tiene un ciclo de vida de carga e inicialización, manejo de peticiones y destrucción.
  • Los Servlets se ejecutan dentro de un contenedor de Servlets, como Apache Tomcat, que recibe las peticiones y las redirige al Servlet correspondiente.
  • Un JSP genera contenido dinámico en HTML o XML mediante directivas, declaraciones, scriptlets, expresiones y acciones.
  • Los Servlets se centran en la lógica de negocio y los JSPs en la presentación.
  • Con GET los datos viajan en la URL y son visibles; con POST viajan en el cuerpo de la petición y son más adecuados para información sensible.

Ponte a prueba

Introducción a los Servidores y Aplicaciones Web

Un servidor web es un programa fundamental que pone en marcha la parte servidora para el protocolo HTTP. Por otro lado, una aplicación web consiste en una aplicación a la que se accede a través de un servidor web mediante Internet. Generalmente, una aplicación web se estructura en tres capas principales:

  • Cliente: El navegador web del usuario.
  • Servidor Web: Donde se ejecutan las tecnologías de servidor (como Servlets y JSPs en Java EE).
  • BBDD: La Base de Datos, que almacena la información.

Las tecnologías de servidor son aquellas utilizadas para desarrollar aplicaciones en el lado del servidor. El servidor web ejecuta la aplicación, la cual genera un código HTML. Posteriormente, el servidor toma ese código y lo envía al cliente a través del protocolo HTTP.

Tecnologías de Servidor en Java EE

En el ecosistema de Java EE, la tecnología de servidor predominante es la tecnología Servlet, cuyos elementos básicos son los Servlets y los JSPs.

Servlets: Componentes de Lógica de Negocio

Un Servlet es un programa escrito en Java que está diseñado para admitir y procesar peticiones a través del protocolo HTTP. Su ciclo de vida típico es el siguiente:

  1. Un servidor carga e inicializa el Servlet.
  2. Maneja las peticiones del cliente.
  3. El servidor destruye el Servlet cuando ya no es necesario.

Los Servlets se ejecutan dentro de un contenedor de Servlets, como Apache Tomcat (el que comúnmente utilizamos). Este contenedor permite la ejecución de Servlets, recibe peticiones de páginas y las redirecciona al Servlet correspondiente.

Los Servlets suelen derivar de las clases Servlet y HttpServlet. El paquete javax.servlet define el Servlet genérico, incluyendo clases como GenericServlet (que implementa la interfaz Servlet) e interfaces como RequestDispatcher (utilizada para llamar a un JSP, entre otras funciones).

El paquete javax.servlet.http contiene clases específicas para HTTP, como:

  • Cookie: Pequeños archivos de texto almacenados en el cliente que permiten al servidor identificarlo en sesiones posteriores.
  • HttpServlet: Permite el uso de las interfaces HttpServletRequest y HttpServletResponse, fundamentales para manejar las peticiones y respuestas HTTP.

JSPs: Generación de Contenido Dinámico

Un JSP (JavaServer Page) se utiliza para generar contenido dinámico en documentos HTML, XML, etc., a través del lenguaje Java. Los elementos principales de un JSP incluyen:

  • Directivas: Información general sobre el JSP.
  • Declaraciones Java: Bloques de código Java que se ejecutan una vez.
  • Scriptlets: Bloques de código Java que se ejecutan cada vez que se accede a la página.
  • Expresiones: Devuelven un valor que se inserta directamente en la página HTML de respuesta.
  • Acciones: Etiquetas XML que controlan el comportamiento del motor JSP.

Es importante destacar que los Servlets están enfocados principalmente a la funcionalidad (lógica de negocio), mientras que los JSPs se centran en la presentación (interfaz de usuario).

Modelo Vista-Controlador (MVC) y Métodos HTTP

En la programación web moderna, se utiliza ampliamente el patrón de diseño Modelo-Vista-Controlador (MVC). Este patrón separa la lógica de la aplicación de la lógica de la vista, mejorando la organización y mantenibilidad del código.

Los métodos HTTP GET y POST son fundamentales para enviar pares nombre-valor al servidor:

  • GET: Los datos se envían en la URL, lo cual puede ser un problema de seguridad en casos como el envío de usuario y contraseña, ya que serían visibles.
  • POST: Los datos se envían en el cuerpo de la petición HTTP, lo que los mantiene ocultos en la URL y es más adecuado para información sensible.

Descargar

PDF Word HTML

Preguntas frecuentes

¿Qué es un Servlet en Java EE?

Un Servlet es un programa escrito en Java diseñado para admitir y procesar peticiones a través del protocolo HTTP. Se ejecuta dentro de un contenedor de Servlets, como Apache Tomcat.

¿Cuál es la diferencia entre GET y POST?

GET envía los datos en la URL, por lo que son visibles, lo que es un problema para datos sensibles como contraseñas. POST envía los datos en el cuerpo de la petición HTTP, manteniéndolos ocultos en la URL.

¿Para qué se utiliza un JSP?

Un JSP (JavaServer Page) se utiliza para generar contenido dinámico en documentos HTML, XML, etc., a través del lenguaje Java.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Cuáles son las tres capas principales de una aplicación web según el documento?
2. ¿Qué contenedor se menciona como ejemplo para ejecutar Servlets?
3. ¿Qué fase NO forma parte del ciclo de vida de un Servlet según el documento?
4. ¿Qué elemento de un JSP se ejecuta una sola vez?
5. ¿Por qué POST es más adecuado para información sensible que GET?
6. ¿Qué clase del paquete javax.servlet.http se usa para manejar peticiones y respuestas HTTP?
7. ¿Qué patrón de diseño separa la lógica de la aplicación de la lógica de la vista?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.