1. En la aplicación de primavera, tenemos dos usos de filtrado, uno es un interceptor y el otro es, por supuesto, un filtro. Presentaremos el uso de filtros en Springboot aquí. El uso de filtros en SpringMVC es básicamente el mismo, pero hay una pequeña diferencia en la configuración.
2. La función de filtro permite a los usuarios cambiar una solicitud y modificar una respuesta. El filtro no es un servlet, no puede generar una respuesta. Puede preprocesar la solicitud antes de que una solicitud llegue al servlet, o puede manejar la respuesta al salir del servlet. En otras palabras, el filtro es en realidad un "encadenamiento de servlet" (cadena de servlet).
Un filtro incluye:
1) interceptar antes de que se llame al servlet;
2) verifique la solicitud del servlet antes de que se llame al servlet;
3) Modifique el encabezado de solicitud y los datos de solicitud según sea necesario;
4) Modifique el encabezado de respuesta y los datos de respuesta según sea necesario;
5) Interceptado después de que se llama al servlet.
1. Escenarios de aplicación de filtro
A través de la comprensión de los filtros de filtro, podemos saber que se puede realizar algún procesamiento en las siguientes tres situaciones:
1> Decide si se debe acceder al recurso de destino controlando la llamada al método Chain.dofilter.
Por ejemplo, puede verificar en los permisos del usuario, etc. Determine si el usuario tiene permiso para acceder a ciertos recursos, tiene permiso para liberar y no ejecuta el método Chain.DoFilter sin permiso.
2> Algunos propósitos se logran haciendo algún procesamiento antes de llamar al método de cadena.
Por ejemplo, resuelva el problema del código confuso chino, etc. Antes del método Dofilter, se puede realizar la codificación de la codificación y respuesta de la solicitud de configuración. Incluso puede encapsular y decorar la interfaz de solicitud para manejar el problema chino de los confusos de GET Method (Reescribe el método de solicitud. GetParameter).
3> Algunos propósitos se logran haciendo algún procesamiento después de llamar al método de cadena.
Por ejemplo, comprime todo el sitio web. Antes de llamar al método de cadena. Dentro de la clase A, el contenido de salida se almacena en caché en la transmisión ByteArArAyOutPutStream, y luego, después de que se ejecuta el método de Cadena.
2. El principio de la intercepción del filtro
Hay un método Dofilter en la interfaz de filtro. Cuando el desarrollador escribe la clase de filtro para implementar el método Dofilter y configura qué recurso web interceptará, el servidor web llamará primero el método Dofilter del filtro antes de llamar al método de servicio del recurso web (determinado por el mecanismo de acceso interno del servidor).
3. Reglas de filtrado
// Filtrar todos los recursos en la aplicación. Todos los archivos debajo de la raíz de la aplicación actual incluyen todos los archivos en el subdirectorio de niveles múltiples. Tenga en cuenta que * está precedido por "/" Registration.AddurlPatterns ("/ *"); // Filtrar los recursos de archivo de tipo especificado, todos los archivos HTML en la raíz de la aplicación actual. Nota: No hay "/" antes *.html, de lo contrario el registro de error.addurlpatterns (". Html"); // Filtrar todos los archivos en el directorio especificado. Todos los archivos en el subdirectorio de carpeta_name (puede ser un subdirectorio de niveles múltiples) debajo de la raíz de la aplicación actual.addurlpatterns ("/carpeta_name/*"); // Filtrar el archivo especificado Registration.addurlPatterns ("/index.html");Iii. Solicitud
@Componente @servletComponentsCan @webFilter (urlPatterns = "/login/*", filterno = "loginfilter") clase pública loginfilter implementa filtro {@Override public void init (filterconfig filtreConfig) lanza ServletException {} @Override public void doFilter (servletrequest ServRequest,, ServletEn ServLetResponse, FilterChain FilterChain) lanza IOException, ServLetException {} @Override public Void Destro () {}}4. Explicación:
1. El propósito de esta anotación @Component es entregar el LoginFilter al contenedor para su procesamiento. Eso es hacer que LoginFilter funcione
2. @ServletComponentsCan Esto se usa para escanear @WebFilter para que @WebFilter funcione. Por supuesto, también es posible explicar el tubo de alambre de servlet. Este @ServletComponentsCan es mejor para desinstalar la aplicación, la configuración general. Solo tengo un filtro aquí, así que no lo escribí en la aplicación.
3. @WebFilter es de uso obvio. ¿Qué enlace se usa para filtrar y por qué es el nombre del filtro?
5. Una breve introducción al uso del filtro en SpringMVC
1. El método de escritura sigue siendo el mismo. Hereda el filtro para implementar 3 métodos para procesarlo.
2. Tíralo al contenedor: esto debe configurarse en Web.xml
<Sterry> <Sterry-Name> LoginFilter </filter-name> <filter-class> com.troy.boot.filter.loginfilter </filter-class> </filtre> <filter-mapping> <filter-name> loginfilter </filter-name> <url-mapt
3. Puedes estudiar el uso específico por ti mismo.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.