El filtro es un fragmento de código reutilizable que se puede usar para convertir las solicitudes HTTP, las respuestas y la información del encabezado. El filtro no es como un servlet. No puede generar una solicitud o respuesta. Simplemente modifica una solicitud a un cierto recurso o modifica una respuesta de un determinado recurso.
Recientemente, cuando utilicé secuencias de comandos, utilicé cookies para identificar la computadora, el filtrado agregado y los servlets y los filtros cuidadosamente estudiados. La principal diferencia es:
El ciclo de vida de un filtro generalmente pasa por las siguientes tres etapas:
Las características de los servlets son:
inicialización
El método init () se llama cuando el contenedor carga por primera vez el filtro. Esta clase contiene una referencia al objeto de configuración de filtro en este método. Nuestros filtros en realidad no necesitan hacer esto, ya que no se utiliza la información de inicialización, y aquí es solo para fines de demostración.
filtrar
La mayor parte del tiempo del filtro se consume aquí. El contenedor llama al método Dofilter, y las referencias a la solicitud de servlet, la respuesta del servlet y los objetos de la cadena de filtro en la cadena de solicitud/respuesta se pasan al mismo tiempo. Luego, el filtro tiene la oportunidad de procesar la solicitud, pasar la tarea de procesamiento al siguiente recurso en la cadena (llamando al método Dofilter en la referencia del objeto de la cadena del filtro) y luego procesa la respuesta cuando el control de procesamiento regresa al filtro.
Destrucción
El contenedor llama al método Destroy () inmediatamente antes de la recolección de basura para poder ejecutar cualquier código de limpieza requerido.
Con respecto a la cadena. El siguiente aquí se refiere al siguiente filtro, si no hay filtro, es el recurso que solicitó. En general, los filtros son una cadena, y solo hay unas pocas configuraciones en Web.xml. Conectado uno por uno
Solicitud -> Filter1 -> Filter2 -> Filter3 -> .... -> Recurso de solicitud.
El filtro es una operación de cadena, por lo que al procesar un solo filtro, finalmente debe saltar al servlet para responder a la solicitud.
Si pasa por la cadena, el método de cadena. El método para llamar al filtro es configurarlo en Web.xml, y debe configurar un patrón URL que sea el mismo que el servlet que necesita para interceptar.
< El orden de la intercepción está relacionado con el orden de asignación-> <filter-mapping> <filter-name> suibianxie </filter-name> <!-Tenga en cuenta que esto debe ser consistente con el patrón de url del servlet para ser interceptado, lo que significa que el filtro interfesiona antes del servlet-> <url-pattern>/servlet/test </surl-pattern> </filtre-mapping> <!-Filter-Servlet-<Url-Pattern> <filter-name> suibianxie2 </filter-name> <filter-class> com.etoak.filter.naming </filter-class> </filtre> <filter-mapping> <filter-name> suibianxie2 </filter-name> <url-pattern>/servlet/test </url-pattern> <//filtro-mapping> <ervlet> <ervlet-name> test </servlet> <Servlet-class> com.etoak.servlet.test </servlet-class> </servlet> <ervlet-mapping> <ervlet-name> test </servlet-name> <url-pattern>/servlet/test </ url-patern> </servlet-mapping>
Lo anterior es la diferencia y la conexión entre servlets y filtros presentados por el editor. ¡Espero que sea útil para todos!