Servlet en servidor embebido Jetty

En el tutorial anterior vimos la manera de agregar un servlet a un servidor Apache Tomcat embebido, en esta ocasión haremos la misma tarea salvo que el servidor que utilizaremos esta vez será Jetty, el cual al igual que el servidor anterior también nos permite incluirlo en nuestros proyectos como un servidor embebido.

Agregar las dependencias Jetty Maven.

<dependencies>
    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-server</artifactId>
        <version>${jetty.version}</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-servlet</artifactId>
        <version>${jetty.version}</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>
</dependencies>

Nuestro servlet demostrativo.

public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response) 
            throws ServletException, IOException {
        
        response.setContentType("text/html");
        response.setStatus(HttpServletResponse.SC_OK);

        PrintWriter pw = response.getWriter();
        pw.println("<h1>Jetty Embedded Servlet</h1>");
        pw.println("<p>Servlet dentro de servidor embebido...</p>");
    }
}

Ahora, iniciamos el servidor Jetty embebido y registramos el servlet, para esto requerimos el siguiente código: 

public class EmbeddedJetty {

    public static void main(String[] args) throws Exception {

        Server server = new Server(8080);

        ServletHandler handler = new ServletHandler();
        handler.addServletWithMapping(HelloServlet.class, "/*");

        server.setHandler(handler);

        server.start();
        server.join();
    }
}

Explicación del código:

Server server = new Server(8080);

Este código instancia el servidor y lo configura para utilizar el puerto 8080, debemos elegir un número de puerto que este disponible.

ServletHandler handler = new ServletHandler();
handler.addServletWithMapping(HelloServlet.class, "/*");

server.setHandler(handler);

Para utilizar un servlet debemos crear un objeto ServletHandler usando el método addServletWithMapping(...) registramos el servlet y la URL que lo mapea, luego debemos añadir el Handler al servidor.

server.start();
server.join();

Usando lo métodos start() iniciamos el servidor embebido, join() espera a que finalice la ejecución.

Probando en el navegador:

Servlet en servidor embebido Jetty

Descargar proyecto: jetty-embedded-servlet.zip

Comentarios

Temas relacionados

Entradas populares de este blog

tkinter Grid

Conectar SQL Server con Java

Controles y Contenedores JavaFX 8 - I

Histogramas OpenCV Python