martes, 22 de diciembre de 2015

Validar Formularios en Spring MVC

Uno de los temas más importantes en cuanto a la seguridad y la prevención de errores es la validación de los datos de entrada de los usuarios en el servidor. No podemos limitarnos a realizar validaciones únicamente en el cliente, ya que de forma muy fácil se pueden saltar estos mecanismos, y la
Spring Logo
validación por ejemplo mediante javascript en el navegador se utiliza para mejorar la experiencia del usuario, pero nunca debe ser un sustituto de la validación en el servidor.

No es necesario validar los datos en los métodos del controlador, desde la versión 3 de Spring Framework, tenemos compatibilidad con la API de validación de Java (JSR-303) y no es necesaria ninguna configuración adicional, basta con incluir una implementación de la API como Hibernate Validator en las librerías del proyecto:

sábado, 19 de diciembre de 2015

Formularios con Spring Tags

En el artículo anterior sobre Spring MVC vimos cómo procesar un formulario con etiquetas HTML, sin embargo Spring dispone de una librería de TAGS que podemos utilizar para crear vistas y enlazarlas con el modelo.

En este ejemplo vamos a ver cómo realizar un sencillo formulario mediante las etiquetas de Spring y recibirlas en el controlador.


El código completo del ejemplo esta disponible en mi repositorio de github.

En primer lugar es necesario definir la librería en la página JSP mediante:
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>

jueves, 17 de diciembre de 2015

Threads o Hilos en Java con Ejemplos

En muchas ocasiones nos interesa  que nuestro programa en Java realice varias tareas a la vez y de esta forma enriquecer la experiencia del usuario. ¿ Te imaginas un navegador web que no permita navegar por Internet hasta que no termine de descargar un archivo?



Un programa en Java se ejecuta en un Thread o Hilo principal, que es invocado cuando se ejecuta el método main. Pero nosotros podemos crear múltiples hilos, en Java no tenemos un límite máximo para cuántos podemos crear, el límite lo impone el sistema operativo y la memoria disponible para nuestro programa.




Existen 3 formas de crear hilos en Java:

miércoles, 16 de diciembre de 2015

Aprender a programar en Java

Muchas veces he recibido correos electrónicos y o leído en foros de personas que quieren iniciarse en el mundo de la programación, o ya saben algún lenguaje y quieren aprender Java. 
En mi opinión la mejor forma de aprender a programar en Java es mediante un buen curso presencial, con una buena cantidad de horas donde el profesor no esté pillado de tiempo. Sin embargo, en algunos casos no tenemos esa posibilidad ya sea por trabajo, por dinero, o porque simplemente no los realizan en tu ciudad.

En el caso de no poder realizar un curso, la segunda mejor opción es hacer uso de los recursos de los que disponemos en Internet junto con algún libro. Discrepo bastante de esas respuestas de los foros en las que envían a la gente directamente a la documentación de Oracle sin más, es uno de los mejores recursos, sí, pero personalmente considero que es más un complemento a la formación.

Los libros en español muchas veces no están actualizados, pero eso no debe frenarte ya que de lo que se trata es de aprender los fundamentos del lenguaje y la sintaxis.


Libros que Recomiendo:

lunes, 14 de diciembre de 2015

Información del Sistema de Archivos en Java - FileSystem

La clase FileSystem representa el sistema de archivos.  Es dependiente de la plataforma por lo que no podemos crear un objeto directamente, sino que es necesario utilizar el método estático getDefault() de la clase FileSystems:

FileSystem fs = FileSystems.getDefault();

En el siguiente ejemplo se muestra:
  • Listado de las unidades de almacenamiento disponibles
  • Formato del sistema de archivos (NTFS, FAT...)
  • Espacio Total del disco
  • Espacio Libre del disco
  • Listado de los directorios raíz del sistema.

viernes, 11 de diciembre de 2015

Recibir parámetros de un formulario con Spring MVC

Uno de los elementos más utilizados en una aplicación web son los formularios, y Spring MVC nos provee una forma de utilizarlos bastante elegante en mi opinión. En este ejemplo veremos como
procesar los datos recibidos de un formulario HTML.



El código completo del ejemplo lo puedes encontrar en mi repositorio de GitHub






En primer lugar vamos a ver un formulario html  y como Spring MVC es capaz de recoger esos parámetros enviados y recibirlos en un controlador:

viernes, 4 de diciembre de 2015

Hola Mundo con JavaFX: Stage, Scene, Node y Scene Graph

En este artículo vamos a crear nuestro primer programa utilizando Java Fx 8, veremos su estructura y analizaremos las distintas partes de las que se compone.

Cuando creamos un nuevo proyecto tenemos disponibles varias alternativas para iniciarlo:
Nuevo Proyecto JavaFX
Nuevo Proyecto en JavaFX

Básicamente son plantillas para evitarnos escribir código o crear nuevos archivos. La opción de JavaFX Application es la opción base, pero resultan más interesantes las siguientes, como Preloader que se utiliza para mostrar una pantalla inicial con alguna información, por ejemplo si debe cargar datos o realizar acciones que pueden demorarse se mostraría una ventana de con una barra de progreso, lo que mejora mucho la experiencia de usuario, ya que ejecutar un programa y esperar unos segundos a que se inicie sin saber que está pasando suele disgustarnos a todos.

martes, 1 de diciembre de 2015

Ejemplos de RequestMapping en Spring MVC

En este artículo vamos a profundizar en el uso de los controladores en Spring MVC. En el ejemplo anterior donde configurábamos Spring mediante Java, vimos un controlador lo más sencillo posible, ahora vamos a ver una serie de ejemplos de uso de los controladores.


Como ya habrás adivinado, la anotación @Controller define un Controlador y no es necesario implementar ningún interface o extender de una clase como en otros frameworks. El DispatcherServlet se encarga de delegar las peticiones HTTP en nuestros controladores, y según la petición ejecutar una funcionalidad.



Lo más interesante es cómo mapear estas peticiones y generar una respuesta, para ello utilizamos la anotación @RequestMapping.