Exposiciones de la Clase de Objetos 2

Noviembre 25, 2008

Este blog se dedica a presentar los resumenes de las exposiciones efectuadas durante el curso de Programación Orientada a Objetos 2 para Ingenieros en Sistemas Computacionales-UVM.

El contenido de estos temas esta basado en diversas páginas de Internet y articulos de libros especializados, que los autores se dedicaron a investigar para dar origen a este blog.

El fin de los temas aquí presentados es totalmente educativo.


fileChooser,J2EE,JavaBeans

Diciembre 13, 2008

“CLASE JFileChooser”

La clase JFileChooser ,Un selector de ficheros es un componente que podemos situar en cualquier lugar del de nuestro programa. La clase JFileChooser hace sencillo traer un diálogo modal que contiene un selector de ficheros.

Los selectores de ficheros se utilizan comunmente para dos propósitos: Para presentar una lista de ficheros que pueden ser abiertos por la aplicación. Ó Para permitir que el usuario seleccione o introduzca el nombre de un fichero a grabar.

la clase JFileChooser proporciona los métodos convenientes para mostrar estos tipos de selectores de ficheros en un diálogo. Ejemplo:

Cuando se pulsa el botón Open el programa trae un open file chooser. Cuando se pulsa el botón Save el programa trae un save file chooser. Aquí podemos ver una imagen de un selector de apertura de ficheros:

Aquí podemos ver el código que crea y muestra el selector de apertura de ficheros:

private JFileChooser filechooser = new JFileChooser();

int returnVal = filechooser.showOpenDialog(FileChooserDemo.this);

 

Aquí tenemos el método actionPerformed para el oyente del botón Save:

private JFileChooser filechooser = new JFileChooser();

public void actionPerformed(ActionEvent e) {

    int returnVal = filechooser.showSaveDialog(FileChooserDemo.this);

 

    if (returnVal == JFileChooser.APPROVE_OPTION) {

        File file = filechooser.getSelectedFile();

        log.append(“Saving: ” + file.getName() + “.” + newline);

    } else {

        log.append(“Save command cancelled by user.” + newline);

    }

}

 

 

 

 

 

 

“J2EE”
 (Java 2 Enterprise Edition)

Define un estándar para el desarrollo de aplicaciones empresariales multicapa diseñado por Sun Microsystems. J2EE simplifica  las  aplicaciones  empresariales basándolas en componentes modulares y estandarizados, proveyendo un completo conjunto de servicios a estos componentes, y manejando muchos de las funciones de la aplicación de forma automática, sin necesidad de una programación compleja.

Algunas de sus funcionalidades más importantes son:

* Acceso a base de datos (JDBC)
* Utilizado por BEA, IBM, Oracle, Sun, y Apache Tomcat entre otros.
* Utilización de directorios distribuidos (JNDI)
* Acceso a métodos remotos (RMI/CORBA)
* Funciones de correo electrónico (JavaMail)
* Aplicaciones Web (JSP y Servlet)

* Uso de Beans, etc.

 

“JAVABEANS”

Un JavaBean o bean es un componente hecho en software que se puede reutilizar y que puede ser manipulado visualmente por una herramienta de programación en lenguaje Java.

Para ello, se define un interfaz para el momento del diseño (design time) que permite a la herramienta de programación o IDE, interrogar (query) al componente y conocer las propiedades (properties) que define y los tipos de sucesos (events) que puede generar en respuesta a diversas acciones.

Aunque los beans individuales pueden variar ampliamente en funcionalidad desde los más simples a los más complejos, todos ellos comparten las siguientes características:

Introspection: Permite analizar a la herramienta de programación o IDE como trabaja el bean

Customization: El programador puede alterar la apariencia y la conducta del bean.

Events: Informa al IDE de los sucesos que puede generar en respuesta a las acciones del usuario o del sistema, y también los sucesos que puede manejar.
Properties: Permite cambiar los valores de las propiedades del bean para personalizarlo (customization).
Persistence: Se puede guardar el estado de los beans que han sido personalizados por el programador, cambiando los valores de sus propiedades.
En general, un bean es una clase que obedece ciertas reglas:
Un bean tiene que tener un constructor por defecto (sin argumentos)
Un bean tiene que tener persistencia, es decir, implementar el
interface Serializable.
Un bean tiene que tener introspección (instrospection). Los IDE reconocen ciertas pautas de diseño, nombres de las funciones miembros o métodos y definiciones de las clases, que permiten a la herramienta de programación mirar dentro del bean y conocer sus propiedades y su conducta.


JMenu, JPopMenu

Diciembre 8, 2008

JMenu
Un menú proporciona una forma de ahorrar espacio y permitir al usuario elegir una entre varias opciones. Otros componentes con los que el usuario puede hacer una elección incluyen combo boxes, lists, radio buttons, y tool bars. Si alguno de los ítems de un menú realiza una acción que está duplicada en otro ítem de menú o en un botón de una barra de herramientas, además de esta lección deberíamos leer Como usar Actions.
Los menús son únicos en que, por convención, no se sitúan con los otros componentes en el UI. En su lugar, aparecen en una barra de menú o en un menú desplegable. Una barra de menú contiene uno o más menús, y tiene una posición dependiente de la plataforma — normalmente debajo de la parte superior de la ventana. Un menú desplegable es un menú que es invisible hasta que el usuario hace una acción del ratón específica de la plataforma, como pulsar el botón derecho del ratón sobre un componente. Entonces el menú desplegable aparece bajo el cursor.

JPopMenu

El componente java para el menú es un JPopupMenu. Sólo hay que instanciarlo y por medio del método add() pasarle las acciones que queremos que sean nuestros items del menú. Por supuesto, hay más métodos para añadir las acciones de otra forma o para añadir incluso submenus

debemos registrar un oyente de ratón para cada componente al que debería estar asociado el menú desplegable. El oyente de mouse debe detectar las peticiones del usuario para que aparezca el menú desplegable. Para las plataformas Windows y Motif, el usuario trae un menú desplegable pulsando el botón derecho del ratón mientras el cursor está sobre el coponente adecuado.
El oyente de mouse trae un menú desplegable llamando a setVisible(true) sobre el ejemplar apropiado de JPopupMenu. El siguiente código, tomado de PopupMenuDemo.java, muestra cómo crear y mostrar menús desplegables.


Java para dispositivos moviles

Diciembre 8, 2008

Para poder compilar y ejecutar aplicaciones para dispositivos móviles necesitamos disponer de las siguientes herramientas:

Java 2 SDK, o bien cualquier otro entorno de desarrollo que ofrezca un compilador en linea de comandos para JAVA. Se recomienda el uso del SDK de JAVA, ya que los ejemplos vistos en clase se centrarán sobre esta herramienta. Se puede descargar de la página de SUN, en la siguiente dirección: http://java.sun.com/javase/downloads/index.jsp. Nosotros trabajeremos en el aula de prácticas con la versión 5, actualización 6, aunque ya hay disponibles versiones más recientes (actualización 8, e incluso verión 6 en modo beta).

Java 2 Micro Edition. Se trata del paquete completo de desarrollo necesario. Incluye la herramienta KToolbar, junto con el perfil MIDP. Mediante la herramienta KToolbar se puede compilar código sin necesidad de interactuar directamente con CLDC, al mismo tiempo que se dispone de un emulador de terminal telefónico. De esta forma se puede comprobar el funcionamiento de la aplicación sobre un teléfono móvil. Se puede descargar en la dirección http://java.sun.com/javame/downloads/index.jsp. La versión más reciente es la 2.5, aunque nosotros trabajaremos con la 2.2. Esta versión puede descargarse desde http://java.sun.com/products/sjwtoolkit/download-2_2.html.

CLDC 1.1. Esta herramienta sólo se necesita si se trabaja a bajo nivel, por ejemplo, para incorporar código nativo (en lenguaje C) que se quiera incorporar a la aplicación. Se trata de la versión más reciente de CLDC. El software necesario se puede encontrar en la dirección: http://www.sun.com/software/communitysource/j2me/cldc/download.xml. Para instalar convenientemente CLDC

MIDlets y MIDlet suites
Las aplicaciones JAVA que se ejecutan en dispositivos que implementan MIDP se denominan MIDlets. Un MIDlet consta de al menos una clase JAVA, que debe derivar de la clase base abstracta javax.microedition.midlet.MIDlet. El tiempo de ejecución de un MIDlet viene controlado por una serie de métodos definidos en dicha clase y que, forzosamente, todas las clases derivadas deben implementar.

Un grupo de MIDlets relacionados pueden agruparse en un MIDlet suite. Todos los MIDlets de un suite se agrupan e instalan en un dispositivo como si fuesen un único elemento, de forma que sólo pueden desinstalarse y eliminarse en conjunto. Los MIDlets agrupados en un suite comparten tanto recursos estáticos como dinámicos:

En tiempo de ejecución, si los dispositivos soportan ejecución concurrente, todos los MIDlets se ejecutarán en la misma máquina virtual. Por tanto, todos los MIDlets comparten las mismas instancias de todas las clases, así como los recursos cargados en la máquina virtual. Entre otras cosas, esto supone que se pueden compartir datos entre MIDlets y que las primitivas de sincronización no sólo deben usarse para proteger frente al acceso concurrente dentro de cada MIDlet, sino también el producido por otros MIDlets asociados al mismo suite.

El almacenamiento persistente es gestionado de forma globar para todos los MIDlets del suite. Por tanto, los MIDlets pueden acceder tanto a sus propios datos persistente como a los de otras clases del MIDlet.

Como ejemplo de la forma en que los MIDlets de un suite comparten recursos, supongamos un suite que contiene una clase denominada Contador, destinada a mantener la cuenta del número de instancias de MIDlets del suite que se ejecutan en cada momento.

Es importante indicar que los MIDlets deben empaquetarse antes de poderse instalar en los dispositivos de destino. Todo lo necesario de un suite debe empaquetarse en un archivo JAR. La información del paquete debe incluirse en un archivo de manifiesto. Esta información también estará especificada en otro archivo denominado descriptor de aplicaciones JAVA (JAD: java application descriptor), que se mantiene separado del archivo JAR.

El código completo de este MIDlet puede descargarse directamente desde aquí: EjemploMIDlet1.java Se trata de un MIDlet muy sencillo, que permitirá practicar con los procedimientos de generación de MIDlets, así como los posibles estados en que puede encontrarse un MIDlet en ejecución: pausa, activo y destruido.

++++++este tema es bastante extenso por que les dejo un link para cualquier duda+++++++

http://leo.ugr.es/J2ME/TOOLS/index.html


JOptionPane, JTree y JColorChooser

Diciembre 8, 2008

JOptionPane

 
Ventanas de mensajes estándar que permiten mostrar un mensaje de información al usuario o capturar información.
Tipos de mensajes:
JOptionPane.showMessageDialog();
JOptionPane.showConfirmDialog();
JOptionPane.showInputDialog();
Todos los diálogos son modales (no continúa la ejecución hasta que no se cierra).
Se pueden configurar mediante parámetros: título, mensaje, icono, etc.
Se tiene que importar la librería javax.swing.JOptionPane.*;

JColorChooser

 
Se puede utilizar la clase JColorChooser para proporcionar a los usuarios una paleta para elegir colores. Un selector de color es un componente que se puede situar en cualquier lugar dentro del GUI de un programa. JColorChooser también hace sencillo desplegar un diálogo que contiene un selector de color.
Se tiene que importar la librería javax.swing.JColorChooser.*;
 
 
JTree
 
Con la clase JTree, se puede mostrar un árbol de datos, simplemente es un vista de ellos
JTree muestra los datos verticalmente. Cada fila contiene exactamente un ítem de datos (llamado un nodo). Cada árbol tiene un nodo raíz (llamado Root en la figura anterior, del que descienden todos los nodos. Los nodos que no pueden tener hijos se llaman nodos leaf (hoja).
Se tiene que importar la librería javax.swing.JTree.*;
 
 
getTreeCellEditor(). Este es el que comentamos antes. Este método debe devolver el Component que hace de editor, rellenándolo previamente con el value que recibe. El resto de parámetros son para por si necesitamos algo o queremos hacer algo especial en función de que el nodo esté o no seleccionado, sea hoja o no, esté expandido…
addCellEditorListener(). Aquí es donde nos pasan al que debemos avisar cuando se acepte o cancele la edición. Para poder hacer esto, debemos hacer dos cosas:
Debermos añadir los ActionListener, EventListener o lo que sea al Component que devolvemos en el método anterior, para saber nosotros cuándo termina la edición.
Guardarnos el CellEditorListener que nos pasan, para avisarle cuando se acepte o cancele la edición
cancellCellEditing(). A este método nos llamará el JTree cuando se pulse en otro nodo distinto del que se está editando. En principio no debemos hacer nada especial, salvo que al cancelar una edición a medias necesitemos hacer algo. Por ejemplo, si mientras editamos nos conectamos a una base de datos o abrimos un fichero, en este cancel podríamos cerrar la conexión o el fichero sin realizar cambios en la base de datos o fichero.
 
 
getCellEditorValue(). Federico Ratón ha terminado de editar y ha aceptado la edición. Debemos devolver el nuevo valor que Federico Ratón ha metido en el Component que hace de editor.
isCellEditable(). Federico Ratón ha hecho algo con el nodo. ¿Es ese algo lo que hay que hacer para editarlo, como un triple click?. Debemos devolver true si es así.
removeCellEditorListener(). Como se supone que ha terminado la edición, JTree nos dice que no le avisemos más. Debemos borrrar el CellEditorListener que nos pase si lo teníamos guardado de antes.
shouldSelectCell(). Ha comenzado la edición y JTree nos pregunta si puede olvidarse de los demás nodos que haya seleccionados y debe seleccionar el de la edición. Si queremos que sea así, devolvemos true. Si queremos que el editar un nodo no implique cambios en la selección de los demás, debemos devolver false.
stopCellEditing(). Habitualmente JTree no llamará a este método por defecto, salvo que cambiemos el comportamiento. De alguna forma, nos avisa de que la edición ha terminado y que debemos revisar si el valor introducido en el editor por Federico Ratón es o no válido (por ejemplo, que ha metido un número si le estamos pidiendo un número y no un “aaa”). Devolvemos true si el contenido del editor es correcto y false en caso contrario. De todas formas, insisto, por defecto no nos llamarán a este método.

Java web services

Diciembre 8, 2008

Java Web Services Development Pack el paquete de desarrollo de servicios web de java (JWSDP) es un kit libre de desarrollo de software (SDK) para desarrollar servicios web, aplicaciones web y aplicaciones Java con las nuevas tecnologías de Java.

JWSDP ha sido sustituido por GlassFish. Todos los componentes de JWSDP forman parte de Glassfish y WSIT
varios están en Java SE 6 (“Mustang”). El código fuente está disponible bajo la licencia CDDL, la cual está aprobada por la Open Source Initiative.

Los Web Services permite la comunicación entre aplicaciones o componentes de aplicaciones de forma estándar a través de protocolos comunes (como http) y de manera independiente al lenguaje de programación, plataforma de implantación, formato de presentación o sistema operativo. Un Web service es un contenedor que encapsula funciones específicas y hace que estas funciones puedan ser utilizadas en otros servidores. Algunas ventajas que presentan los Web services son

· Son programables

· Estan basados en XML, que es un lenguaje abierto

· Son auto descriptivos

· Pueden buscar registros de otros Web services

Beneficios de Web services sobre otras tecnologías.

Los web services presentan algunas diferencias sobre sistemas distribuidos tradicionales, tales como EJB, COM/DCOM, CORBA, SOM/DSOM o DCE. Algunas de las diferencias son las siguientes ( NOTA: Algunas diferencias sólo afectan a algunos sistemas, no a todos ) :

Escaso acoplamiento. El cliente no necesita conocer nada acerca de la implementación del servicio al que está accediendo, salvo la definición WSDL
Independencia del lenguaje de programación. El servidor y el cliente no necesitan estar escritos en el mismo lenguaje
Independencia del modo de transporte. SOAP puede funcionar sobre múltiples protocolos de transoporte, como por ejemplo HTTP, HTTPS, HTTP-R, BEEP, JABBER, IIOP, SMTP o FTP.
Múltiples modos de invocación. Los servicios web soportan tanto invocación estática como invocación dinámica.
Múltiples estilos de comunicación. Los servicios web soportan tanto comunicación síncrona ( RPC ) como comunicación asíncrona ( mensajería ).

-¿Para qué sirve un Web Services?

Para tener acceso a información y procesos remotos a través de aplicaciones web o desktop.

Esto quiere decir, por ejemplo, que un Web Services puede ser invocado remotamente como una funcionalidad más dentro de una aplicación SIG desktop, con las ventajas que: Es totalmente invisible para el usuario final, al ser un proceso remoto el consumo de recursos es absorbido por el Web Services y la aplicación puede estar desarrollada en cualquier lenguaje y plataforma.

La finalidad de un Web Services, es la de ofrecer, vender o alquilar un proceso y que este pueda ser invocado por otras aplicaciones sin considerar el lenguaje de programación utilizado.


SPLIT PANE

Diciembre 8, 2008

Contiene dos componentes de peso ligero, separados por un divisor. Arrastrando el divisor, el usuario puede especificar qué cantidad de área pertenece a cada componente. Un SplitPane se utiliza cuando dos componentes contienen información relacionada y queremos que el usuario pueda cambiar el tamaño de los componentes en relación a uno o a otro.Un ejemplo es cuando tenemos una lista de archivos y en su otra parte tenemos la vista preliminar de la imagen que cambia conforme cambiamos de archivo.


Servlets

Diciembre 8, 2008

Servlets

Librería para usar servlets

·         import javax.servlet.*;

·         La clase debe de implementar la clase Servlet.

·         En el método init()  debemos de agregar un throws ServletException.

¿Qué son los Servlets de Java?

·         Los Servlets son componentes del servidor. Estos componentes pueden ser ejecutados en cualquier plataforma o en cualquier servidor debido a la tecnología Java que se usa para implementarlos. Los Servlets incrementan la funcionalidad de una aplicación web. Se cargan de forma dinámica por el entorno de ejecución Java del servidor cuando se necesitan.

  • Cuando se recibe una petición del cliente, el contenedor/servidor web inicia el servlet requerido. El Servlet procesa la petición del cliente y envía la respuesta de vuelta al contenedor/servidor, que es enrutada al cliente.

El API Servlet tiene dos paquetes, el javax.servlet, que tiene clases y paquetes independientes de protocolos, y el javax.servlet.http , que es más específico para el protocolo HTTP.

Procedimientos:

public abstract void init (ServletConfig config) throws ServletException.

El método init se usa para inicializar los parámetros proporcionados por el objeto ServletConfig. Se invoca sólo una vez, a menos que el servlet sea reiniciado si se destruye y se vuelve a cargar. El método init es el lugar en el que inicializar los parámetros de configuración como la conexión con una base de datos, la inicialización de archivos y otros valores de entorno. Ninguno método del servlet puede ser invocado a no ser que el servlet esté inicializado mediante el uso del método init().

public abstract ServletConfig getServletConfig ()

Este método proporciona el objeto ServletConfig para la inicialización de los parámetros del servlet. Se pueden crear parámetros adicionales especificándolos en el archivo servlet.properties. Una vez que hayan sido especificados en este archivo, se puede acceder a ellos usando el objeto ServletConfig.

public abstract void service (ServletRequest req, ServletResponse res) throws ServletException, IOException.

El método service es el punto esencial del modelo petición respuesta del protocolo HTTP. Recibe una petición del cliente en forma de objeto ServletRequest. Los parámetros del cliente son pasados junto al objeto de petición (aunque existen otras formas de enviar parámetros desde el cliente al servlet, por ejemplo, usando cookies o por medio de una reescritura del URL). La respuesta resultante se envia al cliente usando el objeto ServletResponse.

public abstract String getServletInfo()

Este método se usa para la extracción de metadatos del servlet, como por ejemplo el autor, la versión del servlet, y otra información concerniente al copyright. El método tendrá que ser redefinido dentro del servlet para que devuelva esta información.

public abstract void destroy ()

El método destroy se invoca para liberar todos los recursos solicitados como la base de datos, y otros recursos del servidor. También se encarga de la sincronización de cualquier hilo pendiente. Este método se llama una sola vez, automáticamente, como el método init.

Ciclo de vida de un Servlet

 


Threads

Diciembre 8, 2008

Threads en Java

Definición

n  Es llamado como proceso ligero, es un flujo de control de secuencia simple dentro de un programa.

n  Los threads son usados para aislar las tareas.

n  Cuando se corre un programa se crean threads que hacen ciertas operaciones sencillas. Thread running within a program.

n  Cada thread es un flujo de control de secuencia dentro de un mismo programa, por ejemplo un Explorador.

n  Cada operación del thread se corre independientemente, aunque corren simultáneamente.

Two threads running concurrently in a single program.

Ciclo de vida de un thread

Thread states.

Creación de un thread

n  La clase Thread se deriva de la clase java.lang.Thread y se debe extender para usarse.

n  Cuando se crea un thread se inicializa un Nuevo estado, inicialmente esta vacío y no hay recursos asignados.

n  Si se quiere asignar un método al thread causará un error.

n  Para inicializar el thread se ocupa el método start (), este método indica si el thread corre o no.

Thread NO listo para ejecutar

Un thread NO esta listo para ejecutar cuando sucede lo siguiente:

n  Ha sido invocado el método sleep ().

n  El thread usa el método wait ( ) para que se satisfaga una condición especifica.

n  El thread esta bloqueado en la entrada y salida.

Deteniendo un thread

n  El método thread no contiene método stop.

n  Dentro de Java los threads deben de acabar naturalmente, cuando acaba la ejecución.

n  Cuando se cierra el applet se usa un tipo de stop.

n  El estado del thread se pone nulo diciéndole al sistema que termine el método.

Probando el estado de un thread

Cuando se invoca el método Thread.State se regresan los siguientes valores:

n  Nuevo

n  Ejecutable

n  Bloqueado

n  Esperando

n  Esperando con tiempo

n  Terminado

Sincronización de threads

La sincronización se realiza utilizando el modificador synchronized en aquellos métodos que puedan producir situaciones conflictivas.

La sincronización puede hacerse a diferentes niveles:

n  nivel de una clase (métodos static synchronized).

n  nivel de objetos (métodos synchronized).

n  nivel de un bloque de código (precedido de synchronized y un nombre de objeto entre paréntesis).

 

 

 

 


GridBagLayout

Diciembre 8, 2008

GRIDBAGLAYOUT

ž  Es igual que la composición de GridLayout, con la diferencia que los Componentes no necesitan tener el mismo tamaño.

ž  Está gobernado por un conjunto de propiedades que están interrelacionados entre sí. Los componentes se disponen en una matriz

¿Cómo funciona?

ž  Divide las filas y columnas según necesidades del usuario.

ž  Este Layout es fácilmente manipulable gracias a una clase auxiliar llamada GRIDBAGCONSTRAINTS.

ž  El GRIDBAGCONSTRAINTS nos ayudará a manipular las posiciones, tamaños, así como otros atributos que a continuación veremos.

GRIDX Y GRIDY

ž  Estos dos atributos especifican las coordenadas horizontal y vertical del componente que vamos a insertar en el grid.

ž  Realmente no siempre es necesario establecer su valor ya que en los casos más simples nos llegaría con gridwidth y gridheight, este atributo es recomendable ya que permite saber en que elemento nos encontramos de una manera más visual.

Propiedades

ž  GRIDWIDTH Y GRIDHEIGHT especifican el número de celdas horizontal y vertical que abarcará un componente.

ž  Además podemos utilizar los valores especiales REMAINDER y RELATIVE para indicar que un componente ha de ocupar todo el espacio restante o todo el espacio hasta el último componente.

ANCHOR

ž  Especifica la posición que ocupará un componente dentro de una celda.

ž   Los valores que puede tomar este atributo están definidos como variables estáticas dentro de la clase GridBagConstraints y son:

ž   NORTH, SOUTH, EAST, WEAST, NORTHWEST, SOUTHWEST, NORTHEAST, SOUTHEAST y CENTER.

ž  Indican la orientación de los componentes dentro de la celda que ocupan.

FILL

ž  Para hacer que un componente se estire, tenemos el atributo fill del GridBagConstraints. Este puede tomar los siguientes valores:

      GridBagConstraints.NONE para que no se estire en ningún sentido, es la opción por defecto.

      GridBagConstraints.VERTICAL para que se estire sólo en vertical

      GridBagConstraints.HORIZONTAL para que se estire sólo en horizontal.

      GridBagConstraints.BOTH para que se estire en ambas dimensiones.

      Si el componente no se estira en alguna dirección, podemos decirle por medio de anchor en GridBagConstraints qué posicion queremos que ocupe.

WEIGHTX Y WEIGHTY

ž  A medida que vamos añadiendo componentes a un contenedor el layout manager va determinando en función del tamaño de los componentes el espacio que ocupan las celdas.

ž  Los atributos WEIGHTX y WEIGHTY especifican el porcentaje de espacio libre que ocupará una celda determinada. En el ejemplo una vez añadidos los componentes queda una determinada cantidad de espacio libre tanto horizontal como vertical.

 


Directorios Virtuales

Diciembre 8, 2008
¨Un directorio virtual es un directorio que se encuentra en un directorio distinto del que se mapea en la URL”
El directorio virtual se puede encontrar en cualquier otra ubicación, incluso se podría encontrar en otro servidor distinto, utilizando el “comando” ALIAS
Sintaxis: 
Alias
nombreFicticio ubicacionReal 

Ejemplo: 
Alias /manual/php “c:\php” 

Donde se editan y crean directorios virtuales son en los siguientes archivos “httpd.conf, en Apache”, “en Apache Tomcat en el archivo server.xml”