sábado, 7 de agosto de 2010

Conceptos Básicos de Struts 2

Bueno gente para comenzar mi primer post , les dejare un poco de teoría conceptos básicos que es lo mínimo que un estudiante que quiere aprender esta framework al menos en teoría debe conocer espero les sea de utilidad :

Struts 2

Apache Struts 2 es un elegante, extensible Framework para la creación de aplicaciones Web en Java. Este Framework está diseñado para simplificar el ciclo de desarrollo completo de aplicaciones web, desde la construcción, pasando por la implementación y mantenimiento de aplicaciones a lo largo del tiempo.

Cabe indicar que Struts está basado en el Patrón MVC (Modelo-Vista-Controlador).este framework fue originalmente conocido como WebWork 2. Que luego paso a fusionarse con Struts para lograr formar Struts 2 (ojo! para aclarar también existe una versión Struts 1 ) , trabajaremos bajo Struts 2 por que según mi propio criterio me parece un poco más sencilla que Struts 1 y porque en el curso de IWEB también se usa Struts 2 así que ni modo ... xD

  • Pero por que se usa M-V-C como patrón de diseño de las aplicaciones web?

o Porque es una arquitectura que busca reducir el acoplamiento dividiendo las responsabilidades en 3 capas claramente diferenciadas:

§ El modelo: que hace referencia a los datos que maneja la aplicación y las reglas de negocio que operan sobre ellos y que se traducen en Struts 2 en las acciones.

§ La vista: encargada de generar la interfaz con la que la aplicación interacciona con el usuario. En Struts 2 equivale a los resultados o mejor dicho los Jsp’s que se mostraran en pantalla.

§ El controlador: que comunica la vista y el modelo respondiendo a eventos generados por el usuario en la vista, invocando cambios en el modelo, y devolviendo a la vista la información del modelo necesaria para que pueda generar la respuesta adecuada para el usuario. El controlador se implementa en Struts 2 mediante el filtro FilterDispatcher

  • Pero porque usar Struts 2?

Bueno hay muchos puntos de vista pero yo pienso en lo particular que por que Struts permite reducir el tiempo de desarrollo no es muy tedioso como trabajar con Servlets (sobre todo en el mantenimiento de las aplicaciones ) aunque Struts se basa en la tecnología de Servlets, Struts es mucho más simple y fácil así que no se asusten muchachos es solo leer y practicarlo , esto se verá más adelante al momento de realizar sus ejemplo , pero como adelanto les diré recuerdan la conexión a un a BD en su curso de PAW , bueno aquí olvídense de programar un método para acciones de borrar , guardar , modificar, etc. , casi ni veremos a los famosos DriverManager, Resultset, preparedStatement entre otros .

Otro punto importante que nos interesa de sobre manera es que tiene carácter de "software libre" y su compatibilidad con todas las plataformas en las que Java Entreprise esté disponible lo convierten en una herramienta altamente disponible.

Con Struts 2 se introdujeron algunas mejoras sobre la primera versión, de cara a simplificar las tareas más comunes en el desarrollo de aplicaciones web, así como mejorar su integración con AJAX, etc.

  • Y se Preguntaran como Funciona Struts 2, y como lo hace, cual es la magia que debo aprender o cosas así, bueno allí les va….

Para no dejar los componentes definidos y no relacionados, y para mejorar el entendimiento del framework, vamos a explicar cómo funciona todo junto.

1. Llega un Request a la aplicación.

2. El Request es interpretador por el DispatcherFilter? y determina que Action y que conjunto de Interceptors invocar.

3. Cada Interceptor ejecuta sus acciones previas a la ejecución del método de Action a invocar

4. Es invocado el método del Action.

5. Cada Interceptor ejecuta sus acciones posteriores a la ejecución del método de Action a invocar

6. Se examina el resultado obtenido del Action y se determina el Result correspondiente.

7. Mediante el Result determinado se genera la vista, y según la configuración definida sobre él se invoca el proceso de generación de la vista.

8. La vista generada retorna al cliente

Y Cuáles son sus principales componentes pasare a describir un poco de ellos...

Los principales componentes de framework son:

ü DispatcherFilter

ü Interceptors

ü Actions

ü Results

Ø DispatcherFilter

Es el punto de entrada del framework. A partir de él se lanza la ejecución del procesamiento para cada request que involucre al framework. Sus principales responsabilidades son:

o Ejecutar los Actions

o Comenzar la ejecución de la cadena de interceptor

o Limpiar el ActionContext (para evitar memory leaks). El ActionContext es el contexto sobre el cual se ejecuta un Action.

Ø Interceptors

Son clases que siguen el patrón interceptor, Se encargan de interceptar la invocación a un Action. Permiten realizar operaciones antes y después de la invocación de un Action. También permiten evitar que un Action se ejecute, Nos sirve para realizar cierta funcionalidad que queremos aplicar a un conjunto de Actions.

Struts2 trae definidos un conjunto de interceptors por defecto, que le permite realizar un conjunto de acciones sobre los Actions.

Ø Actions

Los Actions serán lo encargados de ejecutar la lógica necesaria para manejar un request determinado.los Actions no están obligados a implementar o heredar de una interfaz o clase ya definida. Pueden ser POJOs. Igualmente, struts2 posee una interfaz Action. Esta interfaz permite definir el método por defecto que se ejecutará sobre el Action para que no tengamos que definirlo por otro medio.

También existe una implementación de esta interfaz, denominada ActionSupport, que nos provee funcionalidad de gran utilidad necesaria por un conjunto de Interceptors para poder manipular el Action a invocar.

Ø Results

Los Results son Objetos que encapsulan el resultado de un Action. Los Actions de la aplicación simplemente devolverán un String en sus métodos. Un Action puede devolver diferentes resultados luego de su ejecución. Cada uno de estos resultados se corresponde con un Result, previamente configurado en Struts2. La configuración de cada Result determina principalmente: el tipo de vista a mostrar (JSP, Velocity Templates, FreeMarker, entre otros), el recurso asociado a dicha vista, el nombre asociado al Result (mediante este y el resultado del Action se determina el Result a utilizar).

Herramientas que debemos utilizar?

Las Herramientas usadas en el curso de IWEB son:

o Netbeans 8.5

o Tools y Administrator de Mysql

o Contenedor de Aplicaciones Tomcat

o Librerías (estas las iré subiendo para que las descarguen dependiendo de la aplicación que desarrollemos )

o Oracle 10g (opcional)

Todas estas herramientas las pueden ir buscando en la web están libres para su descarga.

Y para acabar por el día de hoy daré una pequeña explicación de las librerías que utilizare en mi siguiente post, donde desarrollare el famosísimo Hola Mundo! Estas librerías son

o commons-logging.jar. Se trata de una librería genérica que nos posibilita el registro de sucesos (logging).

o freemarker.jar. Es un motor para trabajar con plantillas en nuestra parte de Vista.

o ognl.jar. Es una librería para trabajar con EL.

o struts2-core.jar. El núcleo de Struts2. Si la abres de casualidad fíate en el nombre de los paquetes.

o xwork.jar. Es un framework que nos proporciona Inversión de Control, EL, validaciones

o Commons-FileUpload.jar: agrega robustez y facilidad para el alto rendimiento de las aplicaciones webs.

Bueno gente este es mi primer aporte un poco de teoría para poder entender mejor la práctica no cae nada mal, espero que la lean y busquen en internet alguna duda vale la consulta se le responderá.

Por el día de hoy solo me queda agradecer a la gente por el tiempo que se dedican a aprender este framework y pedirles que si encuentran alguna duda o si pueden colaborar con alguna corrección o alguna sugerencia o crítica constructiva sobre el tema que se toco puesto que yo tampoco lo se todo y lo mas probable que me haya equivocado en algo pero se les agradece hacerme llegar su corrección y si es factible se realizara la corrección, alguna duda a mi email xxmanu23xx@gmail.com , esto es todo por el día de hoy gente suerte…!!!!

viernes, 6 de agosto de 2010

Bienvenidos !!!!!

Bienvenidos a mi Blog personal que esta vez lo utilizare para apoyar de alguna manera a la gente del Curso de Ingeniería Web (IWEB) en lo más que sea posible, pues como todos sabemos no es un secreto que la mayoría que ingresa por primera vez al curso de IWEB entra temerosa por que dicen uyyy y ahora a programa en Java!!! agggg y Struts 2 uff que difícil noooo yo no quiero , mejor me busco al chancon de la clase para que me apoye(solo asisto a las reuniones de trabajo con mi grupo y no me preocupo por aprender) , bueno gente llegue a apoyarlos en algo lo poco que pude aprender del curso que en realidad no es difícil ni los que enseñan son del inframundo por que cuando entran , entran con un miedo , lo digo por que cuando fue mi primera clase de laboratorio el profesor preguntaba y nadie contestaba .... y parecía por miedo o por no quedar mal , pero en realidad no es muy difícil , mi objetivo es ayudar a esa gentita que después de clases siempre le queda una duda pero por miedo a las risas de los demás no pide que se las aclaren , en cada posteo tratare de mostrar ejemplos simples para la comprensión y donde podrán ir dejando sus comentarios y en lo posible poder contestarles sus inquietudes , OJO con esto no quiero presentarme como alguien que todo lo sabe es mas mi intención es aprender más con ustedes con lo poco que se apoyarlos y así ustedes cuando mejoren cada día tendrán nuevas ideas que también me podrían enseñar y así entre todos poder colaborar para mejorar , bueno no quiero alargar mucho esto solo decirles que me centrare donde pienso yo que la gente sufre más en la programación con el Framework Struts 2 dictado por el Ingeniero Luis Canaval , dicho sea de paso le envió un saludo así como también al Ingeniero Enrique Cárdenas .... , bueno muchachos comencemos....

Atte manu