Servlets

Jesús Arias Fisteus
Curso 2007/2008


Introducción

Introducción

Ventajas fundamentales (I)

Ventajas fundamentales (II)

Ventajas fundamentales (III)

Ventajas fundamentales (IV)

Concepto de aplicación Web

Ciclo de vida de un servlet

Consecuencias del ciclo de vida (I)

Consecuencias del ciclo de vida (II)

API de servlets

La interfaz Servlet

El método service()

void service(ServletRequest req, ServletResponse res)




Figura sobre service descrita en
	el párrafo siguiente

La figura anterior muestra que, cuando una petición llega al servidor, este invoca al método service del servlet correspondiente. Un servlet debe heredar de GenericServlet y sobreescribir su método service. En cualquier caso, se verá más adelante que para servlets HTTP se simplifica esto gracias a la clase HTTPServlet.

Servlets HTTP

Servlets HTTP

Figura sobre servlets HTTP descrita en
	el párrafo siguiente

La figura anterior muestra que para programar un servlet HTTP es suficiente heredar de HTTPServlet y sobreescribir los métodos doGet, doPost, etc. dependiendo de a qué métodos HTTP se desea que responda el servlet. La implementación de service que proporciona HTTPServlet analiza automáticamente el método HTTP de la petición recibida para decidir a qué método del servlet debe invocar (doGet, doPost, etc.)

Clases e interfaces útiles

Acceso a información útil (I)

Acceso a información útil (II)

Información de la petición (I)

Información de la petición (II)

Respuesta (I)

Respuesta (II)

Sesiones (I)

Sesiones (II)

Contexto

Código ejemplo


import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {
    public void doGet(HttpServletRequest request, 
                      HttpServletResponse response)
    throws IOException, ServletException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello World!</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Hello World!</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}