Asignación de filtros Web.xml en servlet JSP con ejemplo

Tabla de contenido:

Anonim

¿Qué es el filtro JSP?

  • Los filtros se utilizan para filtrar la funcionalidad de la aplicación web Java.
  • Interceptan las solicitudes del cliente antes de intentar acceder al recurso.
  • Manipulan las respuestas del servidor y las envían al cliente.

Tipos de filtros en JSP

  • Filtros de autenticación
  • Filtros de compresión de datos
  • Filtros de cifrado
  • Filtros de cadena MIME
  • Filtros de registro
  • Filtros de tokenización

Los filtros se definen en web.xml y son un mapa de servlet o JSP. Cuando el contenedor JSP comienza con la aplicación web, crea la instancia de cada filtro que se ha declarado en el descriptor de implementación.

A continuación se muestran los métodos de filtrado:

  • Public void doFilter (ServletRequest, ServletResponse, FilterChain)

    Esto se llama cada vez que se pasa una solicitud / respuesta de cada cliente cuando se solicita a un recurso.

  • Inicio vacío público (FilterConfig)

    Esto es para indicar que el filtro está puesto en servicio.

  • Destrucción del vacío público ()

    Esto para indicar que el filtro ha sido puesto fuera de servicio.

Ejemplo:

En este ejemplo, hemos creado un filtro y lo hemos mapeado en web.xml

Gurufilter.java

paquete demotest;import java.io.IOException;import java.util.Date;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;importar Javax.servlet.http.HttpServletRequest;GuruFilter de clase pública implementa Filter {public void doFilter (solicitud ServletRequest, respuesta ServletResponse, cadena Filterchain) lanza IOException, ServletException {// TODO código auxiliar de método generado automáticamenteHttpServletRequest req = solicitud (HttpServletRequest);String ipAddress = req.getRemoteAddr ();System.out.println ("Dirección IP" + ipAddress + ", la hora es"+ nueva fecha (). toString ());// pasar la solicitud a lo largo de la cadena de filtroschain.doFilter (solicitud, respuesta);}/ *** @ver Filter # init (FilterConfig)* /public void init (FilterConfig fConfig) lanza ServletException {String guruparam = fConfig.getInitParameter ("guru-param");// Imprime el parámetro initSystem.out.println ("Test Param: + guruparam);}}

Web.xml

prueba GuruFilter  GuruFilter  demotest.GuruFilter 
 guru-param 
 Este es el parámetro de guru  GuruFilter  / GuruFilter 

Explicación del código:

Gurufilter.java

Línea de código 17-32 : Aquí estamos usando el método "doFilter" donde obtenemos el objeto de solicitud (en nuestro ejemplo, el objeto de solicitud es req (objeto HttpServletRequest)) y obtenemos la dirección remota del cliente e imprimimos en la consola y también imprimimos fecha y hora en la consola.

Línea de código 33-37 : Aquí estamos usando el método init donde tomamos el parámetro init e imprimimos el parámetro init en la consola.

Web.xml

Línea de código 10-11 : mapeo de GuruFilter con el nombre de clase GuruFilter.java donde tenemos el nombre de filtro como GuruFilter y la clase de filtro que es la ruta del directorio de la clase GuruFilter

Línea de código 13-15 : mapeando el parámetro init llamado guru-param y obteniendo el valor que se coloca bajo la etiqueta de filtro para que este init-param se haya definido para gurufilter

Producción:

Cuando ejecuta el código anterior, obtiene el siguiente resultado:

  • La salida es Test Param del parámetro init
  • Y obteniendo la dirección IP, fecha y hora de la misma.