Descargar la presentación
La descarga está en progreso. Por favor, espere
1
CURSO STRUTS 2 INTERCEPTORS
En el siguiente apartado del curso se estudiará el componente Interceptor del framework Struts 2, realizando una descripción de su objetivo, tareas y características. La información que se estudiará en este apartado es: ¿Qué son los Interceptors? Funcionamiento de los Interceptors Configuración de los Interceptors Interceptors por defecto de Struts 2 Construcción de Interceptors personalizados
2
¿QUÉ SON LOS INTERCEPTORS?
CURSO STRUTS 2 INTERCEPTORS ¿QUÉ SON LOS INTERCEPTORS? Un Interceptor es un componente de Struts 2 que se encarga de capturar las peticiones Web que se reciben antes de llegar al Modelo (Action) para realizar gestiones sobre esta. Cada Interceptor tiene como meta realizar una labor en concreto sobre la petición, de esta forma se mantiene la independencia entre cada Interceptor: interceptor para la gestión de excepciones, interceptor para la validación, interceptor para la conversión de tipos, … Mediante los Interceptors el framework Struts 2 consigue una alto nivel de separación entre las capas de la arquitectura Modelo-Vista-Controlador, dado que trabajan de forma aislada cada petición y no se acoplan con el resto de capas de la arquitectura. Action Result exception modelDrive params workflow
3
FUNCIONAMIENTO DE LOS INTERCEPTORS
CURSO STRUTS 2 INTERCEPTORS FUNCIONAMIENTO DE LOS INTERCEPTORS El componente ActionInvocation del framework, es la clase responsable de la ejecución completa de una petición, gestionando el orden de ejecución de los Interceptors, el Action y el Result correspondiente. Cada vez que la clase ActionInvocation llama a un Interceptor ejecuta el método intercept(), donde el Interceptor realiza sus labores, una de las propias tareas del interceptor es volver a llamar al ActionInvocation mediante la sentencia: invocation.invoke() devolviendo el control a la clase ActionInvocation para que valide el estado y, si este es correcto, pase a ejecutar el siguiente Interceptor, y así sucesivamente. Cada Interceptor pasa por tres fases en su ejecución: Fase de pre-procesamiento Devolución control ActionInvocation Fase post-procesamiento Fase de pre-procesamiento, el Interceptor puede realizar tareas de preparación, filtrado, alteración datos o cualquier tarea que manipule los datos antes de que alcancen el Action. Devolución control ActionInvocation, llamando para ello al método invoke(), o devolviendo directamente un resultado String. La clase ActionInvocation será la que decida pasar el control al siguiente Interceptor, o al Action, o al Result, si el estado no es correcto. Fase post-procesamiento, el Interceptor realiza tareas de alteración de los datos, gestión de errores, estado de atributos. Pero durante esta fase no se podrá modificar el estado (Result) dado que está ya se ha procesado.
4
FUNCIONAMIENTO DE LOS INTERCEPTORS
CURSO STRUTS 2 INTERCEPTORS FUNCIONAMIENTO DE LOS INTERCEPTORS Orden de invocación de los Interceptors El Interceptor Stack que se deben ejecutar en una petición, se ejecutan en el mismo orden en los que están declarados en la configuración XML. Ejemplo basicStack <interceptor-stack name="basicStack"> <interceptor-ref name="exception"/> <interceptor-ref name="servletConfig"/> <interceptor-ref name="prepare"/> <interceptor-ref name="checkbox"/> <interceptor-ref name="params"/> <interceptor-ref name="conversionError"/> </interceptor-stack> El orden de ejecución de los Interceptors del basicStack sería: primero exception, segundo servletConfig, tercero prepare, cuarto checkbox, quinto params y, sexto conversionError. La clase ActionInvocation sigue el mismo orden de ejecución de los Interceptors que según están declarados en la configuración.
5
CONFIGURACIÓN DE LOS INTERCEPTORS
CURSO STRUTS 2 INTERCEPTORS CONFIGURACIÓN DE LOS INTERCEPTORS Los Interceptor se deben declarar en los archivos de configuración XML de la aplicación, y básicamente existe dos lugares para configurar el Interceptor Stack a ejecutar en una petición: Package configurando de esta forma el Interceptor Stack estos se ejecutan para todos las URL del package. Se puede configurar mediante la extensión de un paquete que ya tiene definida una configuración de Interceptors, por ejemplo struts-default, o bien realizar la propia configuración de los Interceptor. <package name=”...” namespace=”...” extens=”struts-default”> <interceptor-ref name="roles"/> <interceptor-ref name="basicStack"/> <action name="..." class="..."> <result>/jsp/Success.jsp</result> </action> </package> struts.xml Action consiste en configurar el Interceptor Stack a ejecutarse para un solo <action> de la configuración del package, el resto de URL que estén en el package no ejecutarán los Interceptors. <package name=”...” namespace=”...” extens=”struts-default”> <action name="..." class="..."> <interceptor-ref name="roles"/> <interceptor-ref name="basicStack"/> <result>/jsp/Success.jsp</result> </action> </package> <package> <package> configuración interceptor <action> configuración interceptor
6
CONTENIDO PACKAGE STRUTS-DEFAULT
CURSO STRUTS 2 INTERCEPTORS CONFIGURACIÓN DE LOS INTERCEPTORS defaultStack Struts 2 dispone de un package con la configuración por defecto para la mayoría de los Actions, el cual se puede extender para reutilizar su configuración. CONTENIDO PACKAGE STRUTS-DEFAULT Al extender de la package struts-default automáticamente el package que lo utilice tendrá configurado el Interceptor Stack, defaultStack, pero esta configuración se puede variar, sobrescribir o incluso definir una totalmente nueva. Contenido del package struts-default <package name="struts-default" abstract="true"> <interceptors> ... <interceptor-stack name="defaultStack"> <interceptor-ref name="exception"/> <interceptor-ref name="alias"/> <interceptor-ref name="servletConfig"/> <interceptor-ref name="i18n"/> <interceptor-ref name="prepare"/> <interceptor-ref name="chain"/> <interceptor-ref name="debugging"/> <interceptor-ref name="profiling"/> <interceptor-ref name="scopedModelDriven"/> <interceptor-ref name="modelDriven"/> <interceptor-ref name="fileUpload"/> <interceptor-ref name="checkbox"/> <interceptor-ref name="staticParams"/> <interceptor-ref name="actionMappingParams"/> <interceptor-ref name="params"> <param name="excludeParams">dojo\..*,^struts\..*</param> </interceptor-ref> <interceptor-ref name="conversionError"/> <interceptor-ref name="validation"> <param name="excludeMethods">input,back,cancel,browse</param> <interceptor-ref name="workflow"> </interceptor-stack> </interceptors> <default-interceptor-ref name="defaultStack"/> </package>
7
CONFIGURACIÓN DE LOS INTERCEPTORS
Definir el Stack completo de Interceptors <package name=”...” namespace=”...” extends=”struts-default”> <action name="..." class="..."> <interceptor-ref name="exception"/> <interceptor-ref name="alias"/> <interceptor-ref name="params"/> <interceptor-ref name="servletConfig"/> <interceptor-ref name="prepare"/> <interceptor-ref name="i18n"/> <interceptor-ref name="chain"/> <interceptor-ref name="modelDriven"/> <interceptor-ref name="fileUpload"/> <interceptor-ref name="staticParams"/> <interceptor-ref name="conversionError"/> <interceptor-ref name="validation"> <param name="excludeMethods">myValidationExcudeMethod</param> </interceptor-ref> <interceptor-ref name="workflow"> <param name="excludeMethods">myWorkflowExcludeMethod</param> </action> </package> CURSO STRUTS 2 INTERCEPTORS CONFIGURACIÓN DE LOS INTERCEPTORS Sobrescribir configuración Interceptors Se puede sobrescribir la configuración de los Interceptor de dos métodos: STACK COMPLETO REFERENCIAR A UN INTERCEPTOR STACK Referenciar al Interceptor Stack ya configurada y modificar al configuración. <package name=”...” namespace=”...” extends=”struts-default”> <action name="..." class="..."> <interceptor-ref name="defaultStack"> <param name="validation.excludeMethods">myValidationExcludeMethod</param> <param name="workflow.excludeMethods">myWorkflowExcludeMethod</param> </interceptor-ref> </action> </package>
8
INTERCEPTORS POR DEFECTO
CURSO STRUTS 2 INTERCEPTORS INTERCEPTORS POR DEFECTO Struts 2 viene con toda una serie de Interceptors ya configurados, que realizan la mayoría de las tareas posibles que se presenta en una aplicación Web. De todas formas el framework permite desarrollar tus propios Interceptors y configurar su ejecución para las peticiones. Para utilizar los Interceptors que proporciona el framework lo más sencillo es que la configuración, el package de un extienda de la configuración struts-default donde se encuentran configurados el Interceptors Stack, interceptor-stack, o bien configurar el Interceptor Stack por petición (<action>). Interceptors Utilidad Interceptors Transferencia Datos Interceptors Workflow Interceptors Seguridad Interceptors Varios
9
INTERCEPTORS POR DEFECTO
CURSO STRUTS 2 INTERCEPTORS INTERCEPTORS POR DEFECTO Interceptors Utilidad El cometido de los siguientes Interceptors dados por el framework, es realizar labores que faciliten el desarrollo, rendimiento y encuentren problemas. TIMER DEBUG LOGGER PROFILING TIMER Este Interceptor simplemente captura la duración de la ejecución de una petición, enviando esta información mediante la librería commons-loggin. INFO: Executed action [/capitulo2/login] took 50 ms. Puede ser útil para conocer el rendimiento y tiempo de ejecución de los distintos Action. PROFILING Permite realizar tareas de profiling para cada petición, pudiendo activarse mediante un parámetro recibido en la petición HTTP, por defecto profiling=true. El nombre del parámetro para activar este Intercepor se puede configurar mediante el parámetro profilingKey (String). DEBUG El Interceptor permite obtener la información que gestiona la página actual de la aplicación para conocer los datos. Para activar el Interceptor es necesario que el parámetro devMode del framework esté true, permitiendo obtener los valores actuales de la página de cuatro formas distintas: xml console command browser LOGGER Este Interceptor dispone de un mecanismo simple de loggin que registra la fase de pre-procesamiento y la fase de post-procesamiento de una petición. INFO: Starting execution stack for action /capitulo2/login INFO: Finishing execution stack for action /capitulo2/login Puede ser útil para depuración (debug) de las peticiones.
10
INTERCEPTORS POR DEFECTO
STATIC-PARAMS Este Interceptor también transfiere una serie de parámetros al Value Stack, pero en este caso el origen de los valores de estos están definidos en el archivo de configuración XML. <action name="..." class=". . ."> <param name=”atributo1”>valor atributo 1</param> <param name=”atributo2”>valor atributo 2</param> </action> AUTOWIRING Este Interceptor permite un punto de integración para usar Spring para gestionar los recursos. SERVLET-CONFIG El Interceptor servlet-config permite inyectar varios objetos del API Java Servlet en el Action, a través de métodos “setter” que son definidos en los interfaces que debe implementar el Action. La lista de interfaces, que debe implementar el Action, y objeto que asigna mediante su método “set” es la siguiente: ServletContextAware – para el ServletContext. ServletRequestAware – para el HttpServletRequest. ServletResponseAware – para el HttpServletResponse. ParameterAware – asigna un Map con los parámetros de la petición (request). RequestAware – asigna un Map con los atributos de la petición (request). SessionAware – asigna un Map con los atributos de la sesión. ApplicationAware – asigna un Map con los atributos del ServletContext. PrincipalAware – asigna el objeto de seguridad Principal. CURSO STRUTS 2 INTERCEPTORS INTERCEPTORS POR DEFECTO Interceptors Transferencia Datos Los Interceptors que se basan en transferencia de datos gestionan y manipulan los datos de diferentes formas: parámetros dinámicos, parámetros estáticos, conversión tipos, checkbox… PARAMS STATIC-PARAMS AUTOWIRING SERVLET-CONFIG FILEUPLOAD ALIAS CHECKBOX PARAMS El objeto de este Interceptor es transferir los parámetros recibidos de una petición al Value Stack. CHECKBOX Interceptor responsable de gestionar los valores de los checkbox en los formulario, tanto para aquellos que estén seleccionados (checked), como los que no, en cuyo caso marca el valor “false” o “null” según sea el atributo. El problema de los checkbox procede del propio tipo de elemento Web que se trata, el cual no envía ninguna información en la petición en el momento que no está seleccionado (checked). ALIAS Interceptor que modifica el nombre de distintos parámetros que puedan ser coincidir en una petición, o bien, obligar mediante la configuración “aliasses”, a que el nombre de ciertos parámetros pase a llamarse de otro forma. FILEUPLOAD Interceptor que gestión el envío de archivos a la aplicación, controlando el tipo mime, tamaño máximo y las extensiones de archivo soportadas.
11
INTERCEPTORS POR DEFECTO
CURSO STRUTS 2 INTERCEPTORS INTERCEPTORS POR DEFECTO Interceptors Workflow La labor del siguiente grupo de Interceptor, es gestionar el flujo de trabajo de las peticiones y el estado de las mismas, pudiendo llegar incluso a cambiar el Result a mostrar. WORKFLOW VALIDATION PREPARE MODELDRIVEN WORKFLOW Este interceptor se encarga de invocar al método “validate()” del Action, siempre y cuando este implemente el interface Validateable. En el momento que se produce un error en la ejecución de los métodos de validación que definen estos interfaces en el Actio, automáticamente el Interceptor envía el String “INPUT” al framework. public String intercept(ActionInvocation invocation) throws Exception { Action action = invocation.getAction(); if (action instanceof Validateable) { Validateable validateable = (Validateable) action; validateable.validate(); } if (action instanceof ValidationAware) { ValidationAware validationAwareAction = ValidationAware) action; if (validationAwareAction.hasErrors()) { return Action.INPUT; return invocation.invoke(); Este interceptor puede configurarse con varios parámetros: alwaysInvokeValidate (Boolean), indica si se debe invocar siempre el método “valídate()”,por defecto “true”. inputResultName (String), respuesta a enviar al framework, si se produce un error en la validación, por defecto es “INPUT”. excludeMethods (String), métodos para los que no se debe ejecutar la validación, por ejemplo para el caso de tratarse de un error “error” o “input”, no se debería volver a validar. <interceptor-ref name="workflow"> <param name="excludeMethods">input,back,cancel,browse, errorValidacion</param> <param name="inputResultName">errorValidacion</param> </interceptor-ref> MODELDRIVEN El interceptor modelDriven, utiliza el patrón ModelDriven para instanciar todos los parámetros de la petición en un atributo del Action, ocultando a la Vista que tipo de objeto se trata. Para que entre en acción esta tarea, la clase Action de implementar el interface ModelDriven y método “getModel()” donde se retorna el objeto del Action que hay que completar con los parámetros. VALIDATION El Interceptor validation, es el responsable de las validaciones que debe realiza el framework de validaciones que usa el framework Struts 2. No realiza las mismas validaciones que el Interceptor workflow. PREPARE El Interceptor prepare dispone de un punto de entrada en el Action para invocar al método “prepare()” el cual realiza tareas de pre-procesamiento antes de que se ejecute la lógica del Action “execute()”. Para que entre en ejecución este Interceptor el Action de implementar el interface Preparable, el cual define el método “prepare()”. El interceptor dispone de un parámetro para su configuración, allwaysInvokePrepare (Boolean) para indicar si se debe o no llamar al método “prepare()”, por defecto es true. Este Interceptor resulta útil para aquellos Actions en las que es necesario un fase preprocesamiento antes de realizar la lógica, como puede ser invocar a la fuente de datos para obtener un listado de objetos o un objeto que es necesario en el método “execute()”.
12
INTERCEPTORS POR DEFECTO
CURSO STRUTS 2 INTERCEPTORS INTERCEPTORS POR DEFECTO Interceptors Seguridad Struts 2 también proporciona algunos Interceptors relacionados con la seguridad de las aplicaciones en su entorno, el Contenedor de Servlets. ROLES ROLES Este Interceptor solo permite la ejecución del Action si el usuario supera la seguridad JAAS Role. El parámetro de configuración de este Interceptor para indicar que roles son válidos es: allowedRoles (String), lista de roles permitidos separados por comas. <interceptor-ref name="roles"> <param name="allowedRoles">admin, manager</param> </interceptor-ref>
13
INTERCEPTORS POR DEFECTO
CURSO STRUTS 2 INTERCEPTORS INTERCEPTORS POR DEFECTO Interceptors Varios El framework cuenta con una serie de variados Interceptors para distintas tareas, como pueda ser gestión errores, token, i18n,… EXCEPTION TOKEN Y TOKEN-SESSION I18N EXECANDWAIT EXCEPTION Este importante Interceptor es el responsable de la gestión de las excepciones en la aplicación, por este motivo siempre suele ejecutarse el primero y último, para capturar cualquier excepción independientemente del punto que se produzca. El Interceptor devuelve la Vista que este configurado con respecto a la exception producida, además añade dos atributos al Value Stack: exception y exceptionStack. <global-results> <result name="error">/jsp/Error.jsp</result> </global-results> <global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="error"/> </global-exception-mappings> Los parámetros de configuración que se le pueden aplicar este Interceptor son: logEnabled (Boolean), índica si las excepciones deben ser registradas (log), por defecto “true”. logLevel (String), representa el nivel del log que se utilizará (trace, debug, info, warn, error o fatal), por defecto es debug. logCategory (String), define la categoría en la que se ejecuta el log. EXECANDWAIT Este Interceptor se utiliza para aquellos Actions cuya ejecución de su lógica tarde mucho tiempo en completarse. El objetivo del Interceptor es mostrar una pantalla intermedia al usuario donde se muestre el progreso de la evolución de la petición original, informando al usuario en todo momento del estado de su petición. I18N Interceptor que se encarga de guardar el idioma del usuario en su sesión HTTP. Los parámetros de configuración del filtro son: parameterName (String), es el nombre del parámetro que se utiliza para cambiar el idioma de la sesión del usuario, por defecto es “request_locale”. requestOnlyParamterName (String), nombre del parámetro que se utiliza para cambiar el idioma, pero solo para la petición actual, por defecto es “request_only_locale”. attributeName, indica el nombre del atributo con el que se guardará en la sesión HTTP del usuario su correspondiente idioma, por defecto es WW_TRANS_I18N_LOCALE. TOKEN Y TOKEN-SESSION Interceptors destinados a evitar el envío de formularios duplicados (doble submit). Para poder realizarlo el framework utiliza un token único en cada formulario de esta forma no permite que se envíen dos formularios con el mismo token. Para poder configurar este Interceptor es necesario añadir el tag: <s:token/> dentro del formulario del JSP.
14
CONSTRUCCIÓN DE INTERCEPTORS PERSONALIZADOS
CURSO STRUTS 2 INTERCEPTORS CONSTRUCCIÓN DE INTERCEPTORS PERSONALIZADOS Para desarrollar un Interceptor propio basta con crear una clase Java que implemente el interface com.opensymphony.xworkd2.interceptor.Interceptor. El interface Interceptor public interface Interceptor extends Serializable { void destroy(); void init(); String intercept(ActionInvocation invocation) throws Exception; } El interface Interceptor contiene tres métodos sencillos, los dos primeros init() y destroy() se utilizan para el ciclo de vida del Interceptor, mientras que el método intercept(), representa la lógica del Interceptor; en este método debe devolver en algún momento el control al ActionInvocation mediante la llamada a su método “invoke()”, sino se dejaría de ejecutar la petición. NOTA: Los Interceptor no son thread-safe, sólo se crea una instancia de la clase del Interceptor para toda la aplicación, todas las peticiones comparten el mismo Interceptor. Por esto motivo hay que tener cuidado en su desarrollo. La clase AbstractInterceptor Struts 2 también dispone de una clase abstracta que implemente el interface Interceptor, la clase AbstractInterceptor la cual no realiza ninguna tarea en los métodos init() y destroy(), dejando el método intercept() abstracto para que lo completen las clases que extiendan de ella.
15
CONSTRUCCIÓN DE INTERCEPTORS PERSONALIZADOS
AutentificacionInterceptor public class AutentificacionInterceptor implements Interceptor { private String paramUsuario = “usuario”; //métodos get y set de paramUsuario public void init() { } public void destroy() { public String intercept( ActionInvocation actionInvocation ) throws Exception { Map session = actionInvocation.getInvocationContext().getSession(); Usuario usuario = (Usuario) session.get(this.paramUsuario); if (usuario == null) { return Action.LOGIN; return actionInvocation.invoke(); CURSO STRUTS 2 INTERCEPTORS CONSTRUCCIÓN DE INTERCEPTORS PERSONALIZADOS Ejemplo Interceptor Personalizado: AutentificacionInterceptor A continuación se mostrará la construcción de un Interceptor que se utilizará para gestionar la autentificación de los usuarios en una aplicación. Clase AutentificacionInterceptor Configuración Interceptor Configuración Interceptor Configuramos el autentificación interceptor para todos los packages excepto el de /login para que invoque en primer lugar el Interceptor de autentificación. <package name="capitulo2" namespace="/capitulo2/secure" extends="struts-default"> <interceptors> <interceptor name="autentificacionInterceptor" class="ejemplo.interceptors.AutentificacionInterceptor”> <param name=“paramUsuario”>login_usuario</parameter> </interceptor> <interceptor-stack name="secureStack"> <interceptor-ref name="autentificacionInterceptor"/> <interceptor-ref name="defaultStack"/> </interceptor-stack> </interceptors> <default-interceptor-ref name="secureStack"/> . . . </package>
16
CURSO STRUTS 2 INTERCEPTORS RECUERDA QUE…
Configuración de los Intercpetors Los Interceptor se deben declarar en los archivos de configuración XML de la aplicación, y básicamente existe dos lugares para configurar el Interceptor Stack a ejecutar en una petición: Action, configurar el Interceptor Stack a ejecutarse para un solo Action. <package name=”...” namespace=”...” extens=”struts-default”> <action name="..." class="..."> <interceptor-ref name="roles"/> <interceptor-ref name="basicStack"/> <result>/jsp/Success.jsp</result> </action> </package> Package, configurando de esta forma el Interceptor Stack estos se ejecutan para todos las URL del package. CURSO STRUTS 2 INTERCEPTORS RECUERDA QUE… Durante el siguiente apartado hemos aprendido qué es y como funciona los componentes Interceptors dentro de la arquitectura del framework Struts 2, resaltando los siguientes conceptos vistos: ¿Qué es un Interceptor? Un Interceptor es un componente de Struts 2 que se encarga de capturar las peticiones Web que se reciben antes de llegar al Modelo (Action) para realizar gestiones sobre esta. Cada Interceptor tiene como meta realizar una labor en concreto sobre la petición, de esta forma se mantiene la independencia entre cada Interceptor. Definición Funcionamiento Orden Configuración Funcionamiento de los Interceptors Cada Interceptor pasa por tres fases en su ejecución: Fase de pre-procesamiento, el Interceptor puede realizar tareas de preparación, filtrado, alteración datos o cualquier tarea que manipule los datos antes de que alcancen el Action. Devolución control ActionInvocation, llamando para ello al método invoke(), o devolviendo directamente un resultado String. La clase ActionInvocation será la que decida pasar el control al siguiente Interceptor, o al Action, o al Result, si el estado no es correcto. Fase post-procesamiento, el Interceptor realiza tareas de alteración de los datos, gestión de errores, estado de atributos. Pero durante esta fase no se podrá modificar el estado (Result) dado que está ya se ha procesado. Orden de invocación de los Interceptors El Interceptor Stack que se deben ejecutar en una petición, se ejecutan en el mismo orden en los que están declarados en la configuración XML. <interceptor-stack name="basicStack"> <interceptor-ref name="exception"/> <interceptor-ref name="servletConfig"/> <interceptor-ref name="prepare"/> <interceptor-ref name="checkbox"/> <interceptor-ref name="params"/> <interceptor-ref name="conversionError"/> </interceptor-stack> Action Result exception modelDrive params workflow
17
CURSO STRUTS 2 INTERCEPTORS RECUERDA QUE… Interceptors de Utilidad
Interceptors que realizan labores para facilitar el desarrollo, rendimiento y encuentren problemas. DEBUG, Interceptor que permite obtener toda la información del ValueStack de la página actual para conocer los datos. LOGGER , Interceptor dispone de un mecanismo simple de loggin que registra la fase de pre-procesamiento y la fase de post-procesamiento de una petición. PROFILING, Interceptor que permite realizar tareas de profiling para cada petición. TIMER, Interceptor que simplemente captura la duración de la ejecución de una petición CURSO STRUTS 2 INTERCEPTORS Interceptors Workflow Grupo de Interceptor que gestionan el flujo de trabajo de las peticiones y el estado de las mismas, pudiendo llegar incluso a cambiar el Result a mostrar. MODELDRIVEN, Interceptor que utiliza el patrón ModelDriven para instanciar todos los parámetros de la petición en un atributo del Action, ocultando a la Vista que tipo de objeto se trata. PREPARE, Interceptor dispone de un punto de entrada en el Action para invocar al método “prepare()” el cual realiza tareas de pre-procesamiento. VALIDATION, Interceptor responsable de las validaciones que debe realiza el framework de validaciones que utiliza el framework Struts 2. WORKFLOW, Interceptor encargado de invocar al método “validate()” del Action si este implementa el interface Validateable. RECUERDA QUE… Es muy importante conocer con que tipos de Interceptors cuenta Struts 2, así como el objetivo de cada uno: Utilidad Interceptors de Transferencia de Datos Interceptors que facilitan la transferencia de datos gestionan, así como su manipulación. ALIAS, Interceptor que modifica el nombre de distintos parámetros que puedan ser coincidir en una petición. AUTOWIRING, Interceptor permite un punto de integración para usar Spring para gestionar los recursos. CHECKBOX, Interceptor responsable de gestionar los valores de los checkbox en los formulario. FILEUPLOAD, Interceptor que gestiona el upload de archivos. PARAMS, Interceptor que transfiere los parámetros recibidos de una petición al Value Stack. SERVLET-CONFIG, Interceptor permite inyectar objetos del API Java Servlet en el Action. STATIC-PARAMS, Interceptor transfiere los valores estáticos definidos en los archivox XML al Value Stack. Transferencia Datos Workflow Intercpetors de Seguridad Interceptor relacionados con la seguridad de la aplicación en su entorno, el Contenedor de Servlets. ROLES, Interceptor solo permite la ejecución del Action si el usuario supera la seguridad JAAS Role.0 Seguridad Varios Intercpetors Varios Interceptors para distintas tareas, como pueda ser gestión errores, token, i18n,… EXECANDWAIT, Interceptor utilizado para aquellos Actions cuya ejecución de su lógica tarde mucho tiempo en completarse. EXCEPTION, Interceptor responsable de la gestión de las excepciones en la aplicación. I18N, Interceptor que se encarga de guardar el idioma del usuario en su sesión HTTP. TOKEN Y TOKEN-SESSION, Interceptors destinados a evitar el envío de formularios duplicados (doble submit).
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.