mar 102013
 

Por diversas razones, un programa puede requerir el acceso al contenido de una página web.

Las soluciones más simples realizan la descarga de la página estableciendo una conexión TCP con el servidor, enviando una petición HTTP y leyendo el código HTML que el servidor entrega como respuesta.

Pero este procedimiento falla cuando se accede a un servidor con contenido dinámico. En un servidor de este tipo, parte del contenido es generado mediante código javascript que se ejecuta cuando finaliza la carga de la página, normalmente asociado al evento “onload”. Este código javascript puede interactuar con el DOM de la página,obtener contenido adicional mediante peticiones ajax, etc., de modo que el contenido final de la página puede ser muy disinto del que entrega el servidor inicialmente.

En este artículo vamos a ver la manera de utiliza la libreríar Java HtmlUnit, que implementa un navegador completo con intérprete Javascript, que sólo carece de un interfaz de usuario. De este modo podemos descargar las páginas de un sitio dinámico, y acceder por programa al mismo código HTML que presenta en pantalla un navegador convencional cuando termina la carga de la página y se ha ejecutado el código javascript de inicialización de la misma.

Seguir leyendo »

 Publicado por en 6:14 pm
feb 012013
 

En nuestro anterior artículo de Introducción a Berkeley DB hemos presentado este sistema de base de datos y hemos comentado sobre las características y funcionalidad que ofrece. En éste vamos a ver ejempos prácticos de uso de Berkeley DB en un programa Java.

Versiones de la librería java para Berkeley DB

Existen dos versiones distintas de la librería Java para Berkeley DB.

Berkeley DB standard

Por una parte, el package com.sleepycat.db es un interfaz con la librería del sistema utilizada por otros lenguajes como C, Perl y PHP. Esto asegura la compatibilidad, de manera que una base de datos Berkeley previamente existente creada por un programa escrito en otro lenguaje, puede ser utilizada por un programa Java, y viceversa.

Berkeley DB Java Edition

Por otra parte el package com.sleepycat.je es una implementación 100% Java, que asegura la portabilidad entre distintas plataformas.

Desde el punto de vista del programador, la principal diferencia está en que en Berkeley DB Java Edition es obligatorio es uso de la clase
com.sleepycat.je.Environment para crear y abrir una base de datos, mientras que en Berkeley DB standard es opcional.

Por lo demás, el código es casi siempre idéntico, sustituyendo en las sentencias “import” las referencias a las clases “com.sleepycat.je.*” por “com.sleepycat.db.*”.

En este artículo presentamos ejemplos de uso de Berkeley DB standard.

Seguir leyendo »

 Publicado por en 5:36 pm
oct 252012
 

( Read this post in english )

Una estructura de datos muy útil para todo tipo de aplicaciones es el array asociativo, que es un conjunto de pares (clave, valor). Muchos lenguajes, como PHP o Perl (con variables de tipo  ”hash”) incluyen esta funcionalidad. También Java dispone de arrays asociativos, que se implementan en forma de objetos “Hashtable“. Seguir leyendo »

 Publicado por en 8:31 pm