2010-11-08 16 views

Respuesta

31

filtros de servlets son la aplicación de la chain of responsibility pattern

El punto es que cada filtro se mantiene "delante" y "detrás" de cada servlet que está asignado. Así que si usted tiene un filtro en torno a un servlet, tendrá que:

void doFilter(..) { 
    // do stuff before servlet gets called 

    // invoke the servlet, or any other filters mapped to the target servlet 
    chain.doFilter(..); 

    // do stuff after the servlet finishes 
} 

También tiene la opción de no llamar en cuyo caso no será llamado el servlet. Esto es útil por razones de seguridad; por ejemplo, puede verificar si hay un usuario conectado.

+3

Mientras escribía mi respuesta, recibí un mensaje de que alguien ya me proporcionó uno. Pero seguí trabajando en mi toma, pensando que el proveedor debe haberse olvidado de mencionar el patrón y el enlace al mismo. Pero después de presentar el mío, descubrí que estaba completamente equivocado. +1 –

+0

@Adel Ansari de todos modos, usted proporcionó un enlace que yo no - el de "elementos esenciales de los filtros", por lo que +1 también. – Bozho

+0

Gracias por su generosidad. –

13

¿Qué son los filtros?

Filters se utilizan para intercept and process requests antes de que se envíen a los servlets (en caso de solicitud).

O

Filters se utilizan para intercept and process a response antes de que sean enviados de vuelta a los clientes por un servlet.

enter image description here

por qué se utilizan?

-Los filtros pueden realizar comprobaciones de seguridad.

-Comprimir el flujo de respuesta.

-Crear una respuesta diferente.

¿Qué hace doFilter()?

El doFilter() se llama every time el recipiente determina que el filtro debe ser aplicada a una página.

Toma three arguments

->ServletRequest

->ServlerResponse

->FilterChain

Todo el functionality that your filter supposed to do se implementa en el interior doFilter() método.

¿Qué es FilterChain?

Su filters do not know anything about the other filters and servlet. FilterChain conoce el order of the invocation of filters y driven por el filter elements que definió en el DD.

Cuestiones relacionadas