Académique Documents
Professionnel Documents
Culture Documents
Autores Gary Williams Lynn Munsinger Patrice Daux Colaboradores Tcnicos y Revisores Jeff Gallus Pam Gamer Duncan Mills Editor Joseph Fernandez
Copyright 2004, Oracle. Todos los derechos reservados. Esta documentacin contiene informacin propiedad de Oracle Corporation; se suministra bajo los trminos de un contrato de licencia que contiene restricciones de uso y de revelacin y est tambin protegida por la legislacin de derechos de autor. Queda prohibida la ingeniera invertida del software. Si esta documentacin se entrega a una agencia del Ministerio de Defensa del Gobierno de EE.UU., se aplicar la siguiente advertencia de Restricted Rights: Restricted Rights Legend Use, duplication or disclosure by the Government is subject to restrictions for commercial computer software and shall be deemed to be Restricted Rights software under Federal law, as set forth in subparagraph (c)(1)(ii) of DFARS 252.227-7013, Rights in Technical Data and Computer Software (October 1988). Este material ni ninguna parte del mismo podr ser reproducido en cualquier forma o a travs de cualquier medio sin el expreso consentimiento por escrito del grupo Education Products de Oracle Corporation. La reproduccin es una violacin de la ley de derechos de autor y puede tener consecuencias penales o civiles. Si esta documentacin se entrega a una agencia del Gobierno de EE.UU. no perteneciente al Ministerio de Defensa, se aplicar la advertencia de Restricted Rights definida en FAR 52.227-14, Rights in Data-General, incluido Alternate III (junio de 1987). La informacin contenida en este documento est sujeta a cambio sin previo aviso. Si detecta cualquier problema en la documentacin, le agradeceremos lo comunique por escrito a Worldwide Education Services, Oracle Corporation, 500 Oracle Parkway, Box SB-6, Redwood Shores, CA 94065. Oracle Corporation no garantiza que este documento est exento de errores. Toda referencia a Oracle y a los Productos de Oracle constituyen marcas comerciales o marcas comerciales registradas de Oracle Corporation. Todos los dems nombres de compaas y productos mencionados se utilizan a los exclusivos fines de su identificacin y pueden ser marcas comerciales de sus respectivos propietarios.
Introduccin
Objetivos
Al finalizar este curso, debera estar capacitado para: Disear e implementar servicios de negocio mediante Oracle ADF Business Components Generar y probar componentes completos como una aplicacin ADF entera Generar vistas Web para una aplicacin, mediante herramientas declarativas en Oracle JDeveloper 10g Utilizar Oracle JDeveloper 10g para definir la funcionalidad de interfaz de usuario y el flujo de aplicaciones basado en Struts
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Describir la plataforma J2EE (Java 2 Enterprise Edition) Describir las ventajas del desarrollo de aplicaciones basado en el marco Describir el objetivo y las ventajas de Oracle ADF Describir la arquitectura MVC (Model-View-Controller) Describir las tecnologas utilizadas en cada uno de los niveles MVC
Plataforma J2EE
Es un modelo de aplicaciones distribuidas de varias capas Soporta aplicaciones J2EE basadas en componentes
Mquina cliente Capa de cliente Servidor J2EE Capa Web Capa de negocio Servidor de Bases de Datos Capa EIS
Explorador/ Aplicacin
JSP/ Servlet
Servicios de Negocio
Base de datos
Capa EIS
JSP/ Servlet
Servicios de Negocio
Base de datos
JNDI JDBC
JTA JavaMail
Marco
Fomenta las mejores prcticas de J2EE mediante la implementacin de patrones de diseo J2EE estndar (MVC) Proporciona un entorno flexible y amplio permitiendo varios estilos de desarrollo y opciones de tecnologa
Declarativo
Panel Structure Inspector de propiedades
Patrones de Diseo
Patrones de diseo:
Son soluciones demostradas a problemas concretos Son medios para un fin, no el fin en s mismo Estn dirigidos a tareas de programacin, no a problemas de negocio Son reutilizables Proporcionan un marco para resultados que se pueden volver a crear
Servicios de Negocio
Controlador
Modelo
Explorador/ Aplicacin
Base de datos
Vista
Estructura MVC
Controlador
Maneja el direccionamiento a la pgina correcta Asigna los cambios de datos de la interfaz de usuario al modelo
Mostrar
Enviar pgina
Datos y transacciones
Vista
Presenta la interfaz de usuario Solicita datos del modelo Enva eventos al modelo Permite al controlador seleccionar la vista siguiente
Modelo
Solicitar datos
Almacena el estado de la aplicacin Responde a solicitudes de datos Encapsula la lgica de negocio
Qu es el Modelo?
Se trata de un wrapper y de abstraccin de servicios de negocio:
Maneja los eventos de datos del controlador Suministra datos a la vista
Vista Modelo
Controlador
El Nivel de Modelo
Modelo Enlaces ADF Control de Datos ADF Servicios de Negocio
Beans de Sesin EJB
Clases Java
Servicios Web
JDBC
Clases Java
Asignacin TopLink
Controles de datos:
Metadatos que describen el modelo de datos devuelto por el servicio de negocio
Los metadatos tienen el mismo formato para todos los servicios de negocio.
Enlaces ADF Control de Datos ADF
Qu es el Controlador?
En una pgina Web, todo lo significativo se produce a travs de una ejecucin o un enlace. El controlador intercepta una solicitud y la distribuye a la pgina correcta. La pgina de origen no tiene que conocer cmo manejar un evento o dnde ir a continuacin. El cdigo de manejo no tiene que conocer qu pgina debe mostrar como respuesta. El controlador separa el modelo y la vista. El controlador gestiona el flujo de una aplicacin Web.
Struts en JDeveloper
JDeveloper utiliza Apache Struts como controlador. Es popular entre desarrolladores J2EE. Est implantado desde 2000. Se ha diseado para manejar vistas en funcin de la tecnologa HTTP.
Controlador: Resumen
El controlador es clave en la separacin MVC y para promover un nuevo uso del nivel y el cdigo. Apache Struts es el estndar de facto para controladores de aplicacin Web. Oracle JDeveloper 10g soporta Struts como controlador.
Qu es la Vista?
La vista de MVC es la interfaz de usuario de la aplicacin. Se trata de lo que ve el usuario y con lo que interacta.
Vista
Controlador
Modelo
Copyright 2004, Oracle. Todos los derechos reservados.
Concepto de Vista
La vista no contiene cdigo de aplicacin; contiene cdigo para representar la interfaz de usuario y transferir eventos al controlador. Las vistas se pueden intercambiar sin volver a escribir la lgica del controlador o el modelo. Una sola aplicacin puede tener diferentes vistas compatibles con diferentes tipos de dispositivos (explorador HTML, dispositivos de mano, etc.).
Vista: Resumen
La vista slo contiene cdigo de visualizacin. La vista no contiene lgica de aplicacin. La vista no contiene lgica de navegacin. La vista es independiente del controlador y el modelo.
Vista
JSP
ADF UIX
JSF
Controlador
Struts
Servicios Web
JavaBeans/ Otros
ADF: Resumen
Desarrollo completo productivo
Model-View-Controller Visual Declarativa
Resumen
En esta leccin ha aprendido a: Identificar las ventajas del desarrollo de aplicaciones basado en el marco Describir la plataforma J2EE (Java 2 Enterprise Edition) Definir los componentes de la arquitectura Model-ViewController Describir las ventajas de ADF (Oracle Application Development Framework) Describir las tecnologas utilizadas en cada uno de los niveles MVC
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Identificar el ciclo de procesos tpico para el desarrollo de una aplicacin ADF Enumerar las principales funciones de tiempo de diseo utilizadas para crear aplicaciones ADF Utilizar la aplicacin del curso para consultar productos y realizar una transaccin
Vista
JSP
JSF
ADF UIX
Controlador
Struts
Servicios Web
JavaBeans/ Otros
Ejemplo de Aplicacin
Se trata de una aplicacin JSP o Struts de dos pginas Se basa en el esquema Oracle Order Entry que se incluye con la Base de Datos Oracle 10g
Creacin de Aplicaciones
1. 2. 3. 4. Crear un espacio de trabajo de la aplicacin. Seleccionar el mbito de tecnologa. Disear los servicios de negocio del modelo. Disear el flujo de pgina de la aplicacin para el controlador. 5. Crear pginas para la vista.
Resultados
Haga clic con el botn derecho del mouse en Customers DataPage y seleccione Run.
Resumen
En esta leccin ha aprendido a: Crear una aplicacin por defecto simple mediante JDeveloper Describir y utilizar un espacio de trabajo de aplicacin Crear ADF Business Components por defecto Crear un diagrama de flujo de pginas simple Crear y editar pginas JSP
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Identificar los dos grupos de componentes de negocio Definir el propsito y la funcin de los componentes de negocio Crear un objeto de entidad Crear un objeto de vista Crear un mdulo de aplicacin Utilizar el explorador de Business Components para probar una aplicacin
Vista
JSP
JSF
ADF UIX
Controlador
Struts
Servicios de Negocio
Servicios Web
JavaBeans/ Otros
Business Components
El marco Business Components comprende dos grupos de componentes: Componentes de dominio de negocio
Aplica las reglas de negocio Objetos de entidad, asociaciones de entidad y tipos de objetos personalizados
Asociaciones de entidad
Aplica reglas relacionales entre objetos de entidad
Objetos de vista
Proporcionan acceso de cliente a datos Son recopilaciones de datos para acceso de cliente
Enlaces de vista
Enlazan objetos de vista para la coordinacin maestro-detalle
Customers
Orders
OrderItems
3. Pruebe la conexin.
Se puede crear un objeto de entidad para cada una de las tablas que se quieran representar en la aplicacin.
Las vistas pueden tener enlaces que gestionen las relaciones maestro-detalle entre objetos de vista.
PriorityOrder
ItemList
Customers
Orders
OrderItems Products
Resumen
En esta leccin ha aprendido a: Describir los dos grupos de componentes de negocio Definir el rol de Business Components Describir el rol de un mdulo de aplicacin Describir el uso de vistas personalizadas
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Decidir dnde colocar la lgica de negocio Describir el rol de los objetos de entidad en la implementacin de la lgica de negocio Crear objetos de entidad Describir los distintos mtodos para implementar la lgica de negocio en ADF Business Components Agregar la lgica de negocio a una aplicacin ADF Business Components Utilizar el modelador de Business Components para crear y gestionar componentes de negocio
Capa EIS
Controlador
Base de datos
Validacin de cliente
Atributos
Regla de validacin
CUSTOMERS ID 201 202 NAME Steve Mike STATUS Gold Silver Email msmith@company.com dgonzales@company.com
Objeto de Entidad
Representa una tabla de base de datos u otro origen de datos Maneja toda la interaccin entre las bases de datos Contiene atributos que representan las columnas de la base de datos Encapsula la lgica de validacin de nivel de atributo y nivel de entidad Puede contener mtodos de negocio personalizados
Cliente
Orden
Adicin de Validacin
ListValidator: Ejemplo
Especifique una lista de valores para Customers.Status.
Customers.xml
UniqueKeyValidator: Implementa la validacin en la capa media Comprueba la unicidad de la clave primaria para un objeto de entidad Comprueba que los valores sean nicos en la cach de la entidad
Dominios
Utilice dominios para validaciones ms complejas:
Formato de un nmero de telfono Validez de una URL Validez de una direccin de correo electrnico El total de control de dgitos de un nmero de tarjeta de crdito
La validacin se realiza a travs del constructor de dominios. Un dominio no est ligado a un atributo o entidad en particular. Puede utilizar los dominios para validar varios atributos en distintos objetos de entidad.
Copyright 2004, Oracle. Todos los derechos reservados.
Dominios: Ejemplo
URLDomain verifica que un atributo es una URL vlida. El mtodo validate() se llama mediante el constructor del dominio.
URLDomain.java
protected void validate() { try { // Make sure the user entered a valid URL java.net.URL u = new java.net.URL(mData); } catch (java.net.MalformedURLException e) {throw new oracle.jbo.domain.DomainValidationException ("Invalid URL"); }
Resumen
En esta leccin ha aprendido a: Implementar la lgica de negocio declarativa Crear objetos de entidad Crear cdigo Java para los objetos de entidad Validar atributos de entidad mediante reglas de validacin u objetos de dominio Utilizar el modelador de Business Components
Objetivos
Al finalizar esta leccin, debera estar capacitado para hacer lo siguiente: Describir el rol de los objetos de vista en el marco de Business Components Crear objetos de vista Personalizar objetos de vista mediante el asistente View Object Definir las relaciones entre los objetos de vista Agregar atributos calculados a los objetos de vista Explicar el rol de un mdulo de aplicacin Crear un mdulo de aplicacin
Copyright 2004, Oracle. Todos los derechos reservados.
Capa EIS
Base de datos
Visin General
Objeto de entidad Customers ID Name Status Web site Objeto de vista CustomerStatus SELECT name, status FROM customers ORDER BY name Name Mike Steve Susan
ID 201 202
Objetos de Vista
Presentan una vista o una porcin de los datos de negocio Se utilizan para unir, filtrar, proyectar y ordenar los datos de negocio Se pueden basar en cualquier nmero de objetos de entidad Tambin se pueden generar a partir de una sentencia SQL
PriorityOrder CustomerStatus
Order
Customers
getAttr()
OV
getCalcAttr() OV
Copyright 2004, Oracle. Todos los derechos reservados.
El estado de pedido se cambia en una vista. El nuevo valor se muestra inmediatamente en otras vistas basadas en la misma entidad.
Copyright 2004, Oracle. Todos los derechos reservados.
ViewRowImpl
Es la clase de la fila de vista. Representa una fila de un objeto de vista. Utilice esta clase para agregar o sustituir comportamientos que se aplican a una fila del objeto de vista.
Enlaces de Vista
Un enlace de vista es un enlace activo entre dos objetos de vista. Se pueden crear enlaces de vista proporcionado lo siguiente:
Vistas de origen y destino Atributos de origen y destino
OrderForItem Enlace
Recorrido de Enlaces
Los enlaces se pueden recorrer en ambas direcciones. ViewRowImpl.java contiene un mtodo para obtener el iterador de fila asociada. Debe utilizar los mtodos de RowIterator para mover de fila a fila y obtener valores de atributo individuales. Por ejemplo, OrdersViewRowImpl contiene el mtodo:
public oracle.jbo.RowIterator getOrderItemsView()
Capa EIS
Controlador
Base de datos
Mdulos de Aplicacin
Representan el modelo de datos para los clientes Realizan el seguimiento de todos los cambios que afectan a la base de datos Tienen una conexin con la base de datos Proporcionan mtodos de acceso remoto Se pueden desplegar en varias plataformas sin cambiar el cdigo Pueden contener otros mdulos de aplicacin
Resumen
En esta leccin ha aprendido a: Describir el rol de los objetos de vista en el marco de Business Components Crear objetos de vista Personalizar objetos de vista mediante el asistente View Object Definir las relaciones entre los objetos de vista Agregar atributos calculados a los objetos de vista Explicar el rol de un mdulo de aplicacin Crear un mdulo de aplicacin
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Agregar mtodos personalizados para validar datos de negocio Utilizar mtodos de acceso a datos de tipo seguro Utilizar asociaciones de entidad en la lgica de negocio Atravesar asociaciones de entidad
Visin General
Objeto de Entidad Customers Id Name Status Email Orders Id CustomerId OrderMode OrderTotal Entity Method Validator Atributo Method Validator Dominio Tipo de validacin Regla de negocio El nombre no puede contener ms de 50 caracteres El correo electrnico debe contener un smbolo "@" y "." Debe existir el correo electrnico del cliente Si el valor de OrderMode es "ONLINE"
Validacin de Atributos
Para crear una validacin personalizada de atributos, puede: Crear un MethodValidator en el archivo EntityImpl.java o Modificar el mtodo setter() del atributo en el archivo EntityImpl.java
Orden de Validacin
La validacin de atributos se produce en el siguiente orden: Validacin de dominio: en la instanciacin de un objeto de entidad Mtodo definidor: en la creacin o modificacin de un atributo Validadores predefinidos: En una llamada a setAttributeInternal() Atributo MethodValidators Mtodo validateEntity() Entidad MethodValidators Mtodo doDML() Mtodo beforeCommit()
Copyright 2004, Oracle. Todos los derechos reservados.
Asociaciones
Las asociaciones definen una relacin entre los objetos de entidad. Las asociaciones: Facilitan el acceso a los datos en objetos de entidad relacionados Se pueden basar en restricciones de base de datos Pueden ser independientes de las restricciones de base de datos Estn compuestas de una entidad (maestra) de origen y una entidad (detalle) de destino
Ejemplo de Asociacin
Un cliente puede realizar uno o varios pedidos. Un pedido lo realiza un solo cliente.
Customers Origen
OrderPlacedBy Asociacin
Orders Destino
Mtodos de Acceso
Son mtodos opcionales creados mediante un asistente de asociaciones Proporcionan acceso a los datos desde la entidad asociada Son bidireccionales Por ejemplo:
Obtener todos los pedidos de un cliente Obtener informacin del cliente desde un pedido
Tipos de Asociacin
Asociacin
Las entidades estn relacionadas pero no son completamente dependientes. Cualquier extremo de la asociacin puede existir sin el otro. Normalmente es una categorizacin.
Composicin
La entidad de destino es completamente dependiente de la entidad de origen. La entidad de origen posee la entidad de destino. No se puede crear ninguna entidad de destino sin que exista primero la entidad propietaria.
El archivo EntityImpl.java de la entidad de destino contiene mtodos para obtener y definir la entidad de origen. Por ejemplo, LineItemImpl.java contiene getOrd() y setOrd(). Puede agregar un mtodo a LineItemImpl.java para obtener el nmero de seguimiento del pedido que contiene este elemento:
public String getTrackingNo() { return getOrd().getTrackingNo(); }
Copyright 2004, Oracle. Todos los derechos reservados.
El archivo EntityImpl.java de la entidad de origen contiene un mtodo para obtener la entidad de destino. Por ejemplo, OrdImpl.java contiene el mtodo:
public oracle.jbo.RowIterator getLineItem()
Debe utilizar los mtodos de RowIterator para pasar de fila a fila y obtener valores de atributo individuales.
Copyright 2004, Oracle. Todos los derechos reservados.
Resumen
En esta leccin ha aprendido a: Agregar reglas de negocio a ADF Business Components Validar entidades, atributos y dominios Probar las reglas de validacin
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Crear objetos de vista en modo experto Utilizar consultas parametrizadas en objetos de vista Implementar mtodos personalizados Crear un programa Java para probar mtodos personalizados
Visin General
Objeto de vista CustomerOrders Customers ID Name Status Email Orders Id CustomerId OrderMode OrderTotal Mtodo personalizado getFullName() select c.name, o.order_total from customers c, orders o where c.id=o.customer_id
Durante el tiempo de ejecucin, el valor del atributo Status no se corresponde con el valor de la tabla subyacente. Si se realiza una actualizacin con la vista se produce un error de bloqueo.
Copyright 2004, Oracle. Todos los derechos reservados.
Utilice objetos de vista basados en SQL para vistas de slo consulta, que no necesitan la funcionalidad de objetos de entidad. Los objetos de vista basados en SQL proporcionan un mejor rendimiento que los objetos de vista basados en entidad.
SELECT... OV
Resumen
En esta leccin ha aprendido a: Crear objetos de vista de modo experto y de programacin Personalizar ADF Business Components para que incluya mtodos personalizados Utilizar consultas parametrizadas en objetos de vista Probar los mtodos personalizados utilizando un cliente Java de lnea de comandos
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Definir JAAS (Java Authentication and Authorization Services) Definir problemas de seguridad con respecto a aplicaciones Web Utilizar funciones de tiempo de diseo de seguridad de modelos ADF Utilizar el explorador de ADF Business Components para probar su modelo de seguridad
Autenticacin
Lectura/Escritura Aplicacin
JDeveloper proporciona asistentes y cuadros de dilogo que ayudan a gestionar estos objetos.
Privilegios de Entidad
El rol users puede actualizar filas nuevas. El rol administrators puede actualizar cualquier fila. El rol guests slo puede leer cualquier fila.
Permisos de Atributo
Los atributos heredan los permisos de entidad. Los permisos se pueden sustituir en el nivel de atributo. Se aplican los permisos ms restrictivos, por ejemplo:
Si define read-only en el nivel de entidad, no puede definir update en el nivel de atributo. Update, en el nivel de entidad, puede tener readonly en el nivel de atributo.
Resumen
En esta leccin ha aprendido a: Definir el configurador de conexin para aplicaciones ADF BC Activar la autenticacin de JAAS para ADF BC Agregar usuarios y roles Agregar permisos especficos de rol a entidades y atributos Probar un esquema de seguridad de aplicacin ADF BC
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Definir el rol del controlador en la arquitectura MVC Definir la navegacin de pgina en una aplicacin Struts Manejar la navegacin de excepciones y de correccin Definir las distintas formas de editar la configuracin de Struts
El Controlador
Capa de Cliente Capa Media Web Container
Capa de servicios de negocio de ADF Modelo
Mdulo de aplicacin ADF Objeto de vista ADF Objeto de entidad ADF
Capa EIS
Controlador
Base de datos
Controlador
Struts
Servicios Web
JavaBeans/ Otros
Objetivo de un Controlador
En una pgina Web, todo lo significativo se produce a travs de una ejecucin o un enlace. Un controlador intercepta una solicitud y la distribuye correctamente. La pgina de origen no tiene que conocer cmo manejar un evento o dnde ir a continuacin. El cdigo de manejo no tiene que conocer qu pgina debe mostrar como respuesta. El controlador separa el modelo y la vista.
page1a.jsp
Copyright 2004, Oracle. Todos los derechos reservados.
page1a.jsp
Copyright 2004, Oracle. Todos los derechos reservados.
page1.jsp
page2.jsp
<a href="page1a.jsp">
<a href="page1a.jsp">
page1a.jsp
Copyright 2004, Oracle. Todos los derechos reservados.
page1.jsp
page2.jsp
Siguiente
Anterior
page1.jsp
page2.jsp
page1a.jsp
Copyright 2004, Oracle. Todos los derechos reservados.
Qu es Struts?
Un proyecto de Apache Software Foundation http://jakarta.apache.org/struts Un marco de origen abierto para aplicaciones MVC basadas en Web
Un servlet de controlador basado en XML
Estndar de facto para el desarrollo de modelo 2 de JSP Parcialmente declarativo y parcialmente codificado Se suele utilizar con otros niveles de vista
Mosaicos: mecanismo de diseo de pgina que utiliza plantillas JSP Velocidad: lenguaje de archivo de comandos de pgina
Componentes Struts
Vista
JSP
Pantalla de accin
Controlador
Configuracin de Struts
Accin
Modelo
Componentes Struts
Servlet de Controlador de Struts: gestiona las solicitudes y resultados de canalizacin de datos entre sistemas Archivo de configuracin de Struts: mapa para el servlet Acciones: procesa una solicitud y reenva acciones Pantallas de accin: transfiere informacin entre el cliente y el modelo Bibliotecas de etiquetas: juego de etiquetas de bibliotecas Struts que se utilizan con JSP Grupos de recursos: archivo basado en texto que se utiliza con la internacionalizacin de mensajes
Accin
Modelo
execute()
Reenviar Pgina
Devolver respuesta
Internacionalizacin de la Aplicacin
Para internacionalizar una aplicacin, realice los siguientes pasos: Cree otro archivo de grupos.
Agregue el cdigo de pas al nombre de archivo, como ApplicationResources_fr.properties. Traduzca el texto del mensaje: logon.title=Entrez votre nom dutilisateur
A continuacin, el servlet comprueba la variable de cdigo local del explorador durante el inicio, y si lo encuentra, se carga el archivo correspondiente. De lo contrario, se carga el archivo por defecto.
<struts-config> <action-mappings> <action path="/action1"> <forward name="success" path="/page1.do"/> </action> </action-mappings> <message-resources parameter="view.ApplicationResources"/> </struts-config>
Copyright 2004, Oracle. Todos los derechos reservados.
<struts-config> <action-mappings> <action path="/action1" type="view.Action1Action"> <forward name="success" path="/page1.do"/> </action> <action path="/page1" forward="/page1.jsp"/> </action-mappings> <message-resources parameter="view.ApplicationResources"/> </struts-config>
Las pginas necesitan existir fsicamente para poder utilizarlas como destino de un reenvo o un enlace
Copyright 2004, Oracle. Todos los derechos reservados.
DataAction
Creada como una accin autnoma para ejecutar mtodos personalizados del servicio de negocio Maneja acciones estndar procedentes de pginas de datos enlazados
Copyright 2004, Oracle. Todos los derechos reservados.
Resumen
En esta leccin, debera haber obtenido informacin sobre las aplicaciones Struts: El servlet de controlador Struts intercepta cada solicitud. El archivo struts-config.xml define los componentes:
Acciones (procesa una solicitud) Reenvos de acciones (transfiere datos de pantalla HTML) Reenvos de pgina y/o pginas (simboliza la vista del usuario en relacin con el resultado de una accin) Grupos de recursos (creacin de componentes de etiquetas y texto) Navegacin (reenvos y enlaces de pgina)
Copyright 2004, Oracle. Todos los derechos reservados.
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Describir cmo funciona una JSP Describir los componentes fundamentales de una JSP Crear una JSP Incluir componentes en una JSP (etiquetas JSTL, HTML y Struts) Crear una JSP centrada en datos mediante el enlace de datos ADF
Qu es una JSP?
Las JSP son un componente J2EE que: Es una vista en la estructura MVC de ADF Contiene lgica de presentacin Mezcla HTML, Java y XML en una pgina Permite a desarrolladores Web crear aplicaciones centradas en el aspecto de una aplicacin Est basado en la arquitectura de servlet Soporta el uso de beans y etiquetas personalizadas para incorporar la lgica de presentacin
Copyright 2004, Oracle. Todos los derechos reservados.
Solicitud
Llama
Cliente
JSP Genera
Struts
Controla
Ejemplo: JSP
<%@ page contentType="text/html;charset=WINDOWS-1252"%> <html> <head> <title> Show Date </title> </head> <body> <h2> The current time is: </h2> <p> <%= new java.util.Date() %> </p> </body> </html>
Objetivo Cdigo Java Cdigo Java que se evala Valores globales Declaraciones de variable
Directivas
Directivas de JSP
Hay tres tipos de directivas de JSP: page include taglib
<%@ page contentType="text/html;charset=WINDOWS1252"%> <%@ include file="signature.html" %>
JDeveloper y JSP
JDeveloper contiene varias funciones IDE para simplificar el desarrollo de JSP: Editor visual (WYSIWYG) Paleta de Componentes Se incluyen muchas bibliotecas de etiquetas personalizadas, entre ellas:
JSTL (JSP Standard Tag Library) Apache Struts Oracle JSP ADF Data Tags
El Editor Visual
Proporciona edicin directa de:
Texto Elementos HTML Controles de datos
Uso del prefijo para llamar a una etiqueta y especificar atributos si es necesario
<c:out value="avalue"></c:out>
Copyright 2004, Oracle. Todos los derechos reservados.
Etiquetas de Struts
La tecnologa Apache Struts contiene una biblioteca de etiquetas personalizadas para su uso con las JSP. Hay varias categoras de bibliotecas de Struts disponibles en la paleta de componentes, entre ellas: Struts HTML Logic Struts Beans Templates Nested Tiles
Copyright 2004, Oracle. Todos los derechos reservados.
Arrastre componentes de Data Control Palette al editor visual de una JSP para mostrar datos. Utilice el recuadro de lista Drop As para seleccionar el estilo del control.
Operaciones
Las operaciones son acciones de datos que interactan con un objeto de vista completo o con un mdulo de aplicacin completo. Entre ellas se incluyen: Create: crea una nueva fila en el objeto de vista Find: navega a una fila concreta en el objeto de vista Delete: elimina la fila actual Execute: enva una consulta Navigation sets (First Set, Last Set, First y Next) Commit: confirma un mdulo de aplicacin completo Rollback: realiza rollback de los cambios en un mdulo de aplicacin
Copyright 2004, Oracle. Todos los derechos reservados.
Personalizacin de Controles
Seleccione View > Property Inspector para modificar las propiedades de control. Para las operaciones, tambin puede hacer clic dos veces en el botn para modificar el nombre y el valor.
Resumen
En esta leccin ha aprendido a: Crear pginas JSP que utilizan scriptlets, expresiones y declaraciones para generar contenido dinmico Incorporar bibliotecas de etiquetas en pginas JSP para fomentar el diseo centrado en componentes de las aplicaciones JSP Agregar ADF Business Components a una JSP a travs de Data Control Palette
Personalizacin de Acciones
Objetivos
Al finalizar esta leccin, debera estar capacitado para hacer lo siguiente: Describir la estructura y los elementos XML de Struts Describir la anatoma de una accin Utilizar el mtodo de ejecucin para mejorar el comportamiento de una accin Describir el uso de los beans de pantalla Utilizar un bean de pantalla dinmico
/auth
public class AuthUserAction extends Action { /* This is the main action called from the Struts framework.*/ public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { return mapping.findForward("success"); } }
Reenvos
success
Los reenvos se pueden definir: Mediante el uso del diagrama de flujo de /authUser pginas En el archivo XML En el panel Structure
/page1
failure /page2
<action path="/authUser" type="view.AuthUserAction"> <forward path="/page1.do" name="success"/> <forward path="/page2.do" name="failure"/> </action>
El nombre de reenvo representa un nombre lgico. Un reenvo tambin puede ser un reenvo global.
Beans de Pantalla
User Name Password Logon
Conexin
Envo authUser
Rellena
logonBean men
Beans de Pantalla
Un bean de pantalla se utiliza para transportar datos entre una pgina y una accin. Puede ser esttico:
Se define como una clase FormBean Contiene mtodos set(), get(), y reset()para cada campo Contiene un mtodo validate() para verificar la entrada de usuario
/authUser
public class AuthUserActionForm extends ActionForm { String username; public String getUsername() { return username; } public void setUsername(String newUsername) { username=newUsername; } public void reset( public ActionErrors validate( }
Conexin
men
Conexin
men
Conexin
<action path="/authUser" name="logonBean" type=" view.AuthUserAction "> <forward path="/logon.do name="failure"/> <forward path="/menu.do name="success"/> </action>
<action path="/menu" forward="/menu.jsp"/> </action-mappings>
men
Conexin
Envo
logonBean men
Conexin
<form-beans> <form-bean name="logonBean" type="org.apache.struts. action.DynaActionForm"> <form-property name="username" type="java.lang.String"/> <form-property name="password" type="java.lang.String"/> </form-bean> </form-beans>
men
Conexin
Envo
Transferido a
Rellena
logonBean men
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { DynaActionForm LAF = (DynaActionForm) form; String un = (String)LAF.get("username"); String pw = (String)LAF.get("password"); if (un.equals("Scott")) { return mapping.findForward("success"); } else return mapping.findForward("failure"); }
Conexin
Envo
Transferido a
Rellena
logonBean men
Resumen
En esta leccin ha aprendido a: Describir la estructura y los elementos XML de Struts Describir la anatoma de una accin Utilizar el mtodo de ejecucin para mejorar el comportamiento de una accin Describir el uso de los beans de pantalla Utilizar un bean de pantalla dinmico
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Describir acciones de datos y pginas de datos Personalizar acciones de datos y pginas de datos para mejorar el comportamiento de una aplicacin Utilizar acciones de datos para acceder a varios tipos de servicios de negocio Describir la relacin entre pginas de datos enlazados y pginas de datos
Arrastre la pgina de /browseCustomer datos al diagrama de flujo de pginas. El archivo strutsconfig.xml se actualiza mediante la accin de datos. <action-mappings> <action path="/browseCustomers" className="oracle.adf.controller.struts.actions.DataActi onMapping" type="oracle.adf.controller.struts.actions.DataForwardAc tion" name="DataForm" parameter="unknown"/> </action-mappings>
Visualizacin de Datos
Para mostrar datos desde la pgina de datos, agregue elementos desde Data Control Palette: Datos enlazados Navegacin Operaciones Los controles de datos asociados a la accin de datos se definen en DataBindings.cpx (se crean automticamente).
Visualizacin de Datos
Seleccione elementos desde Data Control Palette y arrstrelos hasta la pgina:
Cdigo generado
<c:forEach var="Row" items="${bindings.CustomersView1.range Set}"> <tr><td> <c:out value="${Row.CustomerId}"> </c:out></td>
Copyright 2004, Oracle. Todos los derechos reservados.
setCurrentRowWithKey
Delete
Copyright 2004, Oracle. Todos los derechos reservados.
2. Crear lista de eventos 3. Comprobar los enlaces de modelos 4. Comprobar si se permiten actualizaciones 5. Procesar actualizaciones
8. Llamar a mtodos personalizados 9. Refrescar controles de enlace 10. Distribuir para reenviar
Llamadas mediante:
Botn con el nombre event_<operation>, por ejemplo, event_Commit. Enlace de hipertexto con un parmetro event=< operation>, por ejemplo, event=Commit.
Llamadas mediante:
public void onCommit(DataActionContext ctx) { HttpSession session = ctx.getHttpServletRequest().getSession(); Boolean loggedOn = (Boolean)session.getAttribute("AUTHFLAG"); if (loggedOn.booleanValue()) { ctx.getEventActionBinding().doIt(); } }
public void onFoo(DataActionContext ctx) { // just direct the flow to the "foo" forward ctx.setActionForward("foo"); }
Resumen
En esta leccin ha aprendido a: Crear pginas de datos asignadas a servicios de negocio Crear aplicaciones Web que utilicen pginas de datos Personalizar acciones de datos y pginas de datos para mejorar el comportamiento de una aplicacin
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Validar la entrada de pantalla Utilizar la validacin declarativa Utilizar la validacin en el cliente Utilizar las indicaciones de control para modificar la vista
JSP
Accin de Struts
JavaScript
Necesidad de Validacin
Por lo general, en las aplicaciones Web, el usuario no recibe formacin sobre cmo completar los campos correctamente. As, una aplicacin debe proporcionar feedback al usuario para estos tipos de acciones: Introduccin de valores necesarios Especificacin de valores dentro de un rango especificado Comparacin de valores
Por ejemplo, Password1 se debe corresponder con Password2.
Observe que puede especificar el atributo de propiedad de la etiqueta <html:errors> para imprimir slo el error correspondiente:
<html:text property="username"></html:text> <html:errors property="username" />
Validacin de Acciones
Un segundo tipo de validacin consiste en sobrescribir el mtodo de ejecucin en la clase de accin. Este tipo de validacin es til cuando: Se han creado previamente clases que comprueben la validez de un valor determinado El usuario no desea que los valores de pantalla se reestablezcan tras la validacin La lgica de validacin es compleja
El Mtodo execute()
Para validar la entrada de usuario en la clase de accin, sobrescriba el mtodo execute(), llamando al mtodo de validacin:
public ActionForward execute { LogonActionForm logonForm = (LogonActionForm) form; String un = logonForm.getUsername(); String pw = logonForm.getPassword(); LoginValidation loginvalidation = new LoginValidation(); if ( loginvalidation.checkUsernamePassword(un,pw)) { return mapping.findForward("success"); } else return mapping.findForward("failure"); }
Resultados de Validacin
1. El usuario introduce una conexin incorrecta (validacin de accin). 2. El usuario no introduce datos (validacin de bean de pantalla).
Validador de Struts
Valide de forma declarativa campos de pantalla mediante el validador de Struts. El plugin del validador: Est basado en XML
validator-rules.xml (reglas de validacin) validations.xml (usos)
Define las reglas de cada campo en un bean de pantalla Puede proporcionar la validacin de cliente mediante JavaScript Es ampliable
Cree validation.xml para validar campos de pantalla y asegrese de que todos los campos de pantalla que se van a validar contienen una entrada en ApplicationResources.properties:
Logon.username=username Logon.password=password
validation.xml: Ejemplo
<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd "> <form-validation> <formset> <form name="logonbean"> <field property="password" depends="required" > <arg0 key="logon.password" /> </field> </form> </formset> </form-valiidation>
Manejo de Excepciones
Para implementar el manejo de excepciones: 1. Cree una clase para el manejo de excepciones, que subclasifique org.apache.struts.action.ExceptionHandler 2. Sustituya el mtodo execute()para procesar la excepcin 3. Devuelva un objeto ActionForward 4. Configure el manejador de excepciones en el archivo struts-config.xml 5. Cree un mensaje de excepcin en ApplicationResources.properties
JavaScript
JavaScript se soporta en JDeveloper como una manera sencilla de incorporar la validacin.
Mejora de la Vista
Utilice las indicaciones de control para modificar el modo en que un atributo se muestra en un cliente.
Resumen
En esta leccin ha aprendido a: Validar la entrada de pantalla mediante:
El mtodo validate() La clase de accin El validador de Struts
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Utilizar el inspector de propiedades para modificar componentes visuales Utilizar el panel Structure para modificar elementos de datos Agregar elementos de navegacin
Inspector de propiedades:
CSS File
untitled1.css
Cursor
Utilice eventos de botones. Se llevan a cabo la accin de pantalla ms los eventos definidos.
Uso de Atributos EL
Para hacer referencia a atributos: Pngalos entre ${} Andelos mediante notacin de puntos o [] Incluya mbito de manera opcional
Operadores
Se puede agregar lgica de visualizacin condicional mediante EL Por ejemplo, se muestra un mensaje y valor slo si el valor no est vaco.
Resumen
En esta leccin ha aprendido a: Utilizar el inspector de propiedades para modificar componentes visuales Utilizar el panel Structure para modificar elementos de datos Utilizar EL para agregar lgica de visualizacin condicional
Adicin de botones de navegacin a una JSP Adicin de un botn a una JSP que llama a una pgina Web externa Creacin de una hoja de estilo y su aplicacin a la JSP
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Describir cmo funciona JAAS (Java Authentication and Authorization Services) en una aplicacin Web Utilizar JAAS para agregar seguridad a una aplicacin Agregar usuarios y roles a un descriptor de despliegue de la aplicacin Agregar seguridad de JAAS a una aplicacin Web
Proveedor de JAAS
El proveedor de JAAS soporta:
Almacenamiento, recuperacin y administracin de: - Informacin de dominios (usuarios y roles) - Poltica (permisos) Repositorios mltiples: - Basados en XML - Basados en LDAP Mdulos de conexin
Determinar las restricciones de autorizacin: quin puede hacer qu. Decidir el tipo de proveedor:
Archivo plano basado en XML LDAP (Oracle Internet Directory)
JAZNUserManager
Oculta contraseas en un almacenamiento de archivos planos Soporta un control de acceso total basado en roles Soporta completamente un modelo de permisos Java 2
Copyright 2004, Oracle. Todos los derechos reservados.
Autenticacin de Clientes
Autenticacin:
Determina quines son los clientes Lo pueden demostrar?
Autorizacin de Clientes
La autorizacin de clientes se especifica en descriptores de despliegue J2EE. Cada cliente obtiene un principal de seguridad. Un cliente puede llamar a una URL o un mtodo slo si el rol del cliente tiene los derechos asociados. El contenedor J2EE aplica las polticas de seguridad y proporciona herramientas para gestionar la seguridad. Struts incluye roles en el nivel de nodo.
OracleAS
JAAS
La configuracin de Struts incluye un esquema de autorizacin. El esquema especifica la autorizacin en el nivel de nodo. Especifique el rol autorizado en el inspector de propiedades.
Propiedades de web.xml
Para implementar la seguridad de JAAS, modifique: Roles de seguridad: agregue el rol de seguridad que desee utilizar. Agregue un recurso Web:
Especifique cualquier nombre nico. Agregue un patrn de URL para validar. En la pgina del separador Authorizations, seleccione el rol de usuario.
Resultados de web.xml
<web-app> <security-constraint> <web-resource-collection> <web-resource-name>TestApplication</web-resource-name> <url-pattern>/</url-pattern> </web-resource-collection> <auth-constraint> <role-name>users</role-name> </auth-constraint> </security-constraint> <security-role> <role-name>users</role-name> </security-role> </web-app>
Copyright 2004, Oracle. Todos los derechos reservados.
Adicin de Usuarios
Gestin de Roles
Esto le ofrece flexibilidad de despliegue y pruebas. Para utilizar LDAP, cambie el archivo jazn.xml.
Ejecucin de la Aplicacin
Compruebe la aplicacin. Los prompts del explorador para el nombre de usuario y la contrasea. La aplicacin se abre si se autentica y autoriza al usuario. Si alguno de estos falla, la aplicacin no tiene autorizacin para ejecutarse.
Copyright 2004, Oracle. Todos los derechos reservados.
Resumen
En esta leccin ha aprendido a: Utilizar JAAS para agregar seguridad a una aplicacin Agregar usuarios y roles a un descriptor de despliegue de la aplicacin Agregar seguridad de JAAS a una aplicacin Web Describir cmo funciona JAAS en una aplicacin Web
Objetivos
Al finali0zar esta leccin, debera estar capacitado para: Describir las caractersticas de UIX de ADF Definir la estructura de una pgina XML de UIX Crear una pgina XML de UIX Agregar componentes a una pgina XML de UIX Crear pginas centradas en datos con componentes de datos Ejecutar y probar una pgina XML de UIX
Pgina UIX
Marca
1. 2. 3. 4. 5.
Cabecera de pgina Separadores y navegacin Botones globales rea de componentes de datos Pie de pgina
Nodos de Interfaz
Cada pgina se divide en un juego jerrquico de nodos y cada nodo corresponde a una seccin especfica de la pgina.
Cmo se Codifica?
XML de UIX es un dialecto del lenguaje XML para la creacin de pginas UIX de ADF de forma declarativa.
Soporte de Internacionalizacin
UIX soporta intrpretes especficos de cliente que: Son porttiles a diferentes cdigos locales, fuentes, plataformas y exploradores Procesan el texto independientemente de las imgenes (imagen local) Utilizan hojas de estilo en cascada en tiempo de ejecucin con la informacin de estilo de entorno
Separadores de Pgina
Botones Globales
Pies de Pgina
Resumen
En esta leccin ha aprendido a: Definir y discriminar los componentes XML de UIX de ADF Construir una pgina XML de UIX mediante el uso de asistentes Incluir elementos de datos en una pgina a partir del modelo Ejecutar y probar una pgina XML de UIX
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Crear una conexin OC4J (OracleAS Containers for J2EE) remota en JDeveloper Configurar OC4J para el desarrollo de aplicaciones Utilizar el asistente JDeveloper Deployment para desplegar en OC4J Ejecutar una aplicacin JSP en OC4J
Visin General
Servlet/JSP/HTML
Empaquetado
Despliegue
Bibliotecas y paquetes
Copyright 2004, Oracle. Todos los derechos reservados.
Tipo de Archivado
JAR (Archivo Java) JAR de EJB WAR (Archivo Web) EAR (Archivo Empresarial)
Tipo de Mdulo
Mdulo cliente J2EE Mdulo EJB de J2EE Mdulo Web de J2EE No se aplica
Contenido de Software
Componentes de aplicacin Java Componentes EJB (Enterprise JavaBeans) Componentes de servlets y JSP (JavaServer Pages) Aplicacin J2EE
Despliegue en OC4J
OC4J es un servidor Web compatible con J2EE que se incluye con OracleAS 10g. Para desplegar en OC4J, realice los siguientes pasos: 1. Instale OC4J. 2. Inicie un servidor OC4J remoto emitiendo lo siguiente desde un prompt de comandos: <oc4j directory> java jar oc4j.jar 3. Cree una conexin OC4J en JDeveloper. 4. Despliegue el proyecto haciendo clic con el botn derecho del mouse en webapp1.deploy y seleccionando Deploy.
Instalacin de OC4J
1. Abra una ventana de comandos. 2. Navegue a <ias_Home>/j2ee/home. 3. Ejecute el siguiente comando:
% java -jar oc4j.jar -install
Este comando desempaqueta e instala OC4J. 4. Escriba una contrasea para la cuenta de administrador de OC4J.
Despliegue en OC4J
Ejecucin de Aplicaciones
Para ejecutar la aplicacin desplegada, llame a la siguiente URL:
http://hostname:8888/<workspacename><projectname>-context-root/main.jsp
Personalizacin de Despliegue
Para cambiar los nombres de los directorios utilizados en el despliegue, haga clic dos veces en el archivo .deploy.
Resumen
En esta leccin ha aprendido a: Empaquetar las aplicaciones desarrolladas para su despliegue en un servidor Web Crear una conexin OC4J en JDeveloper Desplegar la aplicacin en Oracle9i Application Server