1. En esta práctica vamos a explicar el código de un Servlet que escribe una
página web con el mensaje “Hola Mundo”.
package pkgServletHM;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class HolaMundo
*/
@WebServlet("/HolaMundo")
public class HolaMundo extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @throws IOException
* @see HttpServlet#doGet(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException,IOException {
// TODO Auto-generated method stub
PrintWriter out;
out = response.getWriter();
response.setContentType("text/html");
out.println("<html>");
out.println("<head><title>Ejemplo de Servlet</title></head>");
out.println("<body>");
out.println("<h1>Hola Mundo</h1>");
out.println("</body></html>");
}
}
2. public class HolaMundo extends HttpServlet {
Para escribir un servlet específicamente para el protocolo http, servlet de
tipo HTTP, se usa la clase HttpServlet que extiende a la clase GenericServlet
la cual proporciona una implementación básica del interfaz Servlet Interface
(todo servlet debe directa o indirectamente implementar este interfaz).
Los métodos para la clase HttpServlet son:
Method Summary
protected doDelete(HttpServletRequest req, HttpServletResponse resp)
void Called by the server (via the service method) to allow a servlet to
handle a DELETE request.
protected doGet(HttpServletRequest req, HttpServletResponse resp)
void Called by the server (via the service method) to allow a servlet to
handle a GET request.
protected doHead(HttpServletRequest req, HttpServletResponse resp)
void Receives an HTTP HEAD request from the protected service
method and handles the request.
protected doOptions(HttpServletRequest req, HttpServletResponse resp)
void Called by the server (via the service method) to allow a servlet to
handle a OPTIONS request.
protected doPost(HttpServletRequest req, HttpServletResponse resp)
void Called by the server (via the service method) to allow a servlet to
handle a POST request.
protected doPut(HttpServletRequest req, HttpServletResponse resp)
void Called by the server (via the service method) to allow a servlet to
handle a PUT request.
protected doTrace(HttpServletRequest req, HttpServletResponse resp)
void Called by the server (via the service method) to allow a servlet to
handle a TRACE request.
protected getLastModified(HttpServletRequest req)
long Returns the time the HttpServletRequest object was last modified,
in milliseconds since midnight January 1, 1970 GMT.
protected service(HttpServletRequest req, HttpServletResponse resp)
void Receives standard HTTP requests from the public service method
and dispatches them to the doXXX methods defined in this class.
void service(ServletRequest req, ServletResponse res)
Dispatches client requests to the protected service method.
3. protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException,IOException {
Dependiendo del protocolo utilizado para las peticiones (mediante POST o
GET), el servlet ejecutará el método doPost() o el método doGet(), que se
corresponden con el método service() del Servlet.
En nuestro caso el método doGet() es llamado por el servidor (a través del
médotod service()) para permitir al servlet manejar peticiones de tipo GET.
Los servlets están diseñados para un tipo de interacción petición-respuesta.
Cuando el servidor web recibe una petición para un servlet llama al método
public void service(HttpServletRequest req, HttpServletResponse res) con dos
parámetros: el primero, de la clase HttpServletRequest, representa la
petición del cliente y el segundo, de la clase HttpServletResponse,
representa la respuesta del servlet.
PrintWriter out;
out = response.getWriter();
response.setContentType("text/html");
out.println("<html>");
out.println("<head><title>Ejemplo de Servlet</title></head>");
out.println("<body>");
out.println("<h1>Hola Mundo</h1>");
out.println("</body></html>");
Como en el ejemplo no utilizamos ninguna información del cliente, no usamos
el parámetro HttpServletRequest. De la clase HttpServletResponse usamos dos
métodos:
• PrinterWriter getWriter(void) con el que obtendremos un PrinterWriter
en donde iremos escribiendo los datos que queremos que el cliente
reciba.
PrintWriter out;
out = response.getWriter();
• setContextType(String str) para establecer el tipo de respuesta que
vamos a dar. Para indicar que se trata de una página web usamos el
tipo "text/html".
response.setContentType("text/html");