disseny d’un marc de treball de presentació per a aplicacions j2ee

27
DISSENY D’UN MARC DE TREBALL DE PRESENTACIÓ PER A APLICACIONS J2EE FRANCISCO JAVIER BRAVO RAMOS Enginyeria en informàtica Josep Maria Camps Riba 17 Gener 2011

Upload: svein

Post on 05-Jan-2016

41 views

Category:

Documents


0 download

DESCRIPTION

Disseny d’un marc de treball de presentació per a aplicacions J2EE. FRANCISCO JAVIER BRAVO RAMOS Enginyeria en informàtica Josep Maria Camps Riba 17 Gener 2011. OBJECTIUS. Introducció a J2EE i els patrons de presentació. Patró Model-Vista-Controlador. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Disseny d’un marc de treball de presentació per a aplicacions J2EE

DISSENY D’UN MARC DE TREBALL DE PRESENTACIÓ PER A APLICACIONS J2EE

FRANCISCO JAVIER BRAVO RAMOS

Enginyeria en informàticaJosep Maria Camps Riba17 Gener 2011

Page 2: Disseny d’un marc de treball de presentació per a aplicacions J2EE

OBJECTIUS

1. Introducció a J2EE i els patrons de presentació. Patró Model-Vista-Controlador.

2. Estudi comparatiu de tres Frameworks actuals: Struts, Spring i Java Server Faces

3. Creació d’un nou marc de treball de presentació: FrameworkPFC.

4. Desenvolupament d’una aplicació Web que utilitzi FrameworkPFC

1. Introducció a J2EE i els patrons de presentació. Patró Model-Vista-Controlador.

2. Estudi comparatiu de tres Frameworks actuals: Struts, Spring i Java Server Faces

3. Creació d’un nou marc de treball de presentació: FrameworkPFC.

4. Desenvolupament d’una aplicació Web que utilitzi FrameworkPFC

JUSTIFICACIÓ

Aconseguir un major coneixement de J2EE.

Aprofundiment en el llenguatge Java.

Coneixement dels Frameworks actuals i la seva funció en el món empresarial.

PLANIFICACIÓ

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Page 3: Disseny d’un marc de treball de presentació per a aplicacions J2EE

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

ARQUITECTURA J2EE.

“ J2EE és una plataforma oberta i estàndard per a desenvolupar i desplegar aplicacions empresarials multicapa amb n-nivells, distribuïdes i basades en components.”“ J2EE és una plataforma oberta i estàndard per a desenvolupar i desplegar aplicacions empresarials multicapa amb n-nivells, distribuïdes i basades en components.”

Basada en components software desplegats en contenidors.

Els contenidors proporcionen serveis als components.

Defineix un mínim de 3 capes però pot tenir-ne més.

Capa Client: Applets i Aplicacions Stand – Alone.

Capa intermèdia : Lògica de negoci Capa Presentació : Servlets i JSP Capa de negoci EJB (Enterprise JavaBeans) Capa d’integració ORM, EJB entitat

Capa EIS Bases de dades relacionals

Aplicacions distribuides. Els components poden estar ubicats en diferents nodes.

Basada en components software desplegats en contenidors.

Els contenidors proporcionen serveis als components.

Defineix un mínim de 3 capes però pot tenir-ne més.

Capa Client: Applets i Aplicacions Stand – Alone.

Capa intermèdia : Lògica de negoci Capa Presentació : Servlets i JSP Capa de negoci EJB (Enterprise JavaBeans) Capa d’integració ORM, EJB entitat

Capa EIS Bases de dades relacionals

Aplicacions distribuides. Els components poden estar ubicats en diferents nodes.

Page 4: Disseny d’un marc de treball de presentació per a aplicacions J2EE

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Patró Model – Vista – Controlador - MVC

Patró d’arquitectura que separa les dades, la interfície d’usuari i la lògica d’aplicació en tres components diferents.

Model: És la representació específica de la informació amb la que opera el sistema. Aquestes dades poden ser relatiuves a la presentació o no, podent representar informació complexa provinent de diversos sistemes d’informació.

Vista: Representa la interfície amb l’usuari de l’aplicació i tots els components de presentació.

Controlador: Respon a les accions de l’usuari invocant peticions i actualitzacions del model i modificacions de les vistes.

Patró d’arquitectura que separa les dades, la interfície d’usuari i la lògica d’aplicació en tres components diferents.

Model: És la representació específica de la informació amb la que opera el sistema. Aquestes dades poden ser relatiuves a la presentació o no, podent representar informació complexa provinent de diversos sistemes d’informació.

Vista: Representa la interfície amb l’usuari de l’aplicació i tots els components de presentació.

Controlador: Respon a les accions de l’usuari invocant peticions i actualitzacions del model i modificacions de les vistes.

Avantatges: Major reutilització de codi. La modificació d’un component no afecti als altres. Major especialització dels perfils de desenvolupadors.Inconvenients: Augment de la dificultat d’aprenentatge No s’aconsegueix un desacoblament total entre les parts.

Page 5: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKS DE PRESENTACIÓ ACTUALS - STRUTS

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Open Source i compatible amb totes les implementacions J2EE. Basat en el patró MVC sota la plataforma J2EE.

Model: •Normalment POJOs. •Compatible amb JDBC, EJB, Hibernate, iBatis i Object Relational Bridge.

Controlador (ActionServlet): •Pont entre el model i les vistes.• Comportament extensible.

Vistes: •Normalment JSP. •Compatible amb JSTL i etiquetes personalitzades. •Compatible amb JSF.

Àmplia documentació i gran comunitat de desenvolupadors.

El fitxer de configuració és struts-config.xml i permet configurar:

MessageResources Fitxers de recursos. i18n. ActionMappings Mapeig d’accions Plugins Exemple: Validator.GlobalExceptions GlobalForwards FormBeans Controller Es pot proporcionar un controlador propi.

Molt flexible i fàciment configurable i ampliable.

Open Source i compatible amb totes les implementacions J2EE. Basat en el patró MVC sota la plataforma J2EE.

Model: •Normalment POJOs. •Compatible amb JDBC, EJB, Hibernate, iBatis i Object Relational Bridge.

Controlador (ActionServlet): •Pont entre el model i les vistes.• Comportament extensible.

Vistes: •Normalment JSP. •Compatible amb JSTL i etiquetes personalitzades. •Compatible amb JSF.

Àmplia documentació i gran comunitat de desenvolupadors.

El fitxer de configuració és struts-config.xml i permet configurar:

MessageResources Fitxers de recursos. i18n. ActionMappings Mapeig d’accions Plugins Exemple: Validator.GlobalExceptions GlobalForwards FormBeans Controller Es pot proporcionar un controlador propi.

Molt flexible i fàciment configurable i ampliable.

Page 6: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKS DE PRESENTACIÓ ACTUALS – SPRING MVC

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Flexible, ben documentat i fàcil d’utilitzar.

Divisió en mòduls independents i que es poden utilitzar per separat.

Construït en base a DispatcherServlet

Delega peticions a Controllers

Contenidor IOC : Injecció de dependències en temps d’execució.

Cada DispatcherServlet disposa d’un WebApplicationContext.

Flexible, ben documentat i fàcil d’utilitzar.

Divisió en mòduls independents i que es poden utilitzar per separat.

Construït en base a DispatcherServlet

Delega peticions a Controllers

Contenidor IOC : Injecció de dependències en temps d’execució.

Cada DispatcherServlet disposa d’un WebApplicationContext.

CARACTERÍSTIQUES Clara separació de rols ( Controllers, Validators, Commands, Forms, Model Objects, DispatcherServlet,etc)

Cada rol implementat per un objecte especialitzat.

Capacitat de reutilització de codi de negoci.

Sistema de validació millorat.

Compatibilitat amb JSTL, Velocity i llibreries de desenvolupament del costat del client.

Ampli repertori d’etiquetes per a les vistes.

Ofereix implementació de gran varietat de Controllers ( SimpleFormController, AbstractWizardFormController, AbstractCommandController, AbstractFormController ).

CARACTERÍSTIQUES Clara separació de rols ( Controllers, Validators, Commands, Forms, Model Objects, DispatcherServlet,etc)

Cada rol implementat per un objecte especialitzat.

Capacitat de reutilització de codi de negoci.

Sistema de validació millorat.

Compatibilitat amb JSTL, Velocity i llibreries de desenvolupament del costat del client.

Ampli repertori d’etiquetes per a les vistes.

Ofereix implementació de gran varietat de Controllers ( SimpleFormController, AbstractWizardFormController, AbstractCommandController, AbstractFormController ).

Page 7: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKS DE PRESENTACIÓ ACTUALS – JAVA SERVER FACES

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

“Framework d’interfícies d’usuari del costat del servidor per a Aplicacions Web basades en Java”.

Components:

API i implementació de referència:• Representar componentes UI ( User Interface)• Manegar events• Validacions de servidor.• Conversió de dades• Definir navegació entre vistes.• Internacionalització i accessibilitat•Extensibilitat de tots els components.

Llibreries d’etiquetes: • Personalitzar componentes dintre d’una vista.

“Framework d’interfícies d’usuari del costat del servidor per a Aplicacions Web basades en Java”.

Components:

API i implementació de referència:• Representar componentes UI ( User Interface)• Manegar events• Validacions de servidor.• Conversió de dades• Definir navegació entre vistes.• Internacionalització i accessibilitat•Extensibilitat de tots els components.

Llibreries d’etiquetes: • Personalitzar componentes dintre d’una vista.

CARACTERÍSTIQUES

Clara separació entre COMPORTAMENT i PRESENTACIÓ

Mapeig de peticions HTTP a un gestor d’events específic.

Permet definit components UI amb estat.

Permet separació de rols en el procés de desenvolupament.

No limita a la utilització d’una tecnologia d’script o etiquetes particular.

Permet la conversió de dades i validació individual sobre els components UI.

CARACTERÍSTIQUES

Clara separació entre COMPORTAMENT i PRESENTACIÓ

Mapeig de peticions HTTP a un gestor d’events específic.

Permet definit components UI amb estat.

Permet separació de rols en el procés de desenvolupament.

No limita a la utilització d’una tecnologia d’script o etiquetes particular.

Permet la conversió de dades i validació individual sobre els components UI.

Page 8: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKS DE PRESENTACIÓ ACTUALS – COMPARATIVA

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

STRUTS

-Suport per a peticions multi-part

- Excel·lent sistema de missatges.

-Tecnologia molt madura.

-Coneixeement molt estés i actualment molt usat.

- Eines de configuració molt madures:-Struts GUI-Struts Console.

- Àmplia comunitat de suport i desenvolupament.

STRUTS

-Suport per a peticions multi-part

- Excel·lent sistema de missatges.

-Tecnologia molt madura.

-Coneixeement molt estés i actualment molt usat.

- Eines de configuració molt madures:-Struts GUI-Struts Console.

- Àmplia comunitat de suport i desenvolupament.

JAVA SERVER FACES

-Més fàcil reutilització (Basat en components).

- Posibilita eines visuals de desenvolupament.

- Possibilitat de personalització.

- Estàndard Obre mercat de components.

-Potents eines de desenvolupament:-Faces Console-Sun Java Studio Creator-JSF formBuilder

JAVA SERVER FACES

-Més fàcil reutilització (Basat en components).

- Posibilita eines visuals de desenvolupament.

- Possibilitat de personalització.

- Estàndard Obre mercat de components.

-Potents eines de desenvolupament:-Faces Console-Sun Java Studio Creator-JSF formBuilder

SPRING MVC

- Framework molt robust

-Millora les capacitats d’Struts.

-Sistema de test molt senzill i madur.

- Bon sistema de validacions.

-Constant evolució i suport d’una àmplia comunitat de desenvolupament.

-Té una conba d’aprenentatge elevada.

SPRING MVC

- Framework molt robust

-Millora les capacitats d’Struts.

-Sistema de test molt senzill i madur.

- Bon sistema de validacions.

-Constant evolució i suport d’una àmplia comunitat de desenvolupament.

-Té una conba d’aprenentatge elevada.

Page 9: Disseny d’un marc de treball de presentació per a aplicacions J2EE

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

DESCRIPCIÓ

“FrameworkPFC és un nou marc de treball que facilita la creació d’aplicacions web resolent part de la problemàtica associada a la capa de presentació.”

Facilita la construcció d’aplicacions Web “Thin Client”.

Segueix l’estàndard J2EE utilitzant components Servlets i JSP.

Basat en patró MVC ( Model – Vista – Controlador).

Programat utilitzant el llenguatge Java.

Desplegat com una llibreria (.jar) en un projecte Web

Desplegat en un servidor d’aplicacions o contenidor de Servlets compatible amb la plataforma J2EE.

DESCRIPCIÓ

“FrameworkPFC és un nou marc de treball que facilita la creació d’aplicacions web resolent part de la problemàtica associada a la capa de presentació.”

Facilita la construcció d’aplicacions Web “Thin Client”.

Segueix l’estàndard J2EE utilitzant components Servlets i JSP.

Basat en patró MVC ( Model – Vista – Controlador).

Programat utilitzant el llenguatge Java.

Desplegat com una llibreria (.jar) en un projecte Web

Desplegat en un servidor d’aplicacions o contenidor de Servlets compatible amb la plataforma J2EE.

FRAMEWORKPFC – CREACIÓ D’UN NOU MARC DE PRESENTACIÓ – DESCRIPCIÓ

REQUERIMENTS D’UTILITZACIÓ

Entorn de desenvolupament Java (JDK). V.1.6 o superior.

Entorn d’execució Java (Màquina Virtual JRE), versió igual o superior a 1.6.

Servidor Web amb contenidor de Servlets o Servidor d’aplicacions J2EE .(Recomanable Tomcat 6.0 o superior)

REQUERIMENTS D’UTILITZACIÓ

Entorn de desenvolupament Java (JDK). V.1.6 o superior.

Entorn d’execució Java (Màquina Virtual JRE), versió igual o superior a 1.6.

Servidor Web amb contenidor de Servlets o Servidor d’aplicacions J2EE .(Recomanable Tomcat 6.0 o superior)

Page 10: Disseny d’un marc de treball de presentació per a aplicacions J2EE

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Funcionalitats de FrameworkPFC

Sistema de configuració Configuració de forma declarativa Fitxer de configuració. Control de flux Sistema de navegació entre les vistes. Servei d’internacionalització Servei que facilita la traducció d’una aplicació en diversos idiomes. Validació simple de formularis Captura la petició i valida els camps d’un formulari abans de realitzar cap acció. Etiquetes per a la creació de les vistes Etiquetes personalitzades que faciliten la creació i estructuració de les vistes. Tractament d’adreces Definició declarativa d’adreces globals i locals. Tractament d’excepcions Permet definir excepcions i manegadors d’excepcions tan a nivell local com global.

Funcionalitats de FrameworkPFC

Sistema de configuració Configuració de forma declarativa Fitxer de configuració. Control de flux Sistema de navegació entre les vistes. Servei d’internacionalització Servei que facilita la traducció d’una aplicació en diversos idiomes. Validació simple de formularis Captura la petició i valida els camps d’un formulari abans de realitzar cap acció. Etiquetes per a la creació de les vistes Etiquetes personalitzades que faciliten la creació i estructuració de les vistes. Tractament d’adreces Definició declarativa d’adreces globals i locals. Tractament d’excepcions Permet definir excepcions i manegadors d’excepcions tan a nivell local com global.

FRAMEWORKPFC – CREACIÓ D’UN NOU MARC DE PRESENTACIÓ – ABAST

Page 11: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKPFC – CREACIÓ D’UN NOU MARC DE PRESENTACIÓ – ARQUITECTURA

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Page 12: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKPFC – CREACIÓ D’UN NOU MARC DE PRESENTACIÓ – CONFIGURACIÓ (1)

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

1 fitxer de configuració Carregat pel mètode init del ServletController

Conté elements de configuració (Accions, adrecesGlobals, etc)

1 fitxer de configuració Carregat pel mètode init del ServletController

Conté elements de configuració (Accions, adrecesGlobals, etc)

Element Descripció Classe Javaconfiguracio Configuració global. Conté la resta d’elements. com.fwk.config.Configuration

adrecesGlobals Conté totes les adreces globals que es poden configurar.

HashMap que conté les adreces globals configurades.

desti Representa una adreça d’una vista. Local o Global.

com.fwk.actions.ActionForward

excepcionsGlobals Conté totes les excepcions globals. Seran comunes a totes les accions.

HashMap que conté les excepcions globals.

excepcio Excepció llençada per una acció. Pot ser local o Global.

com.fwk.config.exceptions.ExceptionConfig

formularis Conté tots els formularis configurats. HashMap que guarda tots els formularis definits.

formulari Representa un formulari associat a una accio. com.fwk.config.forms.FormConfig

accions Conté totes les accions configurades. HahsMap que conté totes les accions definides al fitxer de configuració.

accio Acció d’usuari com.fwk.config.actions.ActionConfig

missatges Configuració de la missatgeria

Page 13: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKPFC – CREACIÓ D’UN NOU MARC DE PRESENTACIÓ – CONFIGURACIÓ (2)

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

<?xml version="1.0" encoding="UTF-8"?><configuracio>

<!-- ADRECES GLOBALS --><adrecesGlobals>

<desti nom="error" adreca="/WEB-INF/jsp/student/studentForm.jsp" />

</adrecesGlobals>

<!-- EXCEPCIONS GLOBALS --><excepcionsGlobals>

<excepcio key="global. exception"

type="java.lang.Exception"/></excepcionsGlobals>

<!-- FORMULARIS --><formularis>

<formulari nom="alumno" tipus="test.forms.StudentsForm" />

</formularis>

<!-- ACCIONS --><accions>

<accio path="/student" name="nom" type="test.accions.StudentAction"

formulari="alumno" parametre="reqCode" validate="true"><desti nom="ok" adreca="/WEB-INF/jsp/student/studentForm.jsp" /><desti nom="list" adreca="/WEB-INF/jsp/student/studentList.jsp"/><excepcio key="numberFormat.exception" type="java.lang.NumberFormatException" path="/WEB-INF/jsp/student/studentForm.jsp"/>

</accio>

<accio path="/professor" type="com.fwk.actions.DirectAction" parametre="/WEB-INF/jsp/student/studentForm.jsp"/>

</accions><!-- MISSATGES --><missatges urlBase="test.i18.ApplicationResources"/>

</configuracio>

Page 14: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKPFC – CREACIÓ D’UN NOU MARC DE PRESENTACIÓ – CONTROL DE FLUX (1)

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Controlador

1 Controlador ServletControllerExtensible i ampliable S’ha de declarar en el fitxer de configuració de l’aplicació Web (web.xml)Carrega el fitxer de configuració en el mètode init.Delega el tractament de les peticions a Processor.

Controlador

1 Controlador ServletControllerExtensible i ampliable S’ha de declarar en el fitxer de configuració de l’aplicació Web (web.xml)Carrega el fitxer de configuració en el mètode init.Delega el tractament de les peticions a Processor.

Page 15: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKPFC – CREACIÓ D’UN NOU MARC DE PRESENTACIÓ – CONTROL DE FLUX (2)

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Processor

Allibera el controlador de responsabilitats de processament de la petició.

Segueix el patró Dispatcher.

Responsabilitats

Configurar el Locale de la petició

Cercar i crear l’acció que sol·licita l’usuari.

Crear el formulari associat a cada acció

Omplir el formulari amb les dades de la petició

Validacions simples associades als formularis.

Executar l’acció associada a la petició.

Controlar les excepcions que es produeixen a les accions.

Escollir quina vista és la següent a mostrar.

Processor

Allibera el controlador de responsabilitats de processament de la petició.

Segueix el patró Dispatcher.

Responsabilitats

Configurar el Locale de la petició

Cercar i crear l’acció que sol·licita l’usuari.

Crear el formulari associat a cada acció

Omplir el formulari amb les dades de la petició

Validacions simples associades als formularis.

Executar l’acció associada a la petició.

Controlar les excepcions que es produeixen a les accions.

Escollir quina vista és la següent a mostrar.

Page 16: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKPFC – CREACIÓ D’UN NOU MARC DE PRESENTACIÓ – CONTROL DE FLUX (3)

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Accions Implementades per l’usuari de FrameworkPFC.Han d’heretar de Action i implementar el mètode execute.

Tipus d’accions Action Accions normals. S’ha d’implementar el mètode execute. DirectAction No cal cap classe. Es configura una vista declarativament. MethodAction Diversos mètodes. El mètode és identificat per l’element de configuració

paràmetre.

Accions Implementades per l’usuari de FrameworkPFC.Han d’heretar de Action i implementar el mètode execute.

Tipus d’accions Action Accions normals. S’ha d’implementar el mètode execute. DirectAction No cal cap classe. Es configura una vista declarativament. MethodAction Diversos mètodes. El mètode és identificat per l’element de configuració

paràmetre.

Page 17: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKPFC – CREACIÓ D’UN NOU MARC DE PRESENTACIÓ – CONTROL DE FLUX (4)

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

FormBeans

Encapsulen les dades de l’usuari enviades al servidor. Són objectes JavaBean que guarden la informació enviada al servidor.Es configuren de forma declarativa com a elements de configuració.

(1) Es defineix un formulari alumne(2) Implementat per la classe StudentsForm.

Estan associats a una o diverses accions

(1) Associem el formulari “alumne” a la acció.

Realitzen validacions simples Mètode “validate”.

Envien missatges a les vistes a través d’objectes ActionMessage i ActionError.

FormBeans

Encapsulen les dades de l’usuari enviades al servidor. Són objectes JavaBean que guarden la informació enviada al servidor.Es configuren de forma declarativa com a elements de configuració.

(1) Es defineix un formulari alumne(2) Implementat per la classe StudentsForm.

Estan associats a una o diverses accions

(1) Associem el formulari “alumne” a la acció.

Realitzen validacions simples Mètode “validate”.

Envien missatges a les vistes a través d’objectes ActionMessage i ActionError.

Page 18: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKPFC – CREACIÓ D’UN NOU MARC DE PRESENTACIÓ – ESQUEMA D’INTERACCIÓ

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EEWEBAPPWEBAPP

ServletControllerServletController

PROCESSORPROCESSOR

delega

FormBeanFormBeanCrea i omple

AccióAcció

Crea i executa

Petició Web

ActionForward

Codi Vista

Adreça

Page 19: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKPFC – CREACIÓ D’UN NOU MARC DE PRESENTACIÓ – INTERNACIONALITZACIÓ

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Servei Multi-idioma

Permet mostrar textos en les vistes de diferents idiomes

Externalització del text en fitxers de configuració.

S’evita escriure el text directament a les vistes.

La classe MessageResourcesReader s’encarrega de consultar el Locale i agafar el text del fitxer de configuració adequat.

Servei Multi-idioma

Permet mostrar textos en les vistes de diferents idiomes

Externalització del text en fitxers de configuració.

S’evita escriure el text directament a les vistes.

La classe MessageResourcesReader s’encarrega de consultar el Locale i agafar el text del fitxer de configuració adequat.

Page 20: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKPFC – CREACIÓ D’UN NOU MARC DE PRESENTACIÓ – ADRECES I EXCEPCIONS GLOBALS

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Adreces Globals Es defineixen rutes accessibles per:

Totes les accions Totes les excepcions

En primer lloc es cerquen les adreces locals.Si no es troben es cerquen les adreces globals. En cas de no trobar cap adreça Es retorna la mateixa vista.

Adreces Globals Es defineixen rutes accessibles per:

Totes les accions Totes les excepcions

En primer lloc es cerquen les adreces locals.Si no es troben es cerquen les adreces globals. En cas de no trobar cap adreça Es retorna la mateixa vista.

Excepcions Globals

Durant el codi d’una acció es poden produir excepcions

Si decidim capturar-les, ho podem fer de forma declarativa A través de configuració.

Dues formes:• Definició de rutes Ruta a on dirigir el flux si s’intercepta una excepció.•Definició de manegadors d’excepcions Classe que ha de fer el tractament.

FrameworkPFC proporciona un manegador per defecte DefaultExceptionHandler

Excepcions Globals

Durant el codi d’una acció es poden produir excepcions

Si decidim capturar-les, ho podem fer de forma declarativa A través de configuració.

Dues formes:• Definició de rutes Ruta a on dirigir el flux si s’intercepta una excepció.•Definició de manegadors d’excepcions Classe que ha de fer el tractament.

FrameworkPFC proporciona un manegador per defecte DefaultExceptionHandler

Page 21: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKPFC – CREACIÓ D’UN NOU MARC DE PRESENTACIÓ – ETIQUETES PERSONALITZADES

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

ETIQUETES

Utilitzades en les vistes Facilitar la vida al programador Web.

Cada etiqueta te associat un codi Java que s’executa al servidor

Realitzen tasques complexes.

<showErrors> Etiqueta que permet mostrar els missatges d’error en forma de llistat.

<valueList> Etiqueta per a mostrar llistats d’entitats contingudes en un objecte List<Object>.El llistat had’estar en la petició.

<column> Etiqueta que representa una columna en un llistat.

<showMessage> Etiqueta per a mostrar missatges obtinguts dels fitxers de recursos.

<inputText> Etiqueta per a mostrar camps de text en una vista de forma senzilla.

ETIQUETES

Utilitzades en les vistes Facilitar la vida al programador Web.

Cada etiqueta te associat un codi Java que s’executa al servidor

Realitzen tasques complexes.

<showErrors> Etiqueta que permet mostrar els missatges d’error en forma de llistat.

<valueList> Etiqueta per a mostrar llistats d’entitats contingudes en un objecte List<Object>.El llistat had’estar en la petició.

<column> Etiqueta que representa una columna en un llistat.

<showMessage> Etiqueta per a mostrar missatges obtinguts dels fitxers de recursos.

<inputText> Etiqueta per a mostrar camps de text en una vista de forma senzilla.

Page 22: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FRAMEWORKPFC – CREACIÓ D’UN NOU MARC DE PRESENTACIÓ – VIES DE MILLORA

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Vies de MilloraDescàrrega de dades del servidor Permetre descàrrega de dades del servidor(Fitxers) fent servir eines com Jasper Reports.

Gestió d’adreces Eines com Tiles permeten identificar les adreces amb una clau facilitant la llegibilitat.

Configuracions multi-mòdul Possibilitat de tenir més d’un mòdul (+ fitxers de configuració) Formularis dinàmics Afegir la possibilitat de crear formularis dinàmics de forma declarativa.

Plug-ins Ús de plug-ins que es configuren declarativament en el fitxer de configuració Validator.

Filtres Possibilitat d’incorporar una processadors addicionals (que heretin de Processor) i que formin una FilterChain (Cadena de filtres) per a fer processaments d’una petició més complexos.

JavascriptProporcionar una llibreria d’objectes que implementin funcionalitats recurrents com la validació de formularis o el recorregut d’arbres DOM.

Mòdul AJAX Incorporar etiquetes que utilitzin AJAX per a fer peticions asíncrones al servidor d’aplicacions.

Vies de MilloraDescàrrega de dades del servidor Permetre descàrrega de dades del servidor(Fitxers) fent servir eines com Jasper Reports.

Gestió d’adreces Eines com Tiles permeten identificar les adreces amb una clau facilitant la llegibilitat.

Configuracions multi-mòdul Possibilitat de tenir més d’un mòdul (+ fitxers de configuració) Formularis dinàmics Afegir la possibilitat de crear formularis dinàmics de forma declarativa.

Plug-ins Ús de plug-ins que es configuren declarativament en el fitxer de configuració Validator.

Filtres Possibilitat d’incorporar una processadors addicionals (que heretin de Processor) i que formin una FilterChain (Cadena de filtres) per a fer processaments d’una petició més complexos.

JavascriptProporcionar una llibreria d’objectes que implementin funcionalitats recurrents com la validació de formularis o el recorregut d’arbres DOM.

Mòdul AJAX Incorporar etiquetes que utilitzin AJAX per a fer peticions asíncrones al servidor d’aplicacions.

Page 23: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FWKTEST –APLICACIÓ DE TEST– DESCRIPCIÓ I REQUERIMENTS

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Descripció

“FwkTest és una aplicació Web que es desplega en un contenidor J2EE i que utilitza FrameworkPFC com a motor de la capa de presentació”.

És una aplicació fictícia de gestió d’estudiants (Alta, baixa, modificació i llistat d’estudiants).

Dissenyada per a fer un testing del nou marc de treball No pretén tenir utilitat concreta

Les dades no es persisteixen S’utilitza un HashMap d’alumnes que s’inicia cada cop que s’entra a l’aplicació.

Descripció

“FwkTest és una aplicació Web que es desplega en un contenidor J2EE i que utilitza FrameworkPFC com a motor de la capa de presentació”.

És una aplicació fictícia de gestió d’estudiants (Alta, baixa, modificació i llistat d’estudiants).

Dissenyada per a fer un testing del nou marc de treball No pretén tenir utilitat concreta

Les dades no es persisteixen S’utilitza un HashMap d’alumnes que s’inicia cada cop que s’entra a l’aplicació.

Requeriments

Màquina virtual Java (JRE) a partir de la versió 1.6. Servidor Web amb contenidor de Servlets o servidor d’aplicacions que implementi l’especificació J2EE.

Exemple: Tomcat 6.0 com a contenidor J2EE.Navegador Web amb Javascript habilitat.

Per a fer les proves s’ha utilitzat Mozilla Firefox v.3.6.16.

Requeriments

Màquina virtual Java (JRE) a partir de la versió 1.6. Servidor Web amb contenidor de Servlets o servidor d’aplicacions que implementi l’especificació J2EE.

Exemple: Tomcat 6.0 com a contenidor J2EE.Navegador Web amb Javascript habilitat.

Per a fer les proves s’ha utilitzat Mozilla Firefox v.3.6.16.

Page 24: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FWKTEST –APLICACIÓ DE TEST– JERARQUIA DE FITXERS (1)

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Page 25: Disseny d’un marc de treball de presentació per a aplicacions J2EE

Nom de la carpeta Descripció

test.accions Classes de les accions desenvolupades

test.forms Classes dels formularis associats a les accions.

test.i18n Fitxers de properties d’internacionalització. Es fan servir per a convertir l’aplicació en multi-idioma.

test.model Classes de model que utilitza l’aplicació.

/css Fitxers d’estils de l’aplicació.

/images Fitxers .gif d’imatges que es mostren en les vistes de l’aplicació.

/jsp Pàgines JSP. Vistes de l’aplicació.

/lib Llibreries necessàries. S’inclou la llibreria FrameworkPFC.jar.

/tld Fitxers d’etiquetes utilitzades.

/WEB-INF Carpeta on es guarda el fitxer de configuració del framework i fitxers que no han d’estar disponibles des del servidor Web.

FWKTEST –APLICACIÓ DE TEST– JERARQUIA DE FITXERS (2)

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Page 26: Disseny d’un marc de treball de presentació per a aplicacions J2EE

FWKTEST –APLICACIÓ DE TEST– FLUX DE PANTALLES

DISSEN

Y D’U

N M

ARC DE TREBALL D

E PRESENTACIÓ

PER A APLICACIO

NS J2EE

Pantalla Ajuda

Pantalla Modificació/esborrat Pantalla Alta estudiant

Pantalla Autenticació

Pantalla Principal de llistat d’estudiants

Page 27: Disseny d’un marc de treball de presentació per a aplicacions J2EE

Construcció d’un nou framework de presentació– CONCLUSIONS

Conclusions

La realització d’un marc de treball de presentació és una tasca molt atractiva des del punt de vista de disseny i programació, però molt complexa, ja que són moltes les funcionalitats a oferir.

La realització del present projecte de final de carrera ha estat centrada en dos grans blocs: Estudi i comparativa dels frameworks més importants que hi ha en ús a l’actualitat. Disseny, implementació i testeig d’un nou marc de treball.

Els coneixements i l’experiència adquirida han permès: Tenir una visió crítica més documentada per a escollir entre les diferents solucions disponibles al mercat. Adquirir pràctica en els desenvolupaments Java sota la plataforma J2EE. Repercussió que té en el món empresarial reduint costos econòmics i temporals.

Conclusions

La realització d’un marc de treball de presentació és una tasca molt atractiva des del punt de vista de disseny i programació, però molt complexa, ja que són moltes les funcionalitats a oferir.

La realització del present projecte de final de carrera ha estat centrada en dos grans blocs: Estudi i comparativa dels frameworks més importants que hi ha en ús a l’actualitat. Disseny, implementació i testeig d’un nou marc de treball.

Els coneixements i l’experiència adquirida han permès: Tenir una visió crítica més documentada per a escollir entre les diferents solucions disponibles al mercat. Adquirir pràctica en els desenvolupaments Java sota la plataforma J2EE. Repercussió que té en el món empresarial reduint costos econòmics i temporals.