Red de conocimiento informático - Problemas con los teléfonos móviles - La diferencia entre filtros de servlet e interceptores springMVC

La diferencia entre filtros de servlet e interceptores springMVC

El filtro se usa en struts2 y el interceptor se usa en springmvc. Ambos pueden filtrar solicitudes, pero ¿cuál es la diferencia?

1. Definición

Interceptor: en la programación orientada a la personalización, está en su servicio o método, antes de llamar al método o después de llamar al método, como el proxy dinámico. Implementación de interceptor simple que imprime una cadena antes de llamar al método (o realiza otras operaciones de lógica de negocios), o imprime la cadena después de llamar al método, antes de llamar al método o después de llamar al método. Incluso se lanzan excepciones. al realizar operaciones de lógica de negocios.

Filtrado: en javaweb, filtra cierta información por adelantado cuando se reciben solicitudes y respuestas, o establece algunos parámetros por adelantado y luego realiza operaciones de lógica empresarial al pasar acciones de servlet o struts, como filtrar URL ilegales (las solicitudes que no son direcciones login.do se filtrarán si el usuario no ha iniciado sesión), o establecer el juego de caracteres de manera uniforme antes de pasar la acción del servlet o struts, o eliminar algunos caracteres ilegales...

2. Configuración del archivo XML

1.filter

El método de filtrado consiste en crear una clase XXXFilter para implementar esta interfaz, y en el método doFilter del clase Declare la regla de filtrado y luego declare su ruta filtrada en el archivo de configuración web.xml.

Declare la ruta que filtra en xml

lt; filtergt;

lt; filter-namegt;

com.web.util.XXXFilter

lt;/filter-classgt

lt;/filtergt

lt; filtro-mappinggt;

lt;filtro-nombregt;

lt;/filtro-mappinggt; .util.XXXFilter

lt;/filter-classgt ;

lt;/filtergt;

lt;filter-mappinggt;

lt;filter-namegt;XXXFilterlt;/filter-namegt;

lt;url-patterngt;*.actionlt;/url-patterngt;

lt;/filter-mappinggt;

2. Interceptor

También debe implementar la interfaz HandlerInterceptor. Aquí solo se configuran las anotaciones de métodos

lt;! -- Interceptores --gt;

lt; mvc: interceptoresgt

lt;! -- Múltiples interceptores, ejecutados en orden --gt;

lt; mvc: interceptorsgt;

lt; ! -- Si no está configurado o /*, todos los controladores serán interceptados --gt

lt;bean class="com.wy.interceptor.CommonInterceptor"gt;lt;/beangt;

lt;/mvc! -- Interceptores --gt;

lt;/mvc:interceptoresgt

lt;! -- Múltiples interceptores, ejecutados en orden --gt;

lt; mvc: interceptorsgt;

lt; ! -- Si no está configurado o /*, todos los controladores serán interceptados --gt

lt;bean class="com.wy.interceptor.CommonInterceptor"gt;lt;/beangt;

lt;/mvc.Interceptor gt;

lt;/mvc: Interceptor gt;

Tres diferencias específicas

Filtro

p>

Interceptores

Más de una orden de ejecución

Depende del mapeo de filtros configurado en el orden de prioridad

Según el orden configurado, pero el orden controlable por comando

Especificación

Definida en la especificación de Servlet, es compatible con el contenedor de Servlet.

En el contenedor Spring, es compatible con el marco Spring.

Ámbito de uso

Se puede utilizar únicamente en programas web.

Se puede utilizar tanto en programas web como en aplicaciones y programas Swing.

Profundidad

Los filtros solo pueden funcionar antes y después de los servlets.

Los interceptores pueden profundizar antes y después de los métodos, antes y después de que se lancen excepciones, etc.

4. Resumen

La diferencia esencial entre los dos: los interceptores se basan en el mecanismo de reflexión de Java, mientras que los filtros se basan en funciones de devolución de llamada. En términos de flexibilidad, el interceptor es más poderoso. Puede hacer todo lo que puede hacer el filtro y puede ejecutarse antes o después de la solicitud, lo cual es más flexible. El filtro codifica principalmente direcciones URL, filtra parámetros inútiles y comprobaciones de seguridad (más generales, como iniciar sesión o no). Si es demasiado detallado, se recomienda utilizar un interceptor. Pero aún tienes que elegir el correcto según las diferentes situaciones.