viernes, 30 de enero de 2009

Manejo de fechas

La API de java nos provee de dos clases para manejar fechas: Date y Calendar, ambas en el paquete java.util. Calendar ofrece más opciones y Date está en desuso.

Crear un objeto Calendar:

Calendar cal=Calendar.getInstance();

Esto nos crea un objeto Calendar con los datos del sistema. Para obtener los ditintos campos utilizamos el método get(int field) que nos devuelve un entero. La clase Calendar posee atributos estáticos que representan los distintos campos de una fecha:

cal.get(Calendar.DATE):devuelve el día
cal.get(Calendar.MONTH):devuelve el mes
cal.get(Calendar.YEAR):devuelve el año

Modificar un objeto Calendar:

Para ello recurrimos al método set(int field). Al igual que con get(int fiel) le pasamos como parámetro el campo que queremos modificar. Si lo que queremos es sumar una cantidad a uno de los campos podemos recurrir al método roll(int field,int cantidad), por ejemplo:

cal.roll(Calendar.DATE, -5): resta 5 días.
cal.roll(Calendar.MONTH, 5): suma 5 meses.

Formatear fechas:

Para formatear fechas podemos recurrir a la clase SimpleDateFormat del paquete java.text. El siguiente ejemplo nos muestra cómo usar dicha clase para darle formato a una fecha:

SimpleDateFormat formater=new SimpleDateFormat();
formater.applyPattern("dd/MM/yy");
String fechaFormateada=formater.format(cal.getTime());

¡¡Ojo!!:

La clase Calendar le asigna el valor 0 al mes de enero y no 1, esto hay que tenerlo en cuenta a la hora de manejar fechas



martes, 27 de enero de 2009

Instalacion del plugin SVN en Eclipse

¿QUÉ ES SVN?

SVN es un sistema de control de versiones que nos permite tener un historial de los distintos cambios que hacemos sobre nuestro código y, por tanto, mantener guardado en un lugar centralizado las distintas versiones de nuestros proyectos.

INSTALACIÓN DEL CLIENTE SVN EN ECLIPSE
AGREGAR UN REPOSITORIO
  • Abrimos la vista de SVN: Window->Show View y escribimos SVN
  • En el panel SVN Repositories: Menú contextual->New->Repository Location...
  • Introducimos la URL del repositorio y aceptamos
DESCARGAR UN PROYECTO DE UN REPOSITORIO
  • En la vista Project Explorer: Menú contextual->New->Project
  • En el nuevo diálogo elejimos SVN->Checkout Projects from SVN
  • En el siguiente diálogo seleccionamos el repositorio del que queremos descargar
  • Elejimos el proyecto y aceptamos
  • En el siguiente diálogo elejimos el nombre para el proyecto
SUBIR UN PROYECTO A UN REPOSITORIO
  • En la vista Project Explorer seleccionamos el proyecto: Menú contextual->Team->Share Project...
  • En el siguiente diálogo seleccionamos el sistema de versiones SVN.
  • Seleccionamos el repositorio
  • En el siguiente diálogo seleccionamos el nombre para el proyecto y aceptamos
  • Una vez creado nos vamos al proyecto: Menú contextual->Team->Commit...
SUBIR UN PROYECTO A UN REPOSITORIO DISTINTO
  • Sobre el proyecto: Menú contextual->Team->Disconnect...
  • Seguimos los pasos para subir un proyecto

viernes, 23 de enero de 2009

Limpiar la caché del servidor

Cuando estamos realizando muchos cambios en nuestro código, es aconsejable limpiar la caché del servidor de manera eventual porque puede que no esté actualizando dichos cambios y nos lleve a situaciones en las que nuestra aplición no se ejecute como se podría esperar.

jueves, 22 de enero de 2009

Filtros

¿QUÉ SON LOS FILTROS?

Los filtros son clases que nos permiten realizar ciertas operaciones sobre una petición (HttpServletRequest) antes de ser entregada al servlet destino y de la misma manera nos permite realizar ciertas operaciones sobre la respuesta (HttpServletResponse) de un servlet antes de ser entregada al cliente. La siguiente figura nos muestra dicho proceso:



Hay que tener en cuenta que:
  • Podemos tener más de un filtro para procesar la petición dispuestos en cadena
  • Un mismo filtro puede atender las peticiones de más de un servlet
  • Un filtro puede procesar únicamente la petición o únicamente la respuesta
¿QUÉ ACCIONES PODEMOS REALIZAR EN UN FILTRO?

Los filtros nos pueden permitir verificar los datos que el usuario envía a la aplicación, darle un formato determinado a esos datos, desviar la petición a otro servlet para que la procese antes de enviar la información al servlet destino, darle formato a la respuesta que envía el servlet, modificar convenientemente la respuesta de un servlet (por ejemplo una imagen, un fichero pdf, etc), etc. Hay dos importantes ventajas que nos ofrecen los filtros:
  • Descarga al servlet de realizar ciertas tareas relacionadas con la petición y la respuesta
  • Si está adecuadamente diseñado, nos permite reutilizar ese filtro en distintas aplicaciones
¿CÓMO SE CREA UN FILTRO?

  • Creamos una clase que implemente la interfaz javax.servlet.Filter
  • Implementamos sus métodos
  • Damos de alta el filtro en el fichero web.xml

miércoles, 21 de enero de 2009

Uso de Listeners

¿QUÉ ES UN LISTENER?

Un Listener (o escuchador) es una clase que implementa la interfaz Listener y que nos permite realizar ciertas acciones ante un evento determinado. Los eventos que atiende un escuchador son:
  • Cuando se inicia la aplicación (se crea el objetos ServletContext) y cuando se termina
  • Cuando se inicia una sesión (se crea un objeto HttpSession) y cuando se cierra
  • Cuando se realiza una petición (se crea un objeto HttpServletRequest) y cuando se destruye
La siguiente figura muestra el evento que produce cada objeto y el escuchador que atiende a dicho evento:



¿QUÉ ACCIONES PODRÍAMOS REALIZAR ANTE ESTOS EVENTOS?

Los escuchadores nos permiten inicializar las varibles de aplicación comunes a todos los usuarios (ServletContextListener), inicializar variables de sesión para un usuario (HttpSessionListener), hacer comprobaciones sobre los datos que el usuario envía a la aplicación (ServletRequestListener) o cualquier otra acción que necesitemos.

¿CÓMO SE CREA UN LISTENER?

  • Creamos una clase que implemente la interfaz Listener
  • Implementamos sus métodos
  • Lo damos de alta en el fichero web.xml