Red de conocimiento informático - Aprendizaje de código fuente - ¿Qué es un interceptor?

¿Qué es un interceptor?

Pregunta 1: ¿Qué significan filtros, interceptores y oyentes en Java? La característica principal de los filtros es: ¡toma lo que necesitas e ignora lo que no! En el programa, si desea seleccionar todos los números del artículo, ¡puede seleccionar los números en consecuencia!

La característica principal de un interceptor es: interceptar cosas que no deseas. Por ejemplo, en un BBS esperas que la gente no deje la palabra "pequeño cuervo", entonces puedes usar un interceptor. !

¡Oyente!

Es un proceso de procesamiento de eventos. La elección de este proceso puede convertir su código en un filtro o un interceptor ~~~

Por ejemplo, desea monitorear un dato del usuario. Si hay 1 en él, ¡imprima 111! ¡Esto requiere que el programa monitoree la entrada del usuario!

if(***..equls('1')){ print 111 } Así es para filtrar otras cosas. . . . .

Por supuesto, si lo considera un interceptor, significa que mientras aparezca 1, lo que está ejecutando es lo contrario. Por ejemplo, los datos que ingresa no pueden contener 1. . . etc.

En realidad, no hay diferencia entre filtros e interceptores. ¡El punto más importante es el filtrado! ¡Es algo positivo y la interceptación es algo negativo! Filtra para conservar lo que quieres, intercepta y apunta a las cosas que no necesitas....

Pregunta 2: ¿Qué es un interceptor? Las principales características de los filtros son: tomar lo que necesitas, ignorar. las cosas innecesarias! En el programa, si desea seleccionar todos los números del artículo, ¡puede seleccionar los números en consecuencia!

La característica principal de un interceptor es: interceptar cosas que no deseas. Por ejemplo, si quieres que la gente no deje la palabra "Little Crow" en un BBS, entonces puedes usar un interceptor. !

¡Oyente!

Es un proceso de procesamiento de eventos. La elección de este proceso puede convertir su código en un filtro o un interceptor ~~~

Por ejemplo, desea monitorear un dato del usuario. Si hay 1 en él, ¡imprime 111! ¡Esto requiere que el programa monitoree la entrada del usuario!

if(***..equls('1')){ print 111 } Así es para filtrar otras cosas. . . . .

Por supuesto, si lo considera un interceptor, significa que mientras aparezca 1, lo que está ejecutando es lo contrario. Por ejemplo, los datos que ingresa no pueden contener 1. . . etc.

En realidad, no hay diferencia entre filtros e interceptores. ¡El punto más importante es el filtrado! ¡Es algo positivo y la interceptación es algo negativo! Filtre para conservar lo que desea, intercepte y apunte a lo que no necesita....

Pregunta 3: ¿Cuál es la diferencia específica entre filtros e interceptores en Java Web, la solicitud y? La respuesta que pasa filtra cierta información por adelantado, o establece algunos parámetros por adelantado, y luego pasa el servlet o la acción de struts para la lógica empresarial, como filtrar URL ilegales (no solicitudes de dirección login.do, si el usuario no iniciado sesión Filtrar todo), o establecer el conjunto de caracteres de manera uniforme antes de la acción del servlet o struts entrantes, o eliminar algunos caracteres ilegales. El interceptor está en programación orientada a aspectos, que consiste en llamar a un método antes de su servicio o método. O llame a un método después del método. Por ejemplo, el proxy dinámico es una implementación simple del interceptor. Imprime la cadena antes de llamar al método (o realiza otras operaciones de lógica empresarial). Llame al método, o incluso después de llamar al método, realice operaciones de lógica empresarial cuando lanza una excepción.

La diferencia entre interceptores y filtros: los interceptores se basan en el mecanismo de reflexión de Java, mientras que los filtros se basan en devoluciones de llamadas de funciones. El interceptor no depende del contenedor de servlet, pero el filtro depende del contenedor de servlet. Los interceptores solo pueden funcionar con solicitudes de acción, mientras que los filtros pueden funcionar con casi todas las solicitudes. Los interceptores pueden acceder a objetos en el contexto de acción y la pila de valores, pero los filtros no. En el ciclo de vida de la acción, el interceptor se puede llamar varias veces, mientras que el filtro solo se puede llamar una vez cuando se inicializa el contenedor. Orden de ejecución: antes del filtrado - antes de la interceptación - Procesamiento de la acción - después de la interceptación - después del filtrado. Personalmente, creo que el filtrado es un proceso horizontal. Primero, se filtra el contenido enviado por el cliente (por ejemplo, los usuarios que no han iniciado sesión no pueden acceder a las páginas internas después de pasar el filtrado, el interceptor verificará la verificación); datos enviados por el usuario y realizar algunos procesos de datos preliminares, y luego enviar los datos procesados ​​a la Acción correspondiente una vez que se completa y devuelve el procesamiento de la Acción, el interceptor también puede realizar otros procesos (aún no he pensado qué hacer; ), y luego regresar hacia arriba a las operaciones posteriores del filtro.

Pregunta 4: ¿Para qué se utiliza el interceptor Struts2 y cuándo se utiliza? Ejecute antes de ejecutar el método de acción, por ejemplo, si desea interceptar permisos y determinar si la sesión del usuario existe.

Pregunta 5: ¿Alguien puede decirme cuál es el flujo de trabajo del interceptor del framework java struts2? El principio de implementación del interceptor Struts2 es similar a la implementación del filtro: intercepta un método en la Acción que realmente desea ejecutar y luego inserta parte de su propia lógica. Si no hay un interceptor, la lógica a insertar debe escribirse en su propia implementación de Acción, y cada implementación de Acción debe escribir esta lógica funcional, lo cual es muy engorroso de implementar. Los diseñadores de Struts2 separaron estas lógicas únicas y las implementaron en interceptores, lo que no solo encarna la idea de reutilización de software, sino que también lo hace conveniente para su uso por parte de los programadores. Struts2 proporciona una gran cantidad de interceptores. Varios interceptores pueden formar una pila de interceptores. El sistema configura una pila de interceptores predeterminada defaultStack para nosotros. Los interceptores específicos y su orden se pueden encontrar en el paquete de desarrollo de Struts2. /p>

En pocas palabras: su solicitud de servicio debe pasar por el interceptor de struts2. Si cumple con las condiciones, pasará; de lo contrario, será interceptada.

Es un diagrama de flujo. y léalo atentamente con su propio entendimiento

Pregunta 6: JAVA struts 2 Pregunta: A continuación, ¿qué significa? ¿Qué es exactamente un interceptor? El interceptor es el preprocesamiento antes de ejecutar la acción. Por ejemplo, el interceptor de inicio de sesión aquí (porque no puede ver el código específico) pueden ser los permisos correspondientes. Diferentes usuarios muestran diferentes permisos

Pregunta 7: Filtro. La diferencia entre interceptores e interceptores 1. Antes que nada debemos aclarar qué es un interceptor y qué es un filtro

1.1 Qué es un interceptor:

Interceptor, en AOP (Aspecto -Programación Orientada) se utiliza para interceptar antes de que se acceda a un método o campo y luego agregar ciertas operaciones antes o después. La interceptación es una estrategia de implementación de AOP.

La explicación en la documentación china de Webwork es que un interceptor es un objeto que intercepta dinámicamente las llamadas a la acción. Proporciona un mecanismo que permite a los desarrolladores definir el código que se ejecutará antes y después de ejecutar una acción, y evitar la ejecución de una acción antes de que se ejecute. También proporciona una forma de extraer partes reutilizables de la acción.

Hablando de interceptores, hay otra palabra que todos deberían saber: Interceptor Chain (Interceptor Chain, llamado Interceptor Stack en Struts 2). La cadena de interceptores sirve para conectar los interceptores en una cadena en un orden determinado. Cuando se accede a un método o campo interceptado, se llamará a los interceptores de la cadena de interceptores en el orden en que se definieron previamente.

1.2. Principio de implementación del interceptor:

La mayoría de las veces, los métodos del interceptor se llaman a través de proxy. La implementación del interceptor de Struts 2 es relativamente simple. Cuando una solicitud llega al ServletDispatcher de Struts 2, Struts 2 buscará el archivo de configuración y creará una instancia del objeto interceptor relativo de acuerdo con su configuración, luego lo encadenará en una lista y finalmente llamará a los interceptores en la lista uno por uno. .

1.3 ¿Qué es un filtro?

Un filtro es un programa que se ejecuta en el servidor antes del servlet o página JSP relacionada con él. Los filtros se pueden adjuntar a uno o más servlets o páginas JSP y pueden inspeccionar la información de solicitud que ingresa a estos recursos. Después de eso, el filtro puede tomar las siguientes opciones:

① Llamar al recurso de forma convencional (es decir, llamar a un servlet o una página JSP).

②Utilice la información de solicitud modificada para llamar a recursos.

③Llame al recurso, pero modifíquelo antes de enviar la respuesta al cliente.

④Bloquee la llamada al recurso, en su lugar vaya a otros recursos, devuelva un código de estado específico o genere una salida de reemplazo.

1.4 Principios básicos de los filtros de Servlet

Cuando se utiliza Servlet como filtro, puede procesar las solicitudes de los clientes. Una vez completado el procesamiento, se entregará al siguiente filtro para su procesamiento, de modo que las solicitudes del cliente se procesen una por una en la cadena de filtrado hasta que la solicitud se envíe al destino. Por ejemplo, hay una página web para enviar "información de registro modificada" en un sitio web. Después de que el usuario completa la información modificada y la envía, el servidor debe realizar dos tareas durante el procesamiento: determinar si la sesión del cliente es válida; unificar los datos enviados. Ambas tareas se pueden procesar en una cadena de filtros compuesta por dos filtros. Cuando el procesamiento del filtro es exitoso, los datos enviados se envían al destino final; si el procesamiento del filtro no es exitoso, la vista se enviará a la página de error especificada.

2. La diferencia entre interceptores y filtros:

1. Los interceptores se basan en el mecanismo de reflexión de Java, mientras que los filtros se basan en devoluciones de llamadas de funciones.

2. El interceptor no depende del contenedor de servlet, pero el filtro depende del contenedor de servlet.

3. Los interceptores solo pueden funcionar en solicitudes de acción, mientras que los filtros pueden funcionar en casi todas las solicitudes.

4. Los interceptores pueden acceder a objetos en el contexto de acción y la pila de valores, pero los filtros no.

5. En el ciclo de vida de la acción, el interceptor se puede llamar varias veces, pero el filtro solo se puede llamar una vez cuando se inicializa el contenedor.

La implementación del código del interceptor (con (struts2 como ejemplo):

1. Cómo definir interceptores en archivos xml

gt;

Pregunta 8: ¿Cuál es la función principal? ¿Cuáles son los interceptores en el marco Struts2? Los interceptores funcionales de Strurs son interceptores conectables: si queremos utilizar un determinado interceptor, solo necesitamos aplicar el interceptor en el archivo de configuración.

Los interceptores de Struts se administran en archivos de configuración como struts-default.xml y struts.xml.

Una gran cantidad de interceptores con funciones comunes se han habilitado de forma predeterminada en Struts2 (estos interceptores se configuran en el archivo struts-default.xml en forma de pares de nombre-clase). El paquete Action hereda el paquete predeterminado struts, estos interceptores entrarán en vigor.

El interceptor casi completa el trabajo del marco Sturts2 70.

Introducción a varios interceptores integrados de uso común en Sturts2:

1) conversación: este es un interceptor que maneja errores de conversión de tipos. Es responsable de eliminar los errores de conversión de tipos. el ActionContext. y convertirlo en un FieldError de una acción.

2) Excepción: este interceptor es responsable de manejar excepciones y mapearlas en resultados.

3) fileUpload: este interceptor se utiliza principalmente para cargar archivos. Es responsable de analizar el contenido del campo del archivo en el formulario.

4) i18n: Este es un interceptor que admite la internacionalización. Es responsable de poner el idioma y la región seleccionados en la sesión del usuario.

5) params: este es el interceptor más básico. Es responsable de analizar los parámetros en la solicitud HTTP y establecer el valor del parámetro en el valor del atributo correspondiente a la Acción.

6) Alcance: este es un interceptor de conversión de alcance, que puede guardar información del estado de la acción en el alcance de HttpSession o en el alcance de ServletContext.

7) token: este interceptor se utiliza principalmente para evitar envíos repetidos. Comprueba el token pasado a la Acción para evitar envíos múltiples.

Siempre que el paquete que definimos herede el paquete struts-default, podemos utilizar estos interceptores directamente.

Pregunta 9: ¿Por qué struts2 usa interceptores? ¿Cuáles son los beneficios? ¿Qué papel juega? Se puede decir que un interceptor es equivalente a un filtro: filtra contenido no deseado o no deseado. Los interceptores pueden abstraer parte del código y utilizarlo para mejorar la acción original. Al mismo tiempo, puede reducir la redundancia de código y mejorar la tasa de reutilización.

Por ejemplo, al iniciar sesión en una página, si se requiere verificación de contraseñas de usuario, permisos, etc., se puede utilizar un interceptor personalizado para verificar la contraseña y restringir los permisos. Sólo los usuarios calificados serán redirigidos a la página correcta. De esta forma, si hay nuevos permisos, no es necesario modificar ningún código en la acción, simplemente modifíquelo directamente en el interceptor.

(Opinión personal, ¡elija verla!)

Pregunta 10: 2. ¿Cuál es el papel del interceptor que se utiliza en AOP (programación orientada a aspectos) en? un cierto Antes de acceder al método o campo, intercepte y luego agregue algunas operaciones antes o después. La interceptación es una estrategia de implementación de AOP. Un interceptor es un objeto que intercepta dinámicamente llamadas a acciones. Proporciona un mecanismo que permite a los desarrolladores definir la ejecución de una acción