Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de...
-
Upload
leonardo-rodriquez -
Category
Documents
-
view
1 -
download
0
Transcript of Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de...
![Page 1: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/1.jpg)
Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Clase 8:Introducción a Struts
Clase 8:Introducción a Struts
ACI – 843ACI – 843JAVA IIJAVA II
![Page 2: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/2.jpg)
Copyright Altran SDB, 2001. All rights reserved. 2 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
ObjetivosObjetivos
• Entender el Patrón de Diseño Modelo – Visualización – Controlador (Model-View-Controller MVC)
• Conocer la funcionalidad y organización del framework
• Simplificar el “first touch”• Saber cómo hacerlo funcionar
![Page 3: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/3.jpg)
Copyright Altran SDB, 2001. All rights reserved. 3 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
ContenidosContenidos
• El Patrón MVC• Arquitectura de Struts
• Model• View• Controller
• Referencias• Conclusiones
![Page 4: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/4.jpg)
Copyright Altran SDB, 2001. All rights reserved. 4 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
¿Qué es Struts?¿Qué es Struts?
• Struts es una herramienta de soporte para el desarrollo de aplicaciones Web bajo el patrón MVC bajo la plataforma J2EE (Java 2, Enterprise Edition).
• Se desarrollaba como parte del proyecto Jakarta de la Apache Software Foundation, pero actualmente es un proyecto independiente conocido como Apache Struts.
• Struts permite reducir el tiempo de desarrollo. • Su carácter de "software libre" y su compatibilidad con
todas las plataformas en que Java Entreprise esté disponible, lo convierte en una herramienta altamente disponible.
![Page 5: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/5.jpg)
Copyright Altran SDB, 2001. All rights reserved. 5 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
¿En qué consiste?¿En qué consiste?
• Es un framework de la capa de presentación que implementa el patrón MVC en Java:
• Un framework es la extensión de un lenguaje mediante una jerarquía de clases que implementan una funcionalidad y que (opcionalmente) pueden ser extendidas.
MVC 2
![Page 6: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/6.jpg)
Copyright Altran SDB, 2001. All rights reserved. 6 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
FuncionamientoFuncionamiento
• Struts implementa el patrón del Modelo Vista Controlador (MVC) el cual se utiliza ampliamente y es considerado de gran solidez.
• De acuerdo con este modelo, el procesamiento se separa en tres secciones diferenciadas, llamadas el modelo, las vistas y el controlador:
MVC
![Page 7: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/7.jpg)
Copyright Altran SDB, 2001. All rights reserved. 7 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Funcionamiento (2)Funcionamiento (2)
• Cuando se programan aplicaciones Web con el patrón MVC, siempre surge la duda de usar un solo controlador o usar varios controladores, pues si se considera mejor usar un solo controlador para tener toda la lógica en un mismo lugar, surge un grave problema: dicho controlador se convierte en lo que se conoce como "fat controller", es decir un controlador saturado de peticiones.
• Struts surge como la solución a este problema, pues implementa un único controlador (ActionServlet) que evalúa las peticiones del usuario mediante un archivo configurable (struts-config.xml).
![Page 8: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/8.jpg)
Copyright Altran SDB, 2001. All rights reserved. 8 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
¿Cómo trabaja?¿Cómo trabaja?
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=strutsb
![Page 9: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/9.jpg)
Copyright Altran SDB, 2001. All rights reserved. 9 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Patrón MVCPatrón MVC
![Page 10: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/10.jpg)
Copyright Altran SDB, 2001. All rights reserved. 10 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Patrón MVC (2)Patrón MVC (2)
![Page 11: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/11.jpg)
Copyright Altran SDB, 2001. All rights reserved. 11 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Arquitectura funcional básicaArquitectura funcional básica
Navegador
1. Solicitud 2. Acciones
3. Resultados
4. Redireccionamiento
6. Resultado 5. Consulta
Controller(Servlet)
Model(JavaBeansy/o EJBs)
View(JSPs, TagLibs)
![Page 12: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/12.jpg)
Copyright Altran SDB, 2001. All rights reserved. 12 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Navegador
1. Solicitud 4. Perform
6. Resultado
7. Redireccionamiento
9. Resultado 8. Consulta
Objetos
de NegocioJavaBeans
View(JSPs, TagLibs)
configXML
Action
5. Acciones
Model
2. Sets y Validate
3. Resultado
Controller(Servlet)
ActionForm
Arquitectura funcional básica (2)Arquitectura funcional básica (2)
![Page 13: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/13.jpg)
Copyright Altran SDB, 2001. All rights reserved. 13 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Clases que proporcionaClases que proporcionaClases que proporcionaClases que proporciona
![Page 14: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/14.jpg)
Copyright Altran SDB, 2001. All rights reserved. 14 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
ModeloModelo
• Model = ActionForms + Actions + Objetos de Negocio
• ActionForms: Validador de formularios
• Actions: Ejecutor de acciones sobre los Objetos de Negocio: Patrón de diseño Fachada (Facade)
• Objetos de Negocio: Entidades que representan los conceptos del negocio, sus características y comportamiento
![Page 15: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/15.jpg)
Copyright Altran SDB, 2001. All rights reserved. 15 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Son JavaBeans con las siguientes características:• Extienden org.apache.struts.action.ActionForm• Implementan set y get para cada input del
formulario• Definen un método validate que retorna una lista
de errores• Opcional: método reset para reinicializarse
Modelo (2): ActionFormsModelo (2): ActionForms
![Page 16: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/16.jpg)
Copyright Altran SDB, 2001. All rights reserved. 16 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Ejemplo de ActionFormsEjemplo de ActionFormspublic final class ClienteForm extends ActionForm { private String nombre = null; ActionErrors errors = null; Cliente cliente = null; ... public ClienteForm() { ... // Crear u obtener el objeto... cliente = new Cliente(); errors = new ActionErrors; ... } public String getNombre() { return (this.nombre); } public void setNombre(String nombre) { try { cliente.setNombre(nombre);
} catch (Exception e) { errors.add("nombre", new ActionError("error.nombre")); } this.nombre = nombre; } public void reset( ActionMapping mapping, HttpServletRequest request) { this.nombre = null; } public ActionErrors validate( ActionMapping mapping, HttpServletRequest request) { ... return errors; }}
![Page 17: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/17.jpg)
Copyright Altran SDB, 2001. All rights reserved. 17 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Modelo (3)Modelo (3)
ActionForms• No debe tener nada que corresponda a la
lógica de negocio.• Debe ser un Firewall entre el usuario y el
Action que detenga todo tipo de errores de incompletitud o inconsistencia.
• Si el formulario se desarrolla en varias páginas (interfaces Wizard) el ActionForm y el Action deberán ser los mismos.
• Se debe declarar en struts-config.xml
![Page 18: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/18.jpg)
Copyright Altran SDB, 2001. All rights reserved. 18 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Modelo (4) ActionModelo (4) Action• Son clases que extienden org.apache.struts.action.ActionForm
• Implementan el método perform(ActionMapping, ActionForm, HttpServletRequest, HttpServletResponse)que retorna un ActionForward
• ActionMapping indica los posibles valores de retorno del ActionForward según el struts-config.xml
• ActionForm es el ActionForm que procesó el formulario (es nulo si no se ha definido un ActionForm en el struts-config.xml)
![Page 19: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/19.jpg)
Copyright Altran SDB, 2001. All rights reserved. 19 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Relación comando - modeloRelación comando - modelo
• Diagrama en UML que muestra la relación del Comando (ActionServlet) al Modelo (Action)
![Page 20: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/20.jpg)
Copyright Altran SDB, 2001. All rights reserved. 20 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
![Page 21: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/21.jpg)
Copyright Altran SDB, 2001. All rights reserved. 21 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
VistasVistas
• La Vista de una aplicación Struts generalmente está construida usando tecnología Java Server Pages (JSP).
• Las páginas JSP pueden contener texto HTML estático y contenido dinámico basado en la interpretación de etiquetas de acción especiales
• El entorno JSP incluye un conjunto de etiquetas estándar y posibilita construir nuestra propia librería de etiquetas
![Page 22: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/22.jpg)
Copyright Altran SDB, 2001. All rights reserved. 22 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Vistas (2)Vistas (2)
• Struts incluye una extensa librería de etiquetas personalizadas que facilitan la creación de interfaces de usuario (User Interface - UI) completamente internacionalizadas.
• Estas interfaces interactúan amigablemente con los beans ActionForm que son parte del Modelo del sistema.
![Page 23: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/23.jpg)
Copyright Altran SDB, 2001. All rights reserved. 23 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Vistas (3): Algunas etiquetasVistas (3): Algunas etiquetas
![Page 24: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/24.jpg)
Copyright Altran SDB, 2001. All rights reserved. 24 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
InternacionalizaciónInternacionalización
• Struts provee la facilidad de crear aplicaciones multilenguaje.
• Para lograrlo, debe crearse un archivo llamado ApplicationResources.propertieslogin.titulo=UDLA- ACI 843 JAVA II NetBeans
login.labelusuario=Usuario :
login.labelpassword=Password :
• Para cada idioma alternativo se creará un archivo nuevo terminado en "_xx.properties“
• Después debe configurarse el lenguaje a utilizar en el archivo struts-config.xml. <message-resources parameter="login.resources.ApplicationResources"/>
![Page 25: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/25.jpg)
Copyright Altran SDB, 2001. All rights reserved. 25 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Internacionalización (2)Internacionalización (2)• Se debe configurar el Tag /servlet/init param/paramname
application y ponerle como param-value la localización del archivo con el idioma principal:<servlet><servlet-name>action</servlet-name>...<init-param><param-name>application</param-name><param-value>com.java2.clases.ApplicationResources</param-
value></init-param>…
• Por último, En las paginas JSP se utiliza el Tag <bean:message key="clave.subclave"/>
• donde clave y subclave corresponden al texto por el que se reemplazará según el idioma del usuario. Ejemplo:<bean:message key="login.titulo"/>
![Page 26: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/26.jpg)
Copyright Altran SDB, 2001. All rights reserved. 26 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
ControladorControlador
• Recibe las solicitudes del cliente.• Decide qué función de la lógica de negocio se va a
realizar (Action).• Delega la responsabilidad para producir la
siguiente fase del interfase de usuario en un componente Vista apropiado.
![Page 27: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/27.jpg)
Copyright Altran SDB, 2001. All rights reserved. 27 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Clases ActionClases Action
• Son clases que extienden org.apache.struts.action.Action
• El objetivo de una clase Action es procesar una solicitud, mediante su método execute(), y devolver un objeto ActionForward que identifica dónde se debería reenviar el control (por ejemplo a una JSP) para proporcionar la respuesta apropiada.
• ActionMapping indica los posibles valores de retorno del ActionForward según el struts-config. xml
![Page 28: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/28.jpg)
Copyright Altran SDB, 2001. All rights reserved. 28 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
![Page 29: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/29.jpg)
Copyright Altran SDB, 2001. All rights reserved. 29 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
El archivo struts-config.xmlEl archivo struts-config.xml
Es el archivo que le define a Struts el workflow de la aplicación.Posee dos elementos importantes:1. <form-beans>• Sección que contiene nuestras definiciones de beans de formulario.
Posee dos atributos:– name: Es un identificador único para este bean, que será usado para
referenciarlo en los correspondientes action Mappings.– type: El nombre de la clase Java de nuestro bean de formulario
2. <action-mappings>• Esta sección contiene nuestras definiciones de acciones. Posee tres
atributos importantes:– name: Es un identificador único para este bean de formulario para usar con
esta acción.– type: El nombre de la clase Java de nuestra Acción– path: El path a la clase Action en relación al contexto de la aplicación.
![Page 30: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/30.jpg)
Copyright Altran SDB, 2001. All rights reserved. 30 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
EjemploEjemplo
• Si se desea crear la aplicación Struts más simple posible, por ejemplo una página con un saludo, deberá hacerse lo siguiente:
1. Una página JSP (la presentación)
2. Una clase Action (componente del controlador)
3. La clase Action debe definirse en el struts-config.xml correctamente
![Page 31: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/31.jpg)
Copyright Altran SDB, 2001. All rights reserved. 31 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Diagrama de clasesDiagrama de clases
Como puede verse, solamente tendríamos dos archivos: • una clase que hereda de struts.Action y • una JSP con la presentación.
La clase Action se configura en el struts-config.xml y se convierte en parte del controlador.
![Page 32: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/32.jpg)
Copyright Altran SDB, 2001. All rights reserved. 32 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Diagrama de colaboraciónDiagrama de colaboración
Cuando la aplicación recibe una petición, Struts decidirá que debe cargar esa clase y través de ella cargará la JSP. Así se puede ver en el siguiente diagrama:
Una petición llega a Struts (una URL). Struts mira en su “mapa” (el fichero struts-config.xml), y deduce que tiene que cargar la ClaseAction. Esta clase está configurada para que cargue una pagina JSP.Como se puede observar,no se carga la JSP directamente, hay que pasar por el controlador.
![Page 33: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/33.jpg)
Copyright Altran SDB, 2001. All rights reserved. 33 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Diagrama de secuenciaDiagrama de secuencia
• Pasos seguidos por la aplicación en el plano temporal.
• Por lo general, en cualquier aplicación Web siempre se sigue un mismo esquema:
1. Se muestra un formulario2. Se rellena3. Se valida4. Se manda a una página que realiza la lógica de
negocio5. Se muestra el resultado.• Obviamente, este no es el ejemplo más clásico
de una acción de Struts.
![Page 34: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/34.jpg)
Copyright Altran SDB, 2001. All rights reserved. 34 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
En Struts se necesitaría:1. Una clase Action (su nombre podría empezar por Edit) encargada de cargar el
formulario.2. Un Bean tipo Form cuyos campos u atributos de instancia coinciden con los
campos del formulario. (al ser tipo JavaBean tendrá los correspondientes métodos set y get para los atributos) . Este form y sus atributos son un requisito imprescindible.
3. Una JSP que contiene el formulario citado. Los campos deben coincidir con los definidos en el Bean de formulario
4. Una clase Action (su nombre podría empezar por Save) encargada de pasar la instancia del formulario al Bean de Logica de Negocio, esperar su resultado y redirigir el flujo a una JSP de error o de éxito.
5. Un Bean de lógica de negocio (El que hace algo con los datos del formulario)6. Una JSP para mostrar un mensaje en caso de éxito (o puede ser la misma del
principio)7. Una JSP para mostrar los errores en caso de error (o puede usarse una
genérica).
• Struts permite cierta flexibilidad en cuanto a nombres, pero conviene especificar cual es Action, cual es Form, cual es Bean de negocio, etc.. así como meterlos en subpaquetes con ese nombre.
Diagrama de secuencia (2)Diagrama de secuencia (2)
![Page 35: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/35.jpg)
Copyright Altran SDB, 2001. All rights reserved. 35 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Diagrama de clases (2)Diagrama de clases (2)Este sería el conjunto de clases utilizadas y sus relaciones:
La clase edit también podría usar el formulario, aunque en principio, no tiene porqué.
![Page 36: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/36.jpg)
Copyright Altran SDB, 2001. All rights reserved. 36 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Diagrama de colaboración (2)Diagrama de colaboración (2)
![Page 37: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/37.jpg)
Copyright Altran SDB, 2001. All rights reserved. 37 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
ConclusionesConclusiones
• Struts suministra un framework para implementar un diseño MVC en poco tiempo.
• Puede emplearse en cualquier aplicación Web independientemente de su funcionalidad y cuestiones de rendimiento o arquitectura.
• Es el resultado del trabajo de una comunidad con experiencias y necesidades heterogeneas que han pensado en términos generales.
• Puede extenderse aunque es recomendable seguir su filosofía de diseño.
![Page 38: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/38.jpg)
Copyright Altran SDB, 2001. All rights reserved. 38 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
BibliografíaBibliografía
• Introducción al framework Struts.PDF• STRUTS.pdf• http://www.adictosaltrabajo.com/tutoriales/
tutoriales.php?pagina=strutsb• Aplicación paso a paso con Struts• Como manejar Struts con Xdoclet
![Page 39: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/39.jpg)
Copyright Altran SDB, 2001. All rights reserved. 39 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Referencias en InternetReferencias en Internet• http://jakarta.apache.org/struts• http://jakarta.apache.org/struts/userGuide• http://jakarta.apache.org/struts/#Involved• http://jakarta.apache.org/struts/api• http://jguru.com/faq/Struts• http://jguru.com/forums/Struts• http://www-128.ibm.com/developerworks/library/j-struts/?dw
zone=java• http://www.programacion.com/java/tutorial/struts/• http://www.programacion.com/java/tutorial/joa_struts/• http://www.monografias.com/trabajos28/struts-el-
netbeans4/struts-el-netbeans4.shtml
![Page 40: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/40.jpg)
Copyright Altran SDB, 2001. All rights reserved. 40 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
EJEMPLO MÁS COMPLEJO DE STRUTS
EJEMPLO MÁS COMPLEJO DE STRUTS
Aplicación de alta
(creación e ingreso de nuevos usuarios)
a un sistema.
![Page 41: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/41.jpg)
Copyright Altran SDB, 2001. All rights reserved. 41 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Funcionalidad deseadaFuncionalidad deseada
• Ahora veremos un ejemplo más acorde con la funcionalidad esperada de una aplicación Web cualquiera.
• Se trata de una aplicación de alta de usuario, un tipo de aplicación muy común y que presenta en muchos sistemas.
• Veremos como implementar esto con struts. • En cualquier otro entorno bastaría con crear un formulario y una
página que realiza el alta y da el mensaje correspondiente; pero aquí no será tan simple.
• Entrada de aplicación: Un formulario de datos: username,
• password, • edad, • fechanacimiento y • profesion
• Salida de aplicación : Una página que muestra si se ha dado de alta correctamente.
![Page 42: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/42.jpg)
Copyright Altran SDB, 2001. All rights reserved. 42 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Diagrama de clasesDiagrama de clases
![Page 43: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/43.jpg)
Copyright Altran SDB, 2001. All rights reserved. 43 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Diagrama de ColaboraciónDiagrama de Colaboración
![Page 44: Copyright Altran SDB, 2001. All rights reserved. 1 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.](https://reader035.fdocuments.us/reader035/viewer/2022062618/54d7bd26497959bd1d8b5f07/html5/thumbnails/44.jpg)
Copyright Altran SDB, 2001. All rights reserved. 44 2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José Aranda Aboy
Pasos en NetBeans 5.0Pasos en NetBeans 5.0
1. Crear proyecto Web con la opción Struts. Dejar valores asumidos para el nombre de servlet (action) y para el Action URL Pattern ( *.do)
2. El proyecto genera automáticamente los archivos:
1. web\index.JSP2. web\welcomeStruts.JSP3. web\WEB-INF\struts-config.xml4. src\java\com\myapp\struts\
ApplicationResoure.properties
3. Utilizar y adaptar apropiadamente los archivos del ejemplo en Struts - Implementación del patron MVC en Web