Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de un servidor. Aunque los servlets pueden responder a cualquier tipo de solicitudes, estos son
utilizados comúnmente para extender las aplicaciones alojadas por servidores web, de tal manera
que pueden ser vistos como applets de Java que se ejecutan en servidores en vez de navegadores
web. Este tipo de servlets son la contraparte Java de otras tecnologías de contenido dinámico Web,
como PHP y ASP.NET.
La palabra servlet deriva de otra anterior, applet, que se refiere a pequeños programas que se
ejecutan en el contexto de un navegador web.
El uso más común de los servlets es generar páginas web de forma dinámica a partir de los
parámetros de la petición que envíe el navegador web.
Índice
• 1 Historia
• 2 Ciclo de vida
• 3 Clases y objetos necesarios
• 3.1 Interface HttpServletRequest
• 3.2 Interface HttpServletResponse
• 4 Beneficios de utilizar Servlets en lugar de CGI
• 5 Ejemplo
• 6 Véase también
• 7 Enlaces externos
Historia
La especificación original de Servlets fue creada por Sun Microsystems (la versión 1.0 fue
terminada en junio de 1997). Comenzando con la versión 2.3, la especificación de Servlet fue
desarrollada siguiendo el Proceso de la Comunidad Java (Java Community Process).
Ciclo de vida
1. Inicializar el servlet
Cuando un servidor carga un servlet, ejecuta el método init del servlet. El proceso de
inicialización debe completarse antes de poder manejar peticiones de los clientes, y antes de que el
servlet sea destruido.
Aunque muchos servlets se ejecutan en servidores multi-thread, los servlets no tienen problemas de
concurrencia durante su inicialización. El servidor llama sólo una vez al método init al crear la
instancia del servlet, y no lo llamará de nuevo a menos que vuelva a recargar el servlet. El servidor
no puede recargar un servlet sin primero haber destruido el servlet llamando al método destroy.
Los servlets se ejecutan hasta que el servidor los destruye, por cierre del servidor o bien a petición
del administrador del sistema. Cuando un servidor destruye un servlet, ejecuta el método destroy
del propio servlet. Este método sólo se ejecuta una vez y puede ser llamado cuando aún queden
respuestas en proceso, por lo que hay que tener la atención de esperarlas. El servidor no ejecutará de
nuevo el servlet hasta haberlo cargado e inicializado de nuevo.
Interface HttpServletRequest
Este enlace para ver contiene la definición detallada (en inglés): [1]
Interface HttpServletResponse
Este enlace contiene la especificación detallada (en inglés): [2]
Ejemplo
Código de un Servlet que procesa una petición GET y devuelve una página web HTML sencilla:
package org.pruebas;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet de ejemplo que procesa una petición GET
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0
Transitional//EN\">");
out.println("<html>");
out.println("<head><title>Ejemplo HolaSextoInformatica</title></head>");
out.println("<body>");
out.println("<h1>¡Hola HolaSextoInformatica!</h1>");
out.println("</body></html>");
}
}