Fundamentos de Servidores Web y Desarrollo con Java EE: Servlets y JSPs
Clasificado en Informática
Escrito el en español con un tamaño de 4,4 KB
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:
- Un servidor carga e inicializa el Servlet.
- Maneja las peticiones del cliente.
- 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 interfacesHttpServletRequest
yHttpServletResponse
, 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.