Servlet

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

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.

En las últimas versiones de Apache Tomcat el fichero web.xml no es generado por defecto. Para generarlo automáticamente, podemos marcar la check «Generate web.xml deployment descriptor» durante el proceso de creación del Dynamic web project.

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 {
	}

}

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.