Está en la página 1de 3

Historia[editar editar cdigo]

La especificacin original de Servlets fue creada por microsoft (la versin 1.0 fue terminada en junio de 1997). Comenzando con la versin 2.3, la especificacin de Servlet fue desarrollada siguiendo el Proceso de la Comunidad Java (Java Community Process).

Ciclo de vida[editar editar cdigo]


Cada servlet tiene el mismo ciclo de vida: 1.-Un servidor carga e inicializa el servlet. 2.-El servlet maneja cero o ms peticiones de cliente. 3.-El servidor elimina el servlet. Inicializar un Servlet Cuando un servidor carga un servlet, ejecuta el mtodo init del servlet. La inicializacin se completa antes de manejar peticiones de 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 inicializacin. El servidor llama slo una vez al mtodo 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 mtodo destroy. Interactuar con Clientes Despus de la inicializacin, el servlet puede manejar peticiones de clientes. Estas respuestas son manejadas por la misma instancia del servlet por lo que hay que tener cuidado con acceso a variables compartidas por posibles problemas de sincronizacin entre requerimientos concurrentes. Destruir un Servlet Los servlets se ejecutan hasta que el servidor los destruye, por cierre el servidor o bien a peticin del administrador del sistema. Cuando un servidor destruye un servlet, ejecuta el mtodo destroy del propio servlet. Este mtodo slo se ejecuta una vez y puede ser llamado cuando an queden respuestas en proceso por lo que hay que tener la atencin de esperarlas.. El servidor no ejecutar de nuevo el servlet, hasta haberlo cargado e inicializado de nuevo.

Clases y objetos necesarios[editar editar cdigo]


Podemos crear un Servlet haciendo uso del paquete javax.servlet.

Interface HttpServletRequest[editar editar cdigo]


Sigue este enlace para ver su definicin detallada (en ingls): http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpServletRequest.html

Interface HttpServletResponse[editar editar cdigo]


Sigue este enlace para ver su especificacin detallada (en ingls): http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpServletResponse.html

Beneficios de utilizar Servlets en lugar de CGI[editar editar cdigo]

Son ms eficientes y utilizan menos recursos. CGI utiliza un nuevo proceso por cada peticin. En cambio en los Servlets slo existe una copia cargada en la mquina virtual y por cada peticin se inicia un hilo, lo cual reduce el uso de memoria del servidor y el tiempo de respuesta. Tienen persistencia, por lo que siguen "vivos" una vez terminada la peticin.

Ejemplo[editar editar cdigo]


Cdigo de ejemplo de un Servlet que procesa una peticin GET y devuelve una pgina web HTML sencilla: package org.pruebas; import import import import import import java.io.IOException; java.io.PrintWriter; javax.servlet.ServletException; javax.servlet.http.HttpServlet; javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse;

public class HolaMundoServlet extends HttpServlet { /** * Servlet de ejemplo que procesa una peticin GET * @param request * @param response * @throws ServletException * @throws IOException */ @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"); out.println("<html>"); out.println("<head><title>Ejemplo Hola Mundo</title></head>"); out.println("<body>"); out.println("<h1>Hola Mundo!</h1>"); out.println("</body></html>"); } }

Enlaces externos[editar editar cdigo]


Referencia oficial para Java Servlet de Sun Microsystem Especificacin JSR 154 de Java Servlet

Ejemplos y explicaciones de Servlets y JSPs

También podría gustarte