Servlet


¿Qué es un Servlet?

Existen muchas definiciones posibles para el concepto de Servlet.

Según la tecnologia: "Un Servlet es una clase en lenguaje Java usada para ampliar la funcionalidad de los servidores web a los que se accede via modelo de programación request-response."
Según la arquitectura: un Servlet es un componente Web que se ejecuta dentro de un contenedor web y genera contenido dinámico.
Según la programación: Los Servlets son pequeñas clases Java independientes de la plataforma compiladas en bytecode que pueden ser cargadas dinámicamente y ejecutadas dentro de un servidor web.


Finalidad y ventajas

La funcionalidad de los Servlets se resume en lo siguiente:

  • Leer los datos enviados por el cliente.
  • Extraer cualquier información útil incluida en la cabecera HTTP o en el cuerpo del mensaje de petición enviado por el cliente.
  • Generar dinámicamente resultados.
  • Formatear los resultados en un documento HTML.
  • Establecer los parámetros HTTP adecuados incluidos en la cabecera de la respuesta (por ejemplo: el tipo de documento, cookies, etc.)
  • Enviar el documento final al cliente.

Las ventajas más destacables son las siguientes:

  • Es integrable con páginas JSP y se pueden usar filtros.
  • Instancia permanentemente cargada en memoria por cada Servlet. Cada petición se ejecuta en un hilo, no en un proceso.
  • Con los Servlets, hay n threads pero sólo una copia de la clase Servlet. Los Servlet también tienen más alternativas que los programas CGI para optimizaciones como mantener abiertas las conexiones de las bases de datos.
  • Los Servlets están escritos en Java y siguen un API bien estandarizado.
  • Puede ser utilizados sobre cualquier SO. y en la mayoría de servidores Web.
  • Por ser Java ofrece: máquina virtual, chequeo de tipos, gestión de memoria, excepciones, seguridad, etc.
  • Actúan como capa intermedia entre la petición que proviene del navegador Web u otro cliente HTTP y Bases de Datos o Aplicaciones en el servidor HTTP.

Código básico de Servlet

import java.io.*; import javax.Servlet.*; import javax.Servlet.http.*;
public class Servlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub
} }


Bibliografía

http://www.lab.inf.uc3m.es/~a0080802/RAI/servlet.html