La diferencia y el uso de los filtros e interceptores web de Java
Las diferencias son las siguientes:
1. Los interceptores se basan en el mecanismo de reflexión de Java, mientras que los filtros se basan en devoluciones de llamadas de funciones.
2. El interceptor no depende del contenedor de servlet, pero el filtro depende del contenedor de servlet.
3. Los interceptores solo pueden funcionar en solicitudes de acción, mientras que los filtros pueden funcionar en casi todas las solicitudes.
4. Los interceptores pueden acceder a objetos en el contexto de acción y la pila de valores, pero los filtros no.
5. En el ciclo de vida de la acción, el interceptor se puede llamar varias veces, pero el filtro solo se puede llamar una vez cuando se inicializa el contenedor.
Se usa de la siguiente manera:
Cuando el Servlet se usa como filtro, puede procesar las solicitudes de los clientes. Una vez completado el procesamiento, se entregará al siguiente filtro para su procesamiento, de modo que las solicitudes del cliente se procesen una por una en la cadena de filtrado hasta que la solicitud se envíe al destino. Por ejemplo, hay una página web para enviar "información de registro modificada" en un sitio web. Después de que el usuario completa la información modificada y la envía, el servidor debe realizar dos tareas durante el procesamiento: determinar si la sesión del cliente es válida; unificar los datos enviados.
Estas dos tareas se pueden procesar en una cadena de filtros que consta de dos filtros. Cuando el procesamiento del filtro es exitoso, los datos enviados se envían al destino final; si el procesamiento del filtro no es exitoso, la vista se enviará a la página de error especificada.
Información ampliada:
Interceptor, en AOP (Programación Orientada a Aspectos), se utiliza para interceptar un método o campo antes de acceder a él y luego agregar un determinado método antes o después de algún operaciones. La interceptación es una estrategia de implementación de AOP. ?
La explicación en la documentación china de Webwork es que un interceptor es un objeto que intercepta dinámicamente las llamadas a la acción. Proporciona un mecanismo que permite a los desarrolladores definir el código que se ejecutará antes y después de ejecutar una acción, y evitar la ejecución de una acción antes de que se ejecute. También proporciona una forma de extraer partes reutilizables de la acción. ?
Un filtro es un programa que se ejecuta en el servidor antes del servlet o página JSP asociada a él. Los filtros se pueden adjuntar a uno o más servlets o páginas JSP y pueden inspeccionar la información de solicitud que ingresa a estos recursos.
Material de referencia: Enciclopedia Baidu-java