2012-04-07 25 views
11

Estoy investigando esto para poder responder mejor en las entrevistas. He estado buscando una respuesta clara y concisa.Diferencia entre interceptores y filtros: ¿es esto correcto?

Hasta el momento, y por todos los medios que me corrija si estoy equivocado o carente de detalles:

  1. Los filtros son parte de la API de servlets, los interceptores son Struts 2. (aunque parece obvio)
  2. El La pila del interceptor activa las solicitudes en un paquete configurado, mientras que los filtros solo se aplican a sus URL asignadas.
  3. Los interceptores se pueden configurar para ejecutarse o no dependiendo de los métodos de acción de destino específicos a través de excludeMethods e includeMethods, mientras que los filtros carecen de esta característica.
  4. Los filtros son una implementación del patrón de filtro de intercepción mientras que los interceptores son del patrón de interceptor.

¿Esto parece una respuesta precisa y completa? ¿Debo agregar o corregir algo? ¿Qué pasa con los problemas/diferencias?

Respuesta

2

creo que el primer punto es la respuesta, pero probablemente debería ser capaz de decir algo más que

interceptores están en puntales 2 y los filtros son parte de la API Servlet

En De hecho, como entrevistador, esperaría y espero que explique exactamente cuál es la diferencia entre Servelt API y un marco de aplicación web, como Struts 2. De hecho, esta es una oportunidad para mostrar su comprensión de todo el ecosistema e infraestructura de la aplicación web Java.

buenas respuestas podrían rozar:

  1. Cómo los puntales 2 Marco se ejecuta dentro de un filtro de servlet.

  2. ¿Qué casos de uso específicos requerirían un filtro de servlet fuera de puntales 2 pero dentro de la misma aplicación web?

  3. ¿Cuál es la API de Servlet, una aplicación web, una aplicación web framework, etc.?

Respondiendo de manera que mostró su comprensión de todos estos temas es lo que está buscando, supongo.

+0

me gustaría escuchar las respuestas a la pregunta 3 arriba publicada por favor? – Harshana

+0

@Harshana Sugiero que las haga como preguntas independientes. Sería un formato confuso para responderlos en esta pregunta. El filtro – chad

1

En una de las entrevistas que respondieron a esta pregunta como,

interceptores son struts2 concepto y el desarrollador de la aplicación tiene control sobre él. Además, funciona dentro de los límites de la aplicación struts2 y tiene acceso a Actions, ValueStack y otros objetos junto con los recursos de Struts2.

While Filter es más adecuado para configuraciones de tiempo de despliegue. Tiene acceso limitado a la aplicación, y en la mayoría de los casos es genérico para la mayoría de la aplicación web implementada en el servidor.

Si la lógica en el código está más acoplada con la aplicación, es más adecuada para el interceptor o si su infraestructura, podemos ubicarla en el filtro servlet.

2

Los filtros son de Servlet API y los interceptores son de Struts 2, diferencia viene cuando hablamos de aplicaciones web y aplicaciones empresariales, filtro se utiliza sólo en aplicaciones web, mientras que el interceptor se puede utilizar con web, así como las aplicaciones empresariales. Los métodos del ciclo de vida de ambos, también difieren.

La pila del interceptor se dispara en cada solicitud. Los filtros solo se aplican a las URL para las que están definidos. utiliza uno u otro dependiendo de la necesidad. Supongamos que necesita verificar que haya una cookie presente para cada solicitud. Usa un interceptor. Digamos que necesita abrir una aplicación externa en algunas solicitudes (impulsada por una url), use un filtro.

+0

"se usa solo en aplicaciones web, mientras que el interceptor se puede usar con aplicaciones web y empresariales". Esto es engañoso; no hay nada mágico acerca de las "aplicaciones empresariales", solo son un subconjunto de todas las aplicaciones web. También se puede aplicar fácilmente un filtro a todas las URL, por lo que esa no es una diferencia sustantiva. – orlade

0

Filtros:

  1. Basado en la especificación Servlet
  2. ejecuta en el patrón coincide en la solicitud.
  3. Llamadas a métodos no configurables.

interceptores:

  1. Basado en Struts2.
  2. Ejecuta para todas las solicitudes califica para un controlador frontal (un filtro de servlet ). Y se puede configurar para ejecutar interceptores adicionales para una ejecución de acción particular.
  3. Los métodos en los Interceptores se pueden configurar para ejecutar o no por medio de excludeMethods o includeMethods.
Cuestiones relacionadas