¿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
xml version = "1.0" encoding = "UTF-8"?>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.