La versión 2.3 de la especifiación de los Servlets introduce los Filtros como un medio flexible de interactuar con peticiones y respuestas HTTP antes y después de que el Contenedor Web llame a los recursos Web. Estos recursos Web pueden ser tanto estáticos como dinámicos:
- recursos Web estáticos:
- recursos Web dinámicos:
Los Filtros son
- una especie de Servlets que interceptan dinámicamente peticiones y respuestas y pueden manipular la información contenida en ellas
- clases Java que pueden interceptar y manipular las peticiones de un Navegador antes de que el Contenedor Web las pueda ejecutar

La ventaja principal de los Filtros es que pueden ser añadidos a aplicaciones ya existentes sin tener necesidad de realizar ninguna recompilación.
Los Filtros tienen una gran variedad de usos. Estos son algunos de ellos:
- encapsular tareas comunes en unidades reutilizables
- si por ejemplo un Servlet que realiza las funciones de fachada tiene que encargarse de ejecutar 6 acciones en un determinado orden, estas seis acciones se pueden escribir en 6 Filtros independientes e indicar su orden en el fichero descriptor de despliegue de la aplicación web.xml
- si en el futuro otra aplicación necesitara por ejemplo 4 de esos 6 filtros y en diferente orden, lo único que tenemos que hacer es indicarle al fichero descriptor de la nueva aplicación que tiene que trabajar con 4 Filtros que ya tenemos de otro proyecto e indicardle su correspondiente orden en el mencionado fichero
- de esta forma evitamos tener que reescribir los Servlets con funciones de fachada una y otra vez
- realizar labores de autentificación y bloqueo de peticiones
- realizar estadísticas de impactos al Sitio Web
- formatear los datos enviados al usuario
- los datos enviados como respuesta al usuario pueden ser transformados al pasar por un Filtro de salida. En este caso los Filtros pueden
- comprimir la información
- manipular imágenes para sobreponer en ellas un texto o logo representativo de nuesto sitio Web
- encriptar información