Java Servlets

¿Qué son los servlets?

Los Servlets son módulos escritos en Java que se utilizan en un servidor, que puede ser o no ser servidor web, para extender sus capacidades de respuesta a los clientes al utilizar las potencialidades de Java. Los Servlets son para los servidores lo que los applets para los navegadores, aunque los servlets no tienen una interfaz gráfica.

Los servelts pueden ser incluidos en servidores que soporten la API de Servlet (ver servidores). La API no realiza suposiciones sobre el entorno que se utiliza, como tipo de servidor o plataforma, ni del protocolo a utilizar, aunque existe una API especial para HTTP.

Los Servlets son un reemplazo efectivo para los CGI en los servidores que los soporten ya que proporcionan una forma de generar documentos dinámicos utilizando las ventajas de la programación en Java como conexión a alguna base de datos, manejo de peticiones concurrentes, programación distribuida, etc. Por ejemplo, un servlet podría ser responsable de procesar los datos desde un formulario en HTML como registrar la transacción, actualizar una base de datos, contactar algún sistema remoto y retornar un documento dinámico o redirigir a otro servlet u alguna otra cosa.

¿Cómo es un Servlet?

Un pequeño servlet de ejemplo es el siguiente:

public class SimpleServlet extends HttpServlet {

    // Maneja el método GET de HTPP para 
    // construir una sencilla página Web.

    public void doGet (HttpServletRequest request, HttpServletResponse response)
              throws ServletException, IOException {
    PrintWriter out;
    String title = "Simple Servlet Output";

    // primero selecciona el tipo de contenidos y otros campos de cabecera de la respuesta
    response.setContentType("text/html");
    // Luego escribe los datos de la respuesta
    out = response.getWriter();
    out.println("<HTML><HEAD><TITLE>");
    out.println(title);
    out.println("</TITLE></HEAD><BODY>");
    out.println("<H1>" + title + "</H1>");
    out.println("<P>This is output from SimpleServlet.");
    out.println("</BODY></HTML>");
    out.close();
    }
}

En negrita se ha resaltado los detalles importantes que son característicos de un Servlet. Este Servlet puede ser puesto en un servidor web ya que utiliza el protocolo HTTP para comunicarse.

Primero es necesario señalar que el servlet será del tipo HTTP por lo que se extiende de la clase HttpServlet. Al extender de esta clase es necesario definir el método doGet para responder la petición. Este método recibe los parámetros dados por el cliente a través de la clase HttpServletRequest y encapsula la respuesta que se le dará al cliente a través de la clase HttpServletResponse. El servlet puede retornar al cliente cualquier tipo de información, desde texto plano hasta un ejecutable, por lo que es necesario señalar inicialmente qué tipo de respuesta se dará a través del método setContentType. Luego se obtiene el objeto para poder escribir texto al cliente a través del método getWriter con el cual se puede retornar una página web llamado sucesivamente el método println hasta terminar con close.

Propiedades

Para poder entender bien cómo son los servlets y lo que se puede hacer con ellos es necesario conocer de forma general las clases involucradas en la API y sus métodos más importantes. Para esto se puede ver la página de explicación de clases.


Índice Siguiente