Comparación entre svc y struts
Struts es uno de los marcos de MVC. Búsquelo en Baidu
=============. =========================
Hay tanta información, ¿por qué no la buscas tú mismo?
=======================================
¿Cómo implementa Struts MVC?
Introducción al Modelo 1 y al Modelo 2 en Struts MVC
Un concepto que mencionamos a menudo cuando desarrollamos aplicaciones web es Modelo1/Modelo2, entonces, ¿qué significa? De hecho, es una descripción de los diferentes modelos que forman las aplicaciones Web utilizando tecnología JSP. A continuación se ofrece una breve introducción a este concepto.
Modo 1
En el ejemplo del uso de la tecnología JAVA para crear una aplicación web, debido al desarrollo de la tecnología JSP, esta tecnología es fácil de dominar y puede lograr un rápido desarrollo pronto. se convirtió en tecnología primaria para la creación de aplicaciones web. Las páginas JSP se pueden combinar muy convenientemente con la lógica empresarial (jsp:useBean), el procesamiento del lado del servidor (las páginas JSP se pueden combinar muy convenientemente con la lógica empresarial (jsp:useBean), el procesamiento del lado del servidor (jsp:let) y HTML () En la visualización de páginas JSP, la lógica empresarial y el control de procesos se implementan al mismo tiempo, de modo que el desarrollo de aplicaciones se puede completar rápidamente. Muchas aplicaciones web ahora se componen de un conjunto de páginas JSP. Podemos llamar a este modelo de desarrollo centrado en JSP Modelo1.
Por supuesto, este modelo de desarrollo tiene grandes ventajas en el desarrollo rápido y de aplicaciones a pequeña escala, pero desde una perspectiva de ingeniería, también tiene algunas desventajas:
Aplicación El proceso de implementación de. el programa generalmente se basa en un conjunto de páginas JSP para implementar un proceso de negocio. Si desea realizar modificaciones, debe realizar modificaciones en varios lugares, lo cual es muy desfavorable para la expansión y actualización de la aplicación. p> Dado que la aplicación no está construida en base a módulos, la lógica de negocios y la lógica de presentación se mezclan en las páginas JSP sin abstracción ni separación, por lo que esto es muy perjudicial para el negocio de reutilizar y cambiar la aplicación. p> Problema, se deben utilizar diferentes patrones de diseño al desarrollar aplicaciones web a gran escala, que es el Modelo 2
Modelo 2
El Modelo 2 es un marco basado en el patrón MVC. Model-View- Abreviatura de Controlador. "Modelo" representa la lógica empresarial de la aplicación (implementada a través de JavaBeans, componentes EJB), "Ver" es la superficie de la aplicación (generada por páginas JSP) y "Controlador" proporciona la. control de proceso de la aplicación (generalmente Servlet), a través de este patrón de diseño, la lógica de la aplicación, el procesamiento y la lógica de visualización se dividen en diferentes componentes, lo que compensa las deficiencias del Modelo 1.
La ventaja es que. está componenteizado, por lo que es más fácil desarrollar y administrar sistemas a gran escala, pero el desarrollo de sistemas StrutsMVC es mucho más complicado que el simple desarrollo JSP y requiere más tiempo para aprender y dominar cosas nuevas. introducido Traerá nuevos problemas (esto me recuerda a un artículo sobre "computación automatizada", que mencionaba que para reducir la complejidad del sistema, conduce a una mayor complejidad)
Aplicación. La estructura debe repensarse y diseñarse de acuerdo con el enfoque de componentes de StrutsMVC. Lo que alguna vez fue una simple página JSP ahora se puede implementar en un proceso de diseño e implementación de varios pasos.
Se deben implementar todas las páginas y los componentes. en el marco Struts MVC, por lo que se debe realizar trabajo de desarrollo adicional.
StrutsMVC en sí es un sistema muy complejo, por lo que cuando se utiliza StrutsMVC para implementar aplicaciones web, es mejor elegir un marco MVC ya preparado para el desarrollo, que puede lograr el doble de resultado con la mitad de esfuerzo. Hay muchos marcos MVC disponibles ahora. Debido a que Struts tiene documentación completa y es relativamente simple, es más conveniente usarlo para desarrollar sistemas MVC.
2. Introducción a la estructura y el flujo de procesamiento de Struts
Struts es un proyecto de la organización Apache Al igual que otros proyectos de la organización Apache, también es un proyecto de código abierto. Struts es un mejor marco MVC que proporciona soporte subyacente para el desarrollo de sistemas MVC. Las principales tecnologías que utiliza son Servlet, JSP y customtaglibrary.
Como marco MVC, Struts proporciona los componentes de implementación correspondientes para Modelo, Vista y Controlador. Presentémoslos respectivamente para ver cómo se combinan.
Controlador: la función del controlador es aceptar solicitudes del cliente, elegir implementar la lógica de negocios correspondiente y luego enviar la respuesta al cliente. La función del controlador en Struts consta de los objetos ActionServlet y ActionMapping en la figura: el núcleo es el objeto de tipo Servlet ActionServlet, que se utiliza para aceptar solicitudes de clientes. ActionServlet incluye un conjunto de objetos ActionMapping basados en configuración. Cada objeto ActionMapping implementa una asignación entre solicitudes a objetos del controlador de acciones en una parte del modelo específica.
Modelo: Struts proporciona objetos Action y ActionForm para la parte Modelo: todos los objetos del procesador Action son subclases derivadas por los desarrolladores de la clase Action de Struts. El objeto del procesador de acción encapsula una lógica de procesamiento específica, llama al módulo de lógica de negocios y envía la respuesta al componente de Vista correspondiente para generar una respuesta. Los desarrolladores pueden derivar objetos de subclase de él y usarlos combinados con la biblioteca de etiquetas personalizadas proporcionada por Struts para lograr una buena encapsulación y soporte para los datos del formulario del cliente. El objeto del procesador de acción puede leerlo y escribirlo directamente sin tener que interactuar con él. los objetos realizan interacción de datos. Los objetos del componente ActionForm implementan soporte para la interacción entre Vista y Modelo. Struts generalmente recomienda usar un conjunto de JavaBeans para representar el estado interno del sistema. Dependiendo de la complejidad del sistema, también se pueden usar componentes como EntityEJB y SessionEJB para implementar el estado del sistema. Struts recomienda separar "qué hacer" (Acción) y "cómo hacerlo" (lógica empresarial) al implementar Struts. Esto permite la reutilización de la lógica empresarial.
Ver: La parte Ver de la aplicación Struts se implementa mediante tecnología JSP. Struts proporciona una biblioteca de etiquetas personalizadas que se pueden usar. A través de estas etiquetas personalizadas, puede interactuar bien con la parte Modelo del sistema. Al usar estas etiquetas personalizadas para crear formularios JSP, puede lograr el mapeo con el ActionForm de la parte Modelo. y el mapeo con ActionForm en la parte Modelo. Al utilizar estas etiquetas personalizadas para crear formularios JSP, puede implementar el mapeo de ActionForm con la parte Modelo para completar la encapsulación de los datos del usuario. Al mismo tiempo, estas etiquetas personalizadas también proporcionan varias funciones de visualización, como la personalización de plantillas.
El flujo de procesamiento del marco StrutsMVC refleja claramente las características del sistema MVC y la estructura de los componentes de Struts es simple.
StrutsControllerActionServlet procesa las solicitudes de los clientes y utiliza el objeto ActionMapping configurado para asignar la solicitud al objeto de procesamiento Action para su procesamiento. El objeto de procesamiento de acciones accede a los datos en ActionForm, procesa y responde a las solicitudes de los clientes y también llama a componentes Bean de backend que encapsulan una lógica empresarial específica. El objeto de procesamiento de Acción realiza el procesamiento del siguiente paso en el Controlador en función del resultado de la notificación al Controlador.
3. Desarrollo usando el framework Struts
Sistema MVC hecho con Struts
Dado que Struts nos proporciona un framework MVC muy bueno, usamos Struts para desarrollar MVC. El sistema puede acelerar significativamente el desarrollo. Uno de los procesos de desarrollo que se puede utilizar durante el desarrollo es el siguiente (citado de la Fuente 3):
Reunir y definir los requisitos de la aplicación.
Definir y desarrollar requisitos de "visualización en pantalla" basados en principios de recopilación y visualización de datos.
Definir rutas de acceso para cada visualización de pantalla.
Defina ActionMappings para establecer enlaces a la lógica empresarial de su aplicación.
Desarrollar todos los objetos de soporte para las necesidades de captura de pantalla.
Cree objetos ActionForm basados en los atributos de datos proporcionados por cada requisito de visualización de pantalla.
Desarrolle objetos Action que sean llamados por ActionMapping.
Desarrollar objetos de lógica de negocio de aplicaciones (Beans, EJBs, etc.).
Crea una página JSP que corresponda al flujo diseñado por ActionMapping.
Cree los archivos de configuración correspondientes struts-config.xml, web.xml.
Desarrollo/Pruebas/Implementación
Específicamente, cuando se utiliza el marco Struts, las partes correspondientes del trabajo de desarrollo incluyen principalmente:
Parte del modelo: uso de JavaBean y Componentes EJB, diseñar e implementar la lógica de negocio del sistema. Derive objetos de procesamiento de acciones específicos a partir de acciones en función de diferentes solicitudes. Para realizar la tarea de "qué hacer", se denominan componentes comerciales compuestos por beans. Cree una clase derivada de ActionForm para encapsular los datos del formulario del cliente.
Parte del controlador: Struts nos proporciona la implementación de la parte de control central. Solo necesitamos configurar el objeto ActionMapping
Ver parte: Para usar el objeto ActionForm en el modelo, tenemos que crear el formulario HTML usando las etiquetas personalizadas proporcionadas por Struts. Struts proporciona una biblioteca de etiquetas personalizada para escribir interfaces de usuario para separar la lógica de la aplicación de la lógica de visualización. Las etiquetas personalizadas de Struts también proporcionan muchas funciones para personalizar páginas.
Al mismo tiempo, también necesita editar dos archivos de configuración: web.xml y struts-config.xml. A través de ellos, puedes configurar la interacción entre varios módulos en el sistema Struts. La siguiente es una introducción a estos dos archivos de configuración:
Configuración del archivo web.xml:
El web.xml en la aplicación web es el primer lugar que se configura. describe el objeto Controlador del sistema.
Agregue las siguientes etiquetas en web.xml
org.apache.struts.action. ActionServlet
Descripción: este objeto servlet es proporcionado por Struts Un controlador para el que también puede especificar parámetros de inicialización, como la compatibilidad con las propiedades de la aplicación del sistema.
< SERVLET-MAPPING>
Descripción: Implemente la relación de mapeo entre la información de URL solicitada por el cliente y el procesamiento específico en el lado del servidor.
Descripción: agregue una referencia a la biblioteca de etiquetas personalizadas utilizada por la aplicación proporcionada por Struts.
Configuración del archivo struts-config.xml:
struts-config.xml se utiliza para establecer la relación entre el controlador y el modelo. Describe las reglas utilizadas por el controlador para asignar solicitudes a un procesamiento específico y también describe la asignación de datos proporcionados por el cliente a los componentes de ActionForm.
Agregue las siguientes etiquetas en struts-config.xml
Descripción: esta etiqueta describe un objeto de subclase ActionForm específico, que se puede usar junto con etiquetas personalizadas en páginas JSP para implementar el mapeo de datos entre ActionForm y View.
nombre="loginForm "input="/login.jsp"/> Descripción: esta etiqueta describe un mapeo uno a uno entre solicitudes y procesos. Los atributos de entrada y ruta identifican de forma única la solicitud del cliente, el atributo de nombre describe el objeto de subclase ActionForm que encapsula los datos del cliente y el atributo Tipo describe el objeto de subclase Action que maneja la solicitud. [1] Al configurar estos dos archivos de configuración, varias partes de MVC en el marco de Struts MVC se conectan entre sí, logrando así un sistema Struts MVC real. ===== MVC (controlador de vista modal) existía originalmente en programas de escritorio, donde M es el modelo de datos, V es la interfaz de usuario y C es el controlador. El propósito de usar MVC es separar el código de implementación de M y V para que el mismo programa pueda usarse para diferentes expresiones. Por ejemplo, un lote de datos estadísticos se puede representar en forma de gráficos de barras, gráficos circulares, etc. El propósito de C es garantizar que M y V estén sincronizados, por lo que una vez que se cambia M, V también debe actualizarse. Model-View-Controller (MVC) es un patrón de diseño de software inventado por Xerox PARC en la década de 1980 para el lenguaje de programación Smalltalk-80 y se ha utilizado ampliamente desde entonces. En los últimos años, se ha recomendado como patrón de diseño para la plataforma J2EE de Sun y se ha vuelto cada vez más popular entre los desarrolladores que utilizan ColdFusion y PHP. El patrón Modelo-Vista-Controlador es un conjunto de herramientas útil que tiene muchas ventajas, pero también algunas desventajas. Cómo funciona MVC MVC es un patrón de diseño que impone la separación de la entrada, el procesamiento y la salida de una aplicación. Al utilizar MVC, una aplicación se divide en tres componentes principales: modelo, vista y controlador. Cada uno maneja sus propias tareas. Ver Una vista es la interfaz que los usuarios ven y con la que interactúan. Para aplicaciones web más antiguas, una vista era una interfaz compuesta por elementos HTML. En las aplicaciones web más nuevas, HTML todavía juega un papel importante en la vista, pero han surgido nuevas tecnologías, incluidas Macromedia Flash y lenguajes de marcado como XHTML, XML/XSL, WML y servicios web. Cada vez es más difícil lidiar con la interfaz de su aplicación, y una de las ventajas de MVC es que le permite manejar muchas vistas diferentes para su aplicación. Ya sea que los datos se almacenen en línea o en una lista de empleados, no hay ningún procesamiento real en la vista; como vista, es solo una forma de generar los datos y permitir que el usuario los manipule. Modelos Los modelos representan datos empresariales y reglas de negocio. De los tres componentes de MVC, el modelo es el que realiza la mayor parte del procesamiento. Por ejemplo, puede utilizar objetos componentes como componentes EJB y ColdFusion para trabajar con bases de datos. Los datos devueltos por el modelo son neutrales, es decir, el modelo es independiente del formato de datos, por lo que un modelo puede proporcionar datos para múltiples vistas. La duplicación de código se reduce porque el código aplicado al modelo se escribe solo una vez y puede ser reutilizado por múltiples vistas. Controladores Los controladores reciben información del usuario y llaman a modelos y vistas para satisfacer las necesidades del usuario. Entonces, cuando se hace clic en un hipervínculo en una página web y se envía un formulario HTML, el controlador no genera nada y no se realiza ningún procesamiento. Simplemente recibe la solicitud y decide qué artefacto del modelo llamar para manejar la solicitud, y luego decide qué vista usar para mostrar los datos devueltos por el procesamiento del modelo. Para resumir el proceso MVC, el controlador primero recibe la solicitud del usuario y decide qué modelo llamar para manejar la solicitud, luego el modelo usa lógica de negocios para procesar la solicitud del usuario y devuelve los datos, y finalmente el El controlador utiliza la vista adecuada para formatear los datos de retorno del modelo y presentarlos al usuario a través de la capa de presentación. Por qué usar MVC La mayoría de las aplicaciones web se crean utilizando un lenguaje procedimental como ASP, PHP o CFML. Son una combinación de código a nivel de datos (como consultas de bases de datos) y código a nivel de presentación (como HTML). Los desarrolladores más experimentados separarán las capas de datos y de presentación, pero esto a menudo no es fácil de hacer y requiere una planificación cuidadosa y prueba y error. Si bien la creación de aplicaciones MVC requiere algo de trabajo adicional, los beneficios son innegables. En primer lugar, se pueden disfrutar múltiples vistas de un modelo, y como comentaba, cada vez hay más formas de acceder a la aplicación. Una forma de resolver este problema es utilizar MVC, ya sea que el usuario necesite una interfaz Flash o una interfaz WAP, un modelo puede manejarlos todos. Dado que ha separado los datos y las reglas comerciales de la capa de presentación, puede maximizar la reutilización de su código. Debido a que los datos devueltos por el modelo no están formateados, diferentes interfaces pueden usar el mismo artefacto. Por ejemplo, muchos datos se pueden representar en HTML, pero también en Macromedia Flash y WAP. El modelo también incluye gestión de estado y persistencia de datos, por lo que los carritos de compras basados en sesiones y los procesos de comercio electrónico también pueden ser reutilizados por sitios web Flash o aplicaciones web inalámbricas. Debido a que el modelo es independiente y está separado del controlador y la vista, es muy fácil cambiar la capa de datos y las reglas comerciales de la aplicación. Si desea migrar una base de datos de MySQL a Oracle, o cambiar una fuente de datos basada en RDBMS a LDAP, simplemente cambie el modelo. Una vez que el modelo se implementa correctamente, las vistas se muestran correctamente independientemente de si los datos provienen de una base de datos o de un servidor LDAP. Dado que los tres componentes de una aplicación que utiliza MVC son antagónicos, cambiar un componente no afecta a los otros dos, por lo que puede crear buenos componentes débilmente acoplados basándose en esta idea de diseño. Para mí, otro beneficio de los controladores es que puedes usarlos para conectar diferentes modelos y vistas para satisfacer las necesidades del usuario, lo que proporciona una forma poderosa de estructurar los medios de la aplicación. El controlador selecciona el modelo a procesar según las necesidades del usuario y luego selecciona una vista para mostrar los resultados al usuario. Desventajas de MVC La desventaja de MVC es que no es fácil entender completamente MVC porque la definición de MVC no es clara. El uso de MVC requiere una planificación cuidadosa y, debido a su compleja estructura interna, algo de tiempo para pensar. Tendrá que dedicar mucho tiempo a pensar en cómo aplicar MVC a su aplicación y, dado que el modelo y la vista están estrictamente separados, esto dificultará la depuración de su aplicación. Cada componente debe probarse minuciosamente antes de su uso. Una vez que sus componentes hayan sido probados, podrá reutilizarlos sin preocupaciones. Desde mi experiencia personal, está claro que usar MVC también significa que necesitas administrar más archivos que antes, ya que dividimos la aplicación en tres componentes. Esto puede parecernos más trabajo, pero recuerda, no es nada comparado con los beneficios que aporta. MVC no es adecuado para aplicaciones pequeñas o incluso medianas, y dedicar mucho tiempo a aplicar MVC a aplicaciones que no son muy grandes normalmente no compensa. MVC es una buena forma de crear software El patrón de diseño MVC es una buena forma de crear software y algunos de los principios que defiende (como separar el contenido y la visualización de cada uno) otros) Podría ser más fácil de entender. Sin embargo, si desea aislar los artefactos del modelo, la vista y el controlador, es posible que deba repensar su aplicación, especialmente su arquitectura. Si está dispuesto a adoptar MVC y afrontar el trabajo adicional y la complejidad que conlleva, MVC le dará a su software un nuevo nivel de solidez, reutilización de código y estructura.