Después de comprender cómo funciona la acción en el marco Struts 2, es hora de comprender otro concepto importante del marco: Interceptador. El interceptor se utiliza para separar diferentes preocupaciones (por ejemplo, registro) y mejorar los diseños de MVC (por ejemplo, permitir que la acción solo se ocupe de las funciones de nivel de modelo).
En primer lugar, aquí hay un diagrama del libro de Manning. Principalmente muestra que Acción Invocación clase encapsula la ejecución de un acción con su asociado interceptores y resultados.
Acción Invocación La clase juega un papel fundamental para los interceptores. El siguiente diagrama demuestra cómo ActionInvocation controla la ejecución de los interceptores.
Del diagrama podemos observar:
- Llamadas de marco invocar() método en Acción Invocación clase.
- invocar() El método comienza desde el primer interceptor en pila.
- interceptar() método de AuthenticationInterceptor se invoca
interceptar() El método determina si se invoca la invocación para el siguiente interceptor.
Hay una variable de estado que registra qué interceptor debe ejecutar a continuación. Entonces Acción Invocación es responsable de recordar el estado actual.
Pregunta: ¿por qué es este un proceso recursivo? La respuesta está en el diagrama de arriba.