SlideShare una empresa de Scribd logo
1 de 45
Desarrollo Web JSF + Spring + Hibernate Jorge Luis Palacio Pineda
Introducción ,[object Object],[object Object],[object Object]
Contenidos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Contenidos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Objetivo ,[object Object],[object Object],[object Object]
Arquitectura Hibernate JSF Spring DAO’s Services DB
Distribución Física DB (MySQL) Servidor Web Internet
Software Utilizando ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Contenidos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Creación de Proyecto ,[object Object],[object Object],[object Object],[object Object],[object Object]
Registros en web.xml (JSF) <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class> javax.faces.webapp.FacesServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping>
Explicación ,[object Object],[object Object],[object Object]
Registros en web.xml (Spring) <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <display-name>Spring Decorator</display-name> <listener-class> com.jlpp.sample.utils.SpringDecorator </listener-class> </listener> <listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener>
Explicación ,[object Object],[object Object],[object Object]
Clase SpringDecorator ,[object Object],[object Object],[object Object]
//Implementación del decorador //Los métodos omitidos deben sobreescribirse con llamadas a ccl public class SpringDecorator extends ContextLoaderListener { //Variable encapsulada del entorno private ContextLoaderListener cll; //App Web de Spring private static WebApplicationContext wac; public SpringDecorator() { cll = new ContextLoaderListener(); } //Crea el objeto interno y guarda el WebApp public void contextInitialized(ServletContextEvent arg0) { try { cll.contextInitialized(arg0); wac = WebApplicationContextUtils.getWebApplicationContext (arg0.getServletContext()); } catch(Exception e) { e.printStackTrace(); } } //Ejemplo de llamada interna public ContextLoader getContextLoader() { return cll.getContextLoader(); } public static WebApplicationContext getSpringContext() { return wac; } }
Comentarios ,[object Object],[object Object],[object Object]
Contenidos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DAO ,[object Object],[object Object],DAO Capa de  Acceso a Datos App
Implementación Básica public interface BasicDao { public boolean agregar(Object o); public boolean editar(Object o); public boolean borrar(Object o); //Buscar duplicados antes de agregar public boolean hayRepetido(Object o); //Buscar dependientes antes de borrar public boolean hayDependiente(Object o); public List cargar(); public List cargarUno(Serializable id); public List cargarCondicion(String prop, Object val); }
Ejercicio ,[object Object],[object Object],[object Object],[object Object]
Extendiendo los DAO’s ,[object Object],BasicDao GenericDao SpecialDao SpecificDao1 SpecificDao2 Métodos extra y operaciones especializadas, como cargarLibrosDeAutor o un eliminar diferente podrían estar aqui Operaciones Triviales colocadas aquí
Contenidos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
VariableResolver ,[object Object],[object Object],[object Object]
Descripción del VR ,[object Object],[object Object],[object Object]
Sobreescritura del Método ,[object Object],[object Object],[object Object],[object Object],[object Object]
Sobreescritura del Método ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sobreescritura del Método ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Implicaciones de la Implementación ,[object Object],[object Object],[object Object],[object Object]
Configuración del VR ,[object Object],<!– Configuración del VariableResolver --> <application> <variable-resolver> com.jlpp.sample.utils.SpringVariableResolver </variable-resolver> </application>
Alcance ,[object Object],[object Object],[object Object]
Contenidos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Application y ApplicationFactory? ,[object Object],[object Object],[object Object]
Redefinir el Application ,[object Object],[object Object],[object Object],[object Object]
Redefinir los métodos apropiados ,[object Object],[object Object],[object Object],[object Object],[object Object]
Sobrescribiendo createXXX ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sobrescribir createComponent ,[object Object],public UIComponent createComponent(ValueBinding bind,  FacesContext context, String nombre)  throws FacesException { try { UIComponent uic = (UIComponent) bind.getValue(context); if(uic != null) return uic; uic = interno.createComponent(nombre); return uic; } catch(FacesException fe) { return createComponent(nombre); } }
Sobrescribir createConverter ,[object Object],[object Object],[object Object],[object Object]
Métodos de Utilería ,[object Object],[object Object],public static Application crearApp(Application app) { if(app instanceof SpringApplication) return app; return new SpringApplication(app); }
Sobrescribir el ApplicationFactory ,[object Object],[object Object],[object Object]
Descripción ,[object Object],[object Object],public Application getApplication() { return SpringApplication.crearApp (original.getApplication());  } public SpringApplicationFactory() { ; } public SpringApplicationFactory(ApplicationFactory af) { super(); setApplicationFactory(af); }
Contenidos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Pegándole Hibernate ,[object Object],[object Object],[object Object]
Contenidos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Después de ,[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQuery
Javier P.
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
Steven Gomez
 

La actualidad más candente (20)

Tema 6
Tema 6Tema 6
Tema 6
 
6. Utilización del modelo de objetos del documento (DOM)
6. Utilización del modelo de objetos del documento (DOM)6. Utilización del modelo de objetos del documento (DOM)
6. Utilización del modelo de objetos del documento (DOM)
 
Uso java jdbc
Uso java jdbcUso java jdbc
Uso java jdbc
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcat
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQuery
 
Laravel vc
Laravel vcLaravel vc
Laravel vc
 
JSP
JSPJSP
JSP
 
Metodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosMetodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a Objetos
 
Laboratorio de integración JFlex y CUP
Laboratorio de integración JFlex y CUPLaboratorio de integración JFlex y CUP
Laboratorio de integración JFlex y CUP
 
2. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-20062. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-2006
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
 
Desarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularDesarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y Angular
 
Práctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScriptPráctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScript
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Iniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQLIniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQL
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
 
MVC en CakePHP 2.0
MVC en CakePHP 2.0MVC en CakePHP 2.0
MVC en CakePHP 2.0
 
C# calculadora
C# calculadoraC# calculadora
C# calculadora
 

Destacado

InstalacióN Del Entorno
InstalacióN Del EntornoInstalacióN Del Entorno
InstalacióN Del Entorno
juliocombativo
 
86535551 ciclo-de-vida-jsf
86535551 ciclo-de-vida-jsf86535551 ciclo-de-vida-jsf
86535551 ciclo-de-vida-jsf
pablo lopez
 
Fundamentos de administracion_oracle_10g
Fundamentos de administracion_oracle_10gFundamentos de administracion_oracle_10g
Fundamentos de administracion_oracle_10g
Wal
 
09b jsf (1)
09b jsf (1)09b jsf (1)
09b jsf (1)
UTN
 

Destacado (20)

InstalacióN Del Entorno
InstalacióN Del EntornoInstalacióN Del Entorno
InstalacióN Del Entorno
 
Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3
 
86535551 ciclo-de-vida-jsf
86535551 ciclo-de-vida-jsf86535551 ciclo-de-vida-jsf
86535551 ciclo-de-vida-jsf
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 
Oracle
OracleOracle
Oracle
 
Manula Oracle 2
Manula Oracle 2Manula Oracle 2
Manula Oracle 2
 
Jsf jpa-y-hibernate-capitulo-02
Jsf jpa-y-hibernate-capitulo-02Jsf jpa-y-hibernate-capitulo-02
Jsf jpa-y-hibernate-capitulo-02
 
Manualoracle 1
Manualoracle 1Manualoracle 1
Manualoracle 1
 
Intro jsf
Intro jsfIntro jsf
Intro jsf
 
Fundamentos de administracion_oracle_10g
Fundamentos de administracion_oracle_10gFundamentos de administracion_oracle_10g
Fundamentos de administracion_oracle_10g
 
Java server faces
Java server facesJava server faces
Java server faces
 
Jsf jpa-y-hibernate-capitulo-01
Jsf jpa-y-hibernate-capitulo-01Jsf jpa-y-hibernate-capitulo-01
Jsf jpa-y-hibernate-capitulo-01
 
Tutorial Jsf
Tutorial JsfTutorial Jsf
Tutorial Jsf
 
avanttic - webinar: Oracle Seguridad-Desarrollo Software (18-06-2015)
avanttic - webinar: Oracle Seguridad-Desarrollo Software (18-06-2015)avanttic - webinar: Oracle Seguridad-Desarrollo Software (18-06-2015)
avanttic - webinar: Oracle Seguridad-Desarrollo Software (18-06-2015)
 
JBossAS: Desarrollo con Java Server Faces
JBossAS: Desarrollo con Java Server FacesJBossAS: Desarrollo con Java Server Faces
JBossAS: Desarrollo con Java Server Faces
 
Oracle Coherence (by Leonardo Torres Altez)
Oracle Coherence (by Leonardo Torres Altez)Oracle Coherence (by Leonardo Torres Altez)
Oracle Coherence (by Leonardo Torres Altez)
 
Ejercicio basico jsf’s
Ejercicio basico jsf’sEjercicio basico jsf’s
Ejercicio basico jsf’s
 
06. jsf (java server faces) (1)
06. jsf (java server faces) (1)06. jsf (java server faces) (1)
06. jsf (java server faces) (1)
 
09b jsf (1)
09b jsf (1)09b jsf (1)
09b jsf (1)
 
Fundamentos de Programación. Unidad I
Fundamentos de Programación. Unidad IFundamentos de Programación. Unidad I
Fundamentos de Programación. Unidad I
 

Similar a Curso de Desarrollo Web 2

Notas clase
Notas claseNotas clase
Notas clase
1 2d
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii
1 2d
 
Notas clase
Notas claseNotas clase
Notas clase
1 2d
 
Construccion a través de compontes
Construccion a través de compontesConstruccion a través de compontes
Construccion a través de compontes
jalzate
 
Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
Sergi Almar i Graupera
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii
1 2d
 
Ejercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxEjercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docx
ssuser2e6b96
 
Introducccion springframework
Introducccion springframeworkIntroducccion springframework
Introducccion springframework
Vortexbird
 

Similar a Curso de Desarrollo Web 2 (20)

Jyoc java-cap16 persistencia. bases de datos
Jyoc java-cap16 persistencia. bases de datosJyoc java-cap16 persistencia. bases de datos
Jyoc java-cap16 persistencia. bases de datos
 
Notas clase
Notas claseNotas clase
Notas clase
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii
 
Notas clase
Notas claseNotas clase
Notas clase
 
Construccion a través de compontes
Construccion a través de compontesConstruccion a través de compontes
Construccion a través de compontes
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii
 
Introducción al desarrollo Web: Frontend con Angular 6
Introducción al desarrollo Web: Frontend con Angular 6Introducción al desarrollo Web: Frontend con Angular 6
Introducción al desarrollo Web: Frontend con Angular 6
 
Aprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDB
 
Ejercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxEjercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docx
 
spring framework
spring frameworkspring framework
spring framework
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Introducccion springframework
Introducccion springframeworkIntroducccion springframework
Introducccion springframework
 
Conexión a postgres desde
Conexión a postgres desdeConexión a postgres desde
Conexión a postgres desde
 
Clase 21 programacion ejb 3.0
Clase 21 programacion ejb 3.0Clase 21 programacion ejb 3.0
Clase 21 programacion ejb 3.0
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (10)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

Curso de Desarrollo Web 2

  • 1. Desarrollo Web JSF + Spring + Hibernate Jorge Luis Palacio Pineda
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Arquitectura Hibernate JSF Spring DAO’s Services DB
  • 7. Distribución Física DB (MySQL) Servidor Web Internet
  • 8.
  • 9.
  • 10.
  • 11. Registros en web.xml (JSF) <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class> javax.faces.webapp.FacesServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping>
  • 12.
  • 13. Registros en web.xml (Spring) <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <display-name>Spring Decorator</display-name> <listener-class> com.jlpp.sample.utils.SpringDecorator </listener-class> </listener> <listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener>
  • 14.
  • 15.
  • 16. //Implementación del decorador //Los métodos omitidos deben sobreescribirse con llamadas a ccl public class SpringDecorator extends ContextLoaderListener { //Variable encapsulada del entorno private ContextLoaderListener cll; //App Web de Spring private static WebApplicationContext wac; public SpringDecorator() { cll = new ContextLoaderListener(); } //Crea el objeto interno y guarda el WebApp public void contextInitialized(ServletContextEvent arg0) { try { cll.contextInitialized(arg0); wac = WebApplicationContextUtils.getWebApplicationContext (arg0.getServletContext()); } catch(Exception e) { e.printStackTrace(); } } //Ejemplo de llamada interna public ContextLoader getContextLoader() { return cll.getContextLoader(); } public static WebApplicationContext getSpringContext() { return wac; } }
  • 17.
  • 18.
  • 19.
  • 20. Implementación Básica public interface BasicDao { public boolean agregar(Object o); public boolean editar(Object o); public boolean borrar(Object o); //Buscar duplicados antes de agregar public boolean hayRepetido(Object o); //Buscar dependientes antes de borrar public boolean hayDependiente(Object o); public List cargar(); public List cargarUno(Serializable id); public List cargarCondicion(String prop, Object val); }
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.