in

Filtro de servlet – javatpoint

filter

A filtrar es un objeto que se invoca en el preprocesamiento y posprocesamiento de una solicitud.

Se utiliza principalmente para realizar tareas de filtrado como conversión, registro, compresión, cifrado y descifrado, validación de entrada, etc.

los el filtro de servlet es enchufable, es decir, su entrada está definida en el archivo web.xml, si eliminamos la entrada de filtro del archivo web.xml, el filtro se eliminará automáticamente y no es necesario cambiar el servlet.

Por lo que el costo de mantenimiento será menor.

filtrar

Nota: a diferencia de Servlet, un filtro no depende de otro filtro.

Uso de filtro

  • grabar todas las solicitudes entrantes
  • registra las direcciones IP de las computadoras desde las que se originan las solicitudes
  • conversión
  • compresión de datos
  • cifrado y descifrado
  • validación de entrada, etc.

Ventaja del filtro

  1. El filtro es enchufable.
  2. Un filtro no depende de otro recurso.
  3. Menos mantenimiento

API de filtro

Al igual que el filtro de servlets, tiene su propia API. El paquete javax.servlet contiene las tres interfaces de Filter API.

  1. Filtrar
  2. FilterChain
  3. FilterConfig

1) Interfaz de filtro

Para crear cualquier filtro, debe implementar la interfaz de filtro. La interfaz de filtro proporciona los métodos del ciclo de vida de un filtro.

Método Descripción
public void init (configuración FilterConfig) El método init () se invoca solo una vez. Se utiliza para inicializar el filtro.
public void doFilter (solicitud HttpServletRequest, respuesta HttpServletResponse, cadena FilterChain) El método doFilter () se invoca cada vez que el usuario solicita cualquier recurso al que se asigna el filtro y se utiliza para realizar tareas de filtrado.
vacío público destruir () Esto se invoca solo una vez cuando el filtro se retira del servicio.

2) Interfaz FilterChain

El objeto de FilterChain es responsable de invocar el siguiente filtro o recurso en la cadena.Este objeto se pasa en el método doFilter de la interfaz Filter.La interfaz FilterChain contiene solo un método:

  1. public void doFilter (solicitud HttpServletRequest, respuesta HttpServletResponse): pasa el control al siguiente filtro o recurso.

Cómo definir el filtro

Podemos definir el filtro igual que el servlet. Veamos los elementos de filtro y mapeo de filtros.

ón-url> ónweb>

Para el filtro de mapeo podemos usar, url-pattern o servlet-name. Los elementos de patrón de URL tienen una ventaja sobre el elemento de nombre de servlet, es decir, se pueden aplicar en servlet, JSP o HTML.


Ejemplo simple de filtro

En este ejemplo, simplemente mostramos información de que el filtro se invoca automáticamente después del procesamiento posterior de la solicitud.

index.html

haga clic aquí

MyFilter.java

import java.io.IOException; import java.io.PrintWriter; importar javax.servlet. *; La clase pública MyFilter implementa Filter {public void init (FilterConfig arg0) lanza ServletException {} public void doFilter (ServletRequest req, ServletResponse resp, FilterChain chain) lanza IOException, ServletException {PrintWriter out = resp.getWriter (); out.print («el filtro se invoca antes»); chain.doFilter (req, resp); // envía la solicitud al siguiente recurso out.print («el filtro se invoca después de»); } public void destroy () {}}

HelloServlet.java

import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; importar javax.servlet.http. *; La clase pública HelloServlet extiende HttpServlet {public void doGet (solicitud HttpServletRequest, respuesta HttpServletResponse) lanza ServletException, IOException {response.setContentType («texto / html»); PrintWriter out = response.getWriter (); out.print («
bienvenido a servlet
«); }}

web.xml

Para definir el filtro, el elemento de filtro de la aplicación web debe definirse como servlet.

s1 HelloServlet s1 servlet -nombre> / servlet1 f1 MyFilter f1 / servlet1

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Colores CSS

TestRail – Introducción