Professional Documents
Culture Documents
M.B.W.
Objetivo
Desarrollar aplicaciones web como aplicaciones locales con Java Swing.
Cmo lo hace?
Gestionando las acciones del usuario de paginas HTML, traducindolas a eventos , envindolas al servidor y regenerando la pagina original reflejando los cambios.
JSF
Qu es JSF?
JSF es un Framework de trabajo para aplicaciones J2EE basadas en el patrn MVC. Caractersticas principales: Utiliza pginas JSP para generar las vistas, aadiendo una biblioteca de etiquetas propia para crear los elementos de los formularios HTML.
Caractersticas I
Asocia cada vista con un conjunto de objetos manejados por el controlador (managed beans) que facilitan la recogida, manipulacin y visualizacin de valores mostrados en los elementos de formularios. Introduce una serie de etapas en el proceso de la peticin : como la de validacin, reconstruccin de la vista, recuperacin de los valores de los elementos, etc.
Caractersticas II
Utiliza un sencillo fichero de configuracin para el controlador en formato xml. Es extensible, pudiendo crearse nuevos elementos de la interfaz o modificar los ya existentes. y lo que es ms importante:
Por qu utilizarlo?
Nos permite desarrollar rpidamente aplicaciones dinmicas basadas en Java, creando pginas para las vistas muy sencillas.
Ventajas de JSF
El cdigo JSF con el que creamos las vistas (etiquetas jsp) es muy parecido al HTML estndar. Lo pueden utilizar fcilmente desarrolladores y diseadores web. JSF se integra dentro de la pgina JSP y se encarga de la recogida y generacin de los valores de los elementos de la pgina. JSF resuelve validaciones, conversiones, mensajes de error e internacionalizacin.
Mas ventajas
JSF es extensible, por lo que se pueden desarrollar nuevos componentes a medida. Tambin se puede modificar el comportamiento del Framework mediante APIs que controlan su funcionamiento.
Beneficios de JSF
Especificacin estndar, implementacin de distintos fabricantes. La programacin de la UI se realiza a travs de componentes y esta basada en eventos. Es muy flexible Separacin clara entre el comportamiento y la presentacin.
Como Funciona
Esta basado en un conjunto de pantallas que interactan con el usuario. Estas pantallas contienen textos, botones, imgenes, tablas y elementos de seleccin que el usuario modifica. La principal funcin del controlador JSF es asociar a las pantallas, las clases java que recogen la informacin, y que disponen de mtodos que responden a las acciones del usuario.
Como Funciona II
JSF nos resuelve de manera muy sencilla y automtica muchas tareas muestra datos al usuario en cajas de texto y tablas. Recoge los datos introducidos por el usuario en los campos del formulario. Controla el estado de los formularios segn el estado de la aplicacin, activando, ocultando o aadiendo y eliminando controles y dems elementos.
Elementos principales:
Pginas JSP - Formularios JSF. Pginas que generan las vistas de la aplicacin. Beans java - Que se conectan con los formularios JSF. Clases java Lgica de negocio y utilidades. Ficheros de configuracin, componentes a medida y otros elementos del framework. Resto de recursos de la aplicacin web: recursos estticos, javascript y otros elementos.
JSF vs Struts
JSF es posterior a TRUTS. Persigue el mismo objetivo : normalizar y estandarizar el desarrollo de aplicaciones web. Muy similares, ambos implementan la interfaz de usuario con paginas JSP.
Porque Struts?
Mas potente y extendido, Permite el acceso directo al controlador. Control de acceso por cada accion que realiza el usuario. Potente manejo de Layouts que permite crear plantillas reutilizables en multiples paginas. Realiza validaciones tanto en el lado servidor como cliente.
Comparativa
Frameworks Atributos
Layout Management - Tiles support
Struts
SI SI SI SI
JSF
Control de eventos Soporta control de excepciones Transaction Management support Navegacion de paginas Tipos de conversiones
NO SI NO NO SI
IndicThreads.com Java Meet June 2006
Participantes
Autores de Paginas
Lenguaje HTML, usaran exclusivamente la librera de etiquetas
Desarrolladores de aplicaciones
Programan: objetos del modelo, manejadores de eventos, validadores y navegacin de paginas
Escritores de componentes
Programar UI desde cero.
Vendedores de herramientas
Proporcionan herramientas para mejoran la tecnologa JSF.
Instalacion y requisitos
Kit de desarrollo de Java (JDK) Un servidor web (Tomcat, JBoss) Implementacion de referencia de JavaServer Faces
Casi todas las IDEs del Mercado soportan Java Server Faces.
Borland JBuilder Enterprise Eclipse with Exadel Studio Pro IDE Eclipse with Nitrox JSF IDE IBM Rational with JSF Support Macromedia Dreamweaver with JSTL & JSF extensions MyEclipse with JSF Designer Oracle's JDeveloper IDE Sun's Java Studio Creator IndicThreads.com Java Meet June 2006
MVC en JSF
Nos permite separar : La lgica de control (que cosas hay que hacer pero no como) La lgica de negocio (como se hacen las cosas) La lgica de presentacin (como interaccionar con el usuario)
MVC en JSF
Aceptar
Componentes necesarios
Dos paginas (index.jsp y Hola.jsp) Un Bean : Manejar datos de usuario (UsuarioBean.java) Archivo de configuracion : Recursos del Bean y reglas de Navegacion. (faceconfig.xml). Archivos necesarios para el servlet : web.xml
MVC: Modelo
El objeto que representa y trabaja directamente con los datos del programa:
Gestiona los datos y controla todas sus transformaciones. No tiene conocimiento de los diferentes controladores y/o vistas, ni siquiera contiene referencias a ellos.
MVC: Modelo
UsuarioBean.java
Public class UsuarioBean { Private String nombre; Private String password; //Atributo nombre public String getNombre() { return nombre;} Public void setNombre(String nuevoValor) {nombre = nuevoValor; } //Atributo password public String getPassword() { return password;} Public void setPassword(String nuevoValor) {password = nuevoValor; } }
MVC: Modelo
La comunicacin entre el modelo y el sistema JSF se realiza mediante el fichero: Faces-config.xml (managed-bean)
<managed-bean> <manes-bean-name>usuario</manages-bean-name> <manes-bean-class>UsuarioBean</manages-bean-class> <manes-bean-scope>session</manages-bean-scope> </managed-bean>
MVC: Vista
Objeto que maneja la presentacin visual de los datos gestionados por el modelo. Genera la representacin visual y muestra los datos.
MVC: Vista
index.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <f:view> <head> <title> Una simple aplicacin JavaServer Faces </title> </head> <body> <h:form> <h3>Por favor, introduzca su nombre y password.</h3>
MVC: Vista
<table> <tr> <td>Nombre:</td> <td> <h:inputText value="#{usuario.nombre}"/> </td> <tr> <td>Password:</td> <td> <h:inputSecret value="#{usuario.password}"/> </td> </table> <p> <h:commandButton value="Aceptar" action="login"/> </p> </h:form> </body> </f:view> </html>
MVC: Vista
JSF conecta la vista y el modelo mediante: <h:inputText value=#{usuario.nombre}/> El vinculo se realiza declarando el campo de texto (inputText) en la vista, recogiendo el valor del atributo nombre del bean llamado usuario.
MVC: Controlador
Objeto que proporciona significado a las ordenes del usuario, actuando sobre los datos representados por el modelo. Entra en accin cuando se realiza alguna operacin. Se comunica con el modelo y la vista a travs de una referencia al propio modelo.
MVC: Controlador
Acta mediante lneas de cdigo: <h:inputText value="#{usuario.nombre}"/> <h:inputSecret value="#{usuario.password}"/> <h:commandButton value="Aceptar" action="login"/>
MVC: Controlador
Y mediante reglas de navegacin contenidas en el fichero facesconfig.xml. <navigation-rule> <from-view-id>/index.jsp</from-view-id> <navigation-case> <from-outcome>login<from-outcome> <to-view-id>/hola.jsp</to-view-id> <navigation-case> </navigation-rule> Y mediante la vista que establece la accin <h:commandButton value="Aceptar" action="login"/>
MVC: Controlador
Fichero web.xml
<web-app> <servlet> <servlet-name>Faces Servlet<servlet-name> <servlet-class>javax.faces.weapp.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> <welcome-file-list> <welocome-file>index.html</welcome-file> </welcome-file-list> <web-app>
MVC: Controlador
La directiva <servlet> establece el nico servlet de nuestra aplicacin, es el propio del Framework JSF. La directiva <servlet-mapping>indica la url para acceder al servlet definido. <welcome-file-list> se establece la pagina de inicio de la aplicacin. La cual se redirecciona a index.faces.
Conclusin
Para un proyecto nuevo, la eleccin es sencilla, como dice el propio creador de Struts: utiliza JSF.