feed twitter facebook LinkedIn facebook

Java » Redirigir todas las JSP a un Servlet

Noviembre 30, 2006 por Víctor Cuervo . 11578 visitas 5 Comentarios Imprimir Imprimir

Ciertos modelos de arquitectura son participes de evitar el acceso directo a las páginas JSP para poder hacer ciertas validaciones. Esto implica que cada vez que alguien ponga una URL sobre nuestro sitio con *.jsp sea reenviado a un servlet.

Continue reading Redirigir todas las JSP a un Servlet...

HTML » Saltos de línea en HTML

Noviembre 29, 2006 por Víctor Cuervo . 19984 visitas 3 Comentarios Imprimir Imprimir

Cuando la gente empieza a crear páginas web HTML suele caer en el error de creer que el retorno de carro sobre el editor va a provocar el mismo efecto cuando se visualice la página. Pero, esto no es cierto y deberemos de apoyarnos en el lenguaje HTML y sus etiquetas para conseguir dicho efecto.

Continue reading Saltos de línea en HTML...

HTML » Frames sin bordes

Noviembre 28, 2006 por Víctor Cuervo . 16926 visitas 12 Comentarios Imprimir Imprimir

Cuando estamos creando un sistema de frames en HTML, y lo cargamos por primera vez, podemos comprobar de forma explicita que, por defecto, los frames TIENEN BORDE.

Es decir, podemos ver claramente cual es división que hemos efectuado con los frames sobre la página. Quedándonos claramente delimitados los áreas del mismo.

Continue reading Frames sin bordes...

Java » JDBC: Conectarse a una base de datos MS Access

Noviembre 27, 2006 por Víctor Cuervo . 34485 visitas 17 Comentarios Imprimir Imprimir

No es que MS Access sea una base de datos que sirva para grandes volúmenes de datos, ni que se la pueda pedir una gran concurrencia de peticiones. Si bien, su gran baza, es el ser una base de datos con la que empezar a aprender, además de dar funcionalidad a usuarios domésticos.

Continue reading JDBC: Conectarse a una base de datos MS Access...

Java » Números primos en Java

Noviembre 26, 2006 por Víctor Cuervo . 114531 visitas 214 Comentarios Imprimir Imprimir

Un número primo es aquel número que solo es divisible por si mismo y por la unidad. Por convención se asume que el número 1 es también primo. Así, los veinte primeros números primos son: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67 y 71.

Veamos como podemos implementar un algoritmo en Java que nos permita saber si dado un número, saber si este es un número primo o no.

Lo primero que haremos será definir una función que reciba un entero como parámetro (que será el número a conocer) y devolverá un booleano indicando si el número es primo o no.

  1. public boolean esPrimo(int numero) { ... }

Lo que vamos a hacer es recorrer todos los números entre el 2 y el número sobre el que queremos saber si es primo o no. Dentro del bucle comprobaremos el principio del número primo. "Divisible por si mismo y la unidad". Es decir, que si encontramos un número que es divisible por el número evaluado, este dejará de ser primo.

Por ejemplo, el número 10 no es primo. Ya que 10 es divisible por 2 y 5. Esto, expresado en términos matemáticos vendría a decir, que el resto entre los dos números es 0. Veamoslo:

  1. 10/2 = 5, resto 0
  2. 10/5 = 2, resto 0

La función que nos ayuda a conocer el resto entre dos números es el modulo. Y en Java se representa con el tanto por ciento. Así:

  1. 10%2 = 0
  2. 10%5 = 0
  3. 10%3 = 1 (Ya que 10/3 = 3 y el resto es 1)

Por lo tanto, dentro del bucle comprobamos el módulo del número a evaluar con el del contador. Si el módulo es distinto de 0 cambiaremos una variable semáforo a false. Esta variable indicará que el número evaluado ya no es primo y nos servirá para salir del bucle.

Veamos el código:

  1. int contador = 2;
  2. boolean primo=true;
  3.  
  4. while ((primo) && (contador!=numero)){
  5. if (numero % contador == 0)
  6. primo = false;
  7. contador++;
  8. }

Al ver este código podemos ver que con la variable de control asumimos que el número a evaluar es primo. Esta variable será la que devolvamos como retorno de la función:

  1.  
  2. return primo;
  3.  

Otra cosa interesante es que para evaluar los números que hay entre el 2 y el número sobre el que queremos saber si es primo podemos hacerlo de dos formas:

  1. Ir desde el 2 a el número. De forma ascendente.
  2. Ir del número a el 2. De forma descendente.

Cabe señalar que en este caso es mejor el primer punto, ya que encontraremos un divisor antes yendo de los números pequeños a los grandes. Por consiguiente evitaremos ciclos de procesamiento y la respuesta será más rápida.

El código sería el siguiente:

  1. public static boolean esPrimo(int numero){
  2. int contador = 2;
  3. boolean primo=true;
  4. while ((primo) && (contador!=numero)){
  5. if (numero % contador == 0)
  6. primo = false;
  7. contador++;
  8. }
  9. return primo;
  10. }

Estos algoritmos son de un gran coste computacional, sobre todo si se quiere hacer sobre números muy grandes. Por ejemplo, el algoritmo de seguridad RSA basa el calculo de la clave publica en la multiplicación de dos números primos mayores de 10100. Característica que lo hace ser seguro.

Esta claro que nuestro código no es que sea un código para pruebas computacionales CPU intensivas. Pero alguna mejora podemos tener en nuestro código. Y es que una de las características de los números primos es que nunca tendremos un número primo que sea par. Eso quiere decir que si el número a evaluar es par, directamente lo podemos descartar, por lo cual recuperaremos ciclos computacionales.

Para saber si un número es par podemos utilizar la función del módulo. Y es que si el número dividido entre 2 da un resto de 0, entonces este número es par.

A nuestro anterior código le añadiremos la siguiente línea de código:

  1. if (numero%2==0)
  2. return false;

Linea de Codigo » Divisiones: mejorando Línea de Código

Noviembre 26, 2006 por Víctor Cuervo . 7212 visitas Sin Comentarios Imprimir Imprimir

La verdad es que estos primeros 25 días de vida de Línea de Código no nos han podido ir mejor. La cantidad de visitas que estamos recibiendo son muchas más de las que nos esperabamos y tiene pinta de ir creciendo.

Continue reading Divisiones: mejorando Línea de Código...

Java » Renombrar un fichero con Java IO

Noviembre 25, 2006 por Víctor Cuervo . 25439 visitas 29 Comentarios Imprimir Imprimir

Entre las muchas operativas que se pueden hacer sobre un fichero tenemos el renombrado de un fichero. Para ello la librería de Java, Java IO, nos ofrece un método sobre la clase File.

Si recordamos un poco la filosofía de la clase Java IO veremos que la clase File representa la abstracción de un fichero o directorio independientemente del sistema de ficheros que tengamos por debajo.

Lo primero que tenemos que hacer es instanciar la clase File sobre el fichero que queramos realizar el renombrado. Para ello utilizamos el constructor de la clase File, como podemos ver en la siguiente línea de código:

File f1 = new File("fichero1.txt");

Lo siguiente será instanciar una nueva clase File con el nombre del fichero que queramos poner. Veámos la línea de código:

File f2 = new File("fichero2.txt");

Con las dos abstraciones de los ficheros solo nos quedará el ejecutar el método .renameTo(File) sobre el primer fichero. El método .renameTo(File) recibe como parámetro un objeto File con el nuevo nombre. El que nosotros hemos llamado f2

boolean correcto = f1.renameTo(f2);

El método .renameTo(File) devuelve un valor booleano indicando si se ha podido realizar el renombrado, o no. A si que para finalizar validaremos la variable booleana con el fin de dar información al usario.

if (correcto)
  System.out.println("El renombrado ha sido correcto");
else
  System.out.println("El renombrado no se ha podido realizar");

CSS, HTML » Crear un thumbnail

Noviembre 24, 2006 por Víctor Cuervo . 10632 visitas 2 Comentarios Imprimir Imprimir

Un thumbnail es una versión reducida de una imágen, para que sea más fácil su carga, renderizado e identificación. Esta suele ser una técnica muy utilizada cuando queremos cargar una gran cantidad de imágenes dentro de una página.

Continue reading Crear un thumbnail...

Java » Obtener ruta absoluta de un fichero

Noviembre 23, 2006 por Víctor Cuervo . 15594 visitas 9 Comentarios Imprimir Imprimir

Si hay algo que tiene la librería Java IO es que nos permite manejar de forma muy extensa y con una gran facilidad los ficheros.

Una de las clases principales de la librería Java IO es File. Dicha clase representa de forma abstracta a las rutas ficheros y directorios. De esta forma podemos acceder a distintos sitemas de ficheros, independientemente de la estructura que estos tengan.

Así se trabajaría de igual manera dentro de un sistema UNIX donde la raiz sería representada por "\" o un sistema Windows donde se antepondría el nombre de la unidad en la que está el fichero.

Para conocer la ruta absoluta de un fichero, lo primero que tenemos que hacer es instanciar la clase File mediante alguno de sus constructores.

File fichero = new File("fichero.txt");

A partir de este momento el objeto fichero (de tipo File) será el que contenga la representación de nuestro fichero.

Uno de los métodos de File, .getAbsolutePath() será el que nos devuelva la ruta absoluta del fichero. A si que solo tendremos que invocarlo desde el objeto fichero.

En nuestro caso, la siguiente línea de código, lo volcará a la consola:

System.out.println(fichero.getAbsolutePath());

En mi caso lo he ejecutado bajo una máquina Windows y me ha devuelto el siguiente resultado:

C:\workspace_eclipse\lineadecodigo_com\fichero.txt

Como véis. Muy sencillo.

HTML, JavaScript » Enlace que abra dos páginas

Noviembre 22, 2006 por Víctor Cuervo . 12436 visitas 3 Comentarios Imprimir Imprimir

Cuando estamos utilizando los enlaces HTML dentro de una página web vemos que su comportamiento natural es el de abrir la página o parte en concreto de la página sobre alguno de los marcos del navegador (misma venta, ventana padre, algún frame,...).

Continue reading Enlace que abra dos páginas...