Java EE 6 Servlets y Anotaciones

Poco a poco vamos instalando en nuestros entornos de desarrollo servidores que cumplen con los standards de JavaEE 6. Con esta versión de la plataforma el uso de anotaciones aumenta y ayuda a simplificar el trabajo. Una de las especificaciones más afectadas es la de Servlets 3.0, vamos a ver algunos ejemplos.

Registro de Servlets

Una de las cosas más habituales a realizar cuando trabajamos en Java EE es registrar un Servlet. Todos hemos manejado el web.xml para realizar este tipo de tarea. Sin embargo ya no es necesario y podemos registrarlo de forma automática a través de la anotación @WebServlet.


package com.genbetadev;
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;


@WebServlet("/HolaMundo")
public class HolaMundo extends HttpServlet {
    private static final long serialVersionUID = 1L;
      
    public HolaMundo() {
        super();
       
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        PrintWriter pw=response.getWriter();
        pw.println("hola");
        pw.close();
    }

    
}

Acabamos de construir un Servlet y registrarlo, el siguiente paso es invocarlo.

Registro de Filtros

De forma similar podemos ahora registrar un ServletFilter apoyándonos en la anotación @WebFilter y asignando el patrón de filtro que deseemos:

package com.genbetadev;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

/**
 * Servlet Filter implementation class FiltroHola
 */
@WebFilter("/*")
public class FiltroHola implements Filter {

    public void destroy() {
        // TODO Auto-generated method stub
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        
        System.out.println("has pasado por un filtro");
        chain.doFilter(request, response);
    }

    public void init(FilterConfig fConfig) throws ServletException {
        
    }

}

Definimos en la propia anotación que rutas son afectadas por el filtro, en nuestro caso "/* ". Si invocamos el Servlet que construimos al principio el filtro se ejecutará e imprimirá por consola un mensaje.

Registro de Listeners

Otro de los elementos que a partir de ahora podremos registrar usando anotaciones son los Listeners. Vamos a ver un ejemplo apoyándonos en SessionListeners.

package com.genbetadev;

import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;


@WebListener
public class MiSessionListener implements HttpSessionListener {

    public void sessionCreated(HttpSessionEvent arg0)  { 
         
        System.out.println("session creada");
    }
    public void sessionDestroyed(HttpSessionEvent arg0)  { 
         
        System.out.println("session destruida");
    }
    
}

Acabamos de cubrir algunas de las anotaciones más importantes de Servlets 3.0 pero el conjunto de anotaciones de la plataforma Java EE 6 es muy amplio y lleva tiempo conocerlas a detalle.

Ver todos los comentarios en https://www.genbeta.com

VER 0 Comentario

Portada de Genbeta