Servlet

Contactar con el profesor

Es una clase Java que se ejecuta en el contexto de un servicio de red y su misión es recibir y responder a las peticiones de uno o más clientes.

El servlet lee cosas del request y escribe cosas en el response.

Fichero web.xml, dentro de la carpeta WEB-INF

Contiene información sobre la configuración de nuestro proyecto web.

Inicialmente contiene una <welcome-file-list>, que indica el fichero que se va a ir a buscar al acceder al servidor.

Ejercicio: crear el paquete de los servlets

Por convenio, el paquete suele empezar por el nombre del dominio dado la vuelta.

Ej:
pablomonteserin.com → com.pablomonteserin

Ejercicio: crear un nuevo servlet

Selecciono el paquete → Botón derecho → new → Servlet

Al hacer esto se crea una referencia al servlet en el web.xml que debemos actualizar si renombramos el servlet. De lo contrario obtendríamos un error 404 al ejecutar el servlet:

Nota:
Para ejecutar el servlet:
Btn derecho sobre el código → Run as → Run on server
Alt + shift + x + r

Para cada servlet…

Al hacer una petición, esta busca en los servlet-mapping un url-pattern que coincida con la misma. Si encuentra coincidencia buscará el servlet-class a partir del servlet-name recién obtenido.

<servlet-mapping>
	<servlet-name>A_HolaMundo</servlet-name>
	<url-pattern>/A_HolaMundo</url-pattern>
</servlet-mapping>

<servlet>
	<description>
	</description>
	<display-name>A_HolaMundo</display-name>
	<servlet-name>A_HolaMundo</servlet-name>
	<servlet-class>com.pablomonteserin.servlets.A_HolaMundo</servlet-class>
</servlet>

A partir de Java 7, con la especificación de Servlets 3.0, es posible cambiar estas entradas en el fichero web.xml, por anotaciones:

@WebServlet("/saludar")
public class NoSeQueNoSeCuantoServlet extends HttpServlet {
...

Ejercicio: crear un Servlet hola mundo

package com.pablomonteserin.servlets;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class A_HolaMundo extends HttpServlet {
	private static final long serialVersionUID = 1L;

    public A_HolaMundo() {
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("Hola mundo!");
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}

}
← Peticiones al servidor: GET vs POST
Librerías necesaria →

Aviso Legal | Política de privacidad