viernes, 18 de enero de 2008

Validación de Email y Fecha en Java

Aqui les dejo la forma de como validar correos electronicos en Java, es una clase sencilla, pero a partir de ella se puede validar en aplicaciones web o de escritorio a la hora de usar formularios.

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author hgiacoman
*/
public class validator {
public validator() {
String correo = "helmy_gb@gmail.com";
if(isEmail(correo)){
System.out.println("Mail correcto");
}else{
System.out.println("Mail incorrecto");
}
String fecha = "23/12/1987";
if (isDate(fecha)) {
System.out.println("Fecha correcta");
}else{
System.out.println("Fecha incorrecta");
}
}
//metodo para validar si la fecha es correcta
public boolean isDate(String fechax) {
try {
SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");
Date fecha = formatoFecha.parse(fechax);
} catch (Exception e) {
return false;
}
return true;
}
//metodo para validar correo electronio
public boolean isEmail(String correo) {
Pattern pat = null;
Matcher mat = null;
pat = Pattern.compile("^([0-9a-zA-Z]([_.w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-w]*[0-9a-zA-Z].)+([a-zA-Z]{2,9}.)+[a-zA-Z]{2,3})$");
mat = pat.matcher(correo);
if (mat.find()) {
System.out.println("[" + mat.group() + "]");
return true;
}else{
return false;
}
}
public static void main(String args[]) {
new validator();
}
}
view raw validation.java hosted with ❤ by GitHub


la cadena larga que aparece ahi, van a creer que no tiene sentido, pero en realidad eso es una expresion regular, en la Universidad donde estudio recibimos una clase que se llama Teoria de Computación, abarca lenguajes y expresiones regulares, automatas finitos, etc, etc, para los que ya la conocen no les sera muy dificil entenderle al pattern (patrón) que está ahi..

Prometo que mi próximo post será explicar paso a pasa como funca ese patrón.

Que les sirva.

miércoles, 9 de enero de 2008

RichFaces + Netbeans 6 +Tomcat 6 +Ajax4Jsf

Bueno, antes que todo, quiero pedir discupas por haber escrito este post a medias, lo que paso es que lo hice muy rapido y no tuve tiempo de editarlo.

Se trata de un framework de Java para desarrollo web que viene a mejorar JSF, se llama RichFaces.

RichFaces fue creado por Red Hat si no me equivoco. Todo empezo un dia que estaba en el trabajo y no pude hacer algo con JSF porque este no lo permitia, tons me vi obligado a buscar algo que permitiera lo que andaba buscando y me encontre con RichFaces, una combinacion de Ajax, Java, XML.

Para no casar voy a ir directo al grano, se trata de hacerlo funcionar en Netbeans y que corra bajo Apache, como hace falta informacion en internet sobre esto, me rife a hacerlo yo.

Primero que todo bajense el paquete RichFaces de la pagina de JBoss

http://labs.jboss.com/jbossrichfaces/downloads/ yo estoy utilizando en este tuto la versión 3.1.3-GA y funca muy bien.

Necesitamos los siguientes paquetes que son una dependencia para richfaces, son paquetes creados por Apache software Fundation dejo el enlace para que descarguen los siguientes

http://commons.apache.org/

# commons collections 3.2 (commons-collections-3.2.jar)
# commons beanutils 1.7.0 (commons-beanutils.jar)
# commons digester 1.8 (commons-digester-1.8.jar)
# commons logging 1.1

Para los que siguien, aparentemente el paquete commons logging 1.1 deberia incluirlos, pero si no los agregamos a la libreria nos dará un error a la hora de correr nuestro programa. El enlace es el siguiente (hay que buscarlos)

http://www.ibiblio.org/maven/commons-logging/jars/
#commons-logging-adapters-1.1.jar
#commons-logging-api-1.1.jar

Cuando los tengamos todos, debemos crear una nueva libreria en Netbeans y ponganle el nombre que se les ocurra, y agreguen todos los jar que descargaron ademas de los jars que vienen en el paquete de RichFaces, esto se hace en el Menu Tools >> Libraries >> New Library.

Luego de eso debemos crear un nuevo proyecto de JSF, agregar la libreria al proyecto y lo que viene hay que agregarlo al archivo "WEB-INF/web.xml"

<context-param>
<param-name>org.richfaces.SKIN</param-name>
<param-value>blueSky</param-value>
</context-param>
<filter>
<display-name>RichFaces Filter</display-name>
<filter-name>richfaces</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>richfaces</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
view raw web.xml hosted with ❤ by GitHub


luego hay que agregar los taglibs a las paginas en las que deseemos utilizar richfaces y listo.

<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>

ahhh, pero si es XMLNS se agregan de esta forma.
<xmlns:a4j="http://richfaces.org/a4j"> <xmlns:rich="http://richfaces.org/rich">
Espero que a alguien le sirva, jeje :P Otro dia voy a poner un ejemplo con imagenes, pero eso cuando tenga un poco mas de tiempo.


viernes, 4 de enero de 2008

Encryptar en MD5 desde Java

Bueno, un dia de estos estaba haciendo un Sistema que me dejaron en la Universidad, tiene que ver con bases de datos, registros y cosas asi, la cuestion es que necesitaba codificar las claves de los usuarios, claro, todo esto para que sea un sistema formal.

Googleando me encontre un codigo algo confuso, pero al suave lo acomode y lo adapate a mis necesidades, aqui lo dejo para ver a quien le sirve.

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package utils;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.logging.*;
/**
*
* @author e0s87
*/
public class Codificador {
/** * Clase con métodos estáticos de cifrado * */
public String getEncoded(String texto, String algoritmo) {
String output="";
try {
byte[] textBytes = texto.getBytes();
MessageDigest md = MessageDigest.getInstance(algoritmo);
md.update(textBytes);
byte[] codigo = md.digest();
output = new String(codigo);
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(Codificador.class.getName()).log(Level.SEVERE, null, ex);
}
return output;
}
}
view raw md5.java hosted with ❤ by GitHub


Luego solo se crea un nuevo objecto de la clase y se llama al metodo getEncoded con sus respectivos parametros, y eso es todo.