Servlet 3.0 @WebFilter Cómo controlar el orden de ejecución de múltiples filtros
Anteriormente, controlábamos el orden de ejecución de múltiples filtros controlando la posición del filtro en web.xml. El filtro colocado arriba se ejecutaría antes que el filtro colocado debajo, de la siguiente manera: "Verificación de inicio de sesión del usuario. "Filtro" se ejecutará antes que "Filtro de registro de interfaz". ¡Filtro de verificación de inicio de sesión de usuario" se ejecutará antes que "Filtro de registro de interfaz"! --? ¿Filtro de verificación de inicio de sesión de usuario? --gt;lt;filtergt;
lt;filter-namegt;UserLoginFilterlt;/ filter-namegt ;lt;filter-classgt;net.tfgzs.demo.filter .UserLoginFilterlt;/filter-classgt;lt;/filtergt;lt;filter-mappinggt;lt;filter-namegt;UserLoginFilterlt;/filter-namegt;lt ;url- patróngt;/*lt;/url-patterngt;lt;/filter-mappinggt;lt;! --interface-log-filtergt;
lt;filtergt;lt;filter-namegt;ApiLoglt ;/filter -namegt;lt;filter-classgt;net.tfgzs.demo.filter ApiLoglt;/filter-classgt;
lt;/filtergt;
lt;filter-mappinggt ;lt; filter-namegt;ApiLoglt;/filter-namegt;lt;url-patterngt;/*lt;/url-patterngt;
lt;/filter-mappinggt;
Pero cuando use la anotación @WebFilter, encontramos que no se proporcionan parámetros para controlar el orden de ejecución
A través de la práctica, descubrimos que si queremos controlar la ejecución del filtro, debemos usar la anotación @WebFilter. Descubrimos que si para controlar el orden de ejecución de los filtros, puede controlar el nombre del archivo del filtro.
Por ejemplo:
UserLoginFilter.java y ApiLog.java son "Inicio de sesión de usuario". Filter" respectivamente. y "Filtro de registro de interfaz" porque estos dos archivos
?A preceden a U
, lo que da como resultado cada uno La ejecución es ejecutar primero el "Filtro de registro de interfaz" y luego el "Filtro de inicio de sesión de usuario", por lo que ahora cambiamos los nombres de estos dos archivos a?
Filter0_UserLogin.java
Filter1_ApiLog.java
De esta manera podemos ejecutar primero el "Filtro de inicio de sesión de usuario" y luego el "Filtro de registro de interfaz". "