Entradas

El próximo estándar web

(Fuente: http://www.pc-actual.com/actualidad/noticia/2009/02/26/El-proximo-estandar-Web ) Desde su nacimiento, la Web ha ido evolucionando, pasando de ser una red de documentos simples entrelazados a principios de los ochenta a una granestructura para ejecutar aplicaciones y servicios En ocasiones, los fabricantes del software que permite acceder a la Web, los conocidos navegadores, han incluido en sus productos extensiones de manera unilateral, como las etiquetas propietarias en el lenguaje HTML , dando lugar a incompatibilidades entre navegadores. Éste fue el origen de todos los problemas para los diseñadores web, que tenían que comprobar el navegador empleado por el usuario para adaptar el código o bien decantarse por uno de ellos e indicar en las páginas qué programa debía ser utilizado para verlas correctamente. Aunque se trata de una excepción a la regla, en casos contados, esas extensiones unilaterales han terminado siendo aceptadas, explícita o implícitame

Guardar imágenes en base de datos usando JPA

Hay infinidad de ejemplos de cómo guardar una imagen a base de datos con JDBC, y cómo recuperarla. Pues esta vez mostraré un ejemplo usando JPA. Supongamos que nuestra clase entidad tiene una propiedad llamada imagen que es donde se guardará la imagen. Esta propiedad debe declararse así: @Lob @Column(name = "imagen") private byte[] imagen; Para guardar una imagen (supongamos una que esté en el disco), debemos realizar lo siguiente: Entidad i = new Entidad(); // nuestra entidad File f = new File("D:/Imagen006.jpg"); //asociamos el archivo fisico InputStream is = new FileInputStream(f); //lo abrimos. Lo importante es que sea un InputStream byte[] buffer = new byte[(int) f.length()]; //creamos el buffer int readers = is.read(buffer); //leemos el archivo al buffer i.setImagen(buffer); //lo guardamos en la entidad em.persist(i); //y lo colocamos en el EntityManager Ahora, para recuperar el contenido haremos que se muestre el contenido en un JFrame: Enti

Ya no habrá versión 7 de NetBeans

Ya no habrá NetBeans 7.0 Habrá NetBeans 6.7 para junio de 2009. El equipo de desarrollo de NetBeans - según indican en su noticia ( http://www.netbeans.org/servlets/NewsItemView?newsItemID=1346 ) - que se centrarán en cambios más pequeños, y no harán sus clásicos nuevas versiones que son dos veces cada año. (Al menos nos dará un respiro para los que traducimos el NetBeans al español) Indican también que los cambios de versiones en decimales (6.1, 6.5, 6.7..) son cambios pequeños en la aplicación y que mantienen la compatibilidad del API. Muy bueno para los desarrolladores de plugins. Mientras que las versiones de números enteros (5, 6, 7) son cambios considerables en el API de NetBeans, y en su plataforma. La versión oficial de 6.7 será lanzada en junio de este año, y entre las características importantes son las integraciones de Maven y de Kenai. La próxima semana será lanzada la versión 6.7 ML 2. Sería intersante bajarlo cuando esté disponible e irlo probando, a fin de ayudar en su

Resolviendo examenes

Imagen
Este post no tiene nada que ver con NetBeans ni Java, ni tecnología parecida. Me llegó un mail bastante divertido y me gustaría compartirlo. El problema de los exámenes son los profesores que no entienden las habilidades de uno: no entiendo por qué me puso cero, si la hallé! pero si la estuve expandiendo!     Aquí tuve un accidente.. y me desesperé "Profe, le juro que el elefante ya estaba ahí cuando me dió el examen!" Esta estaba regalada la respuesta.

Aprendiendo sobre Alcances de variables de Sesión en JSF

Imagen
(Versión Wiki: http://wiki.netbeans.org/AprendiendoSobreAlcancesJSF ) Introducción Sabemos que es un dolor de cabeza usar las variables de sesión a través de los objetos HttpSession y HttpRequest. No sabemos si una variable está en nivel de sesión o en nivel de request, simplemente lo ponemos y lo usamos, aunque después nos pueden dar problemas a lo largo de la aplicación Pero al usar JSF esto se hará mucho más sencillo. JSF nos permite utilizar tres tipos de alcances: Aplicación: Una variable guardada en este alcance es visible durante toda la aplicación, hasta que se repliegue la aplicación o hasta que se detenga el servidor. Sesión: Una variable guardada a nivel de sesión, puede ser visible durante el tiempo de vida del usuario en la aplicación, hasta que se invalide la sesión. Request : Una variable en nivel request dura solo hasta la siguiente página, Una página 1, guarda la variable en nivel request y redirecciona la petición a la página 2. La página 2 la utiliza, y el objet

Convirtiendo Date a String / String a Date

Podemos convertir un objeto fecha a String de varias maneras. Cada manera es un tipo de formato establecido por el JVM instalado en nuestro computador. Consideremos este ejemplo: Date d1 = new Date(); DateFormat[] dfa = new DateFormat[6]; dfa[0] = DateFormat.getInstance(); dfa[1] = DateFormat.getDateInstance(); dfa[2] = DateFormat.getDateInstance(DateFormat.SHORT); dfa[3] = DateFormat.getDateInstance(DateFormat.MEDIUM); dfa[4] = DateFormat.getDateInstance(DateFormat.LONG); dfa[5] = DateFormat.getDateInstance(DateFormat.FULL); for (DateFormat df : dfa) { System.out.println(df.format(d1)); } En mi caso, el resultado es: 09/02/09 10:29 AM 09/02/2009 09/02/09 09/02/2009 9 de febrero de 2009 lunes 9 de febrero de 2009 Notemos el resultado del formato obtenido por DateFormat.getInstance() . Es toda la fecha en formato corto, además de la hora. Mientras que si obtenemos el formato con DateFormat.getDateInstance() la fecha se muestra en formato medio (Podemos consultar la configuració

getParameter en JSF

En JSF todos los valores de los formularios se pasan por ManagedBeans (con más detalle lo veremos en el curso que está a punto de salir) Pero ¿qué pasa si queremos procesar una petición con parámetros? En Java web y Struts podemos acceder a los parámetros a través del objeto implícito "request", pero JSF no hay ese objeto implícito ¿qué se hace? Bueno, para acceder al objeto request debemos hacer lo siguiente: HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest(); A partir de allí, podemos usar el objeto request . Ahora, los nombres de los controles tendrán un ligero cambio. Estará compuesto por el "id" del formulario y del "id" del mismo control. Por ejemplo, consideremos este .jsp <h:form id="form0"> <h:outputLabel value="Escriba número:"/> <h:inputText id="numeroText" value="#{form.numero}" /><br/> ... Entonces, para acceder

Diferencias entre JSF puro, Woodstock y ICEfaces en NetBeans

Soy sincero para mi el mejor framework para web que conocí y trabajé era Struts 1, y no me quería pasar a JSF porque lo veía igual que Struts. NetBeans sacó su Visual Web que es un editor visual pero con JSF. Los componentes adicionales son del framework Woodstock. Aún así, no me atraía, porque no tenía el mismo control que lo tenia en Struts. Pero con la moda y ventajas de AJAX, mi pobre Struts me estaba dando algunos problemas, por lo que tuve que poner DWR, Dojo, y demás bibliotecas que hacían más pesada mi aplicación. Hace poco NetBeans anunció el cambio de Woodstock a ICEfaces. Así que, me aventuré a usarlo. La verdad lo veo mucho más sencillo, más ligero, y más completo. Con JSF, las aplicaciones son tan clásicas como los request/response en servlets y jsp, solo que le da un toque especial. El desarrollo de la aplicación web parece ser de una de escritorio, ya que se pueden  acceder a los controles como si fueran variables. Una diferencia bastante notable comparada a Struts. En S

CRUD con JSF usando ICE Faces

Imagen
(Versión wiki: http://wiki.netbeans.org/CRUDconVisualiceFaces ) Este tutorial permite guiar los pasos para realizar una simple aplicación que mantiene una tabla de una base de datos. Permite realizar Insert, Update y Delete (CRUD= Create / Read / Update / Delete) Además se considerará la funcionalidad importante de ICE faces, que es el uso de Ajax. Para ello lo realizaremos con lo siguiente: Java Development Kit 5 ó 6 NetBeans 6.5 con el Plugin VisualJSF, ICEFaces Design-Time and Run-Time Libraries , y ICEfaces Project Integration Glassfish V2 La base de datos ejemplo TRAVEL de JavaDB Creando la aplicación Diseñando la aplicación Creamos un proyecto web presionando Mayúscula+Ctrl+N. Será una aplicación web que tendrá por nombre InsertUpdateDelete , utilizará Glassfish y activamos la opción que necesitamos usar el Visual Web ICEfaces El editor habrá abierto el archivo Page1.jsp en modo diseño. Como una advertencia aparece un texto indicando que no se las paletas de Visual Java

Configurar NetBeans con WebLogic

Imagen
(Tomado de http://www.nabble.com/Netbeans-6.5-can't-add-Weblogic-10.3-server-td20002675.html ) Considerando que se tiene instalado WebLogic 10.3 en c:\oracle\Middleware\wlserver_10.3, el usuario es weblogic y su contraseña weblogic: 1. Abrir el archivo %HOME_PATH%\.netbeans\6.5\config\J2EE\InstalledServers\.nbattrs Es un archivo en formato xml 2. Agregar la siguiente etiqueta: <fileobject name="__instance_4__"> <attr name="debuggerPort" stringvalue="8787"/> <attr name="displayName" stringvalue="BEA WebLogic Server"/> <attr name="domainRoot" stringvalue="C:/oracle/Middleware/wlserver_10.3/samples/domains/wl_server"/> <attr name="isLocal" stringvalue="true"/> <attr name="password" stringvalue="weblogic"/> <attr name="registeredWithoutUI" stringvalue="false"/> <attr name="serverRoot" stringvalue=

Base de datos relacionales en Java: HSQLDB y Apache Derby (Parte 1)

Imagen
Hola a todos comenzaré este año con un post que quizás para algunos sea aburrido. Base de datos relacionales 100% Java. Ojo, no estoy diciendo que sean bases de datos orientados a objetos. Eso es otro tema. Sino, que son bases de datos relacionales (esos de Entidad-relación, tuplas, relaciones, columnas, claves foráneas, etc.) cuyo motor está hecho en Java. Por tanto, si queremos modificar algo de su funcionamiento, pues encontraremos el código en Java. No en C, ni C++, ni C#, sino en Java. Sabemos que los drivers de tipo 4 de JDBC se conectan directamente a la base de datos usando protocolos de red en java puro. Entonces, podemos suponer que usando bases de datos en java con jdbc en java, la conexión es mucho más directa, y se accede a los datos sin intermediarios. Bueno, es solo una suposición personal. En este post comentaré de dos RBDMS en Java muy conocidos y usados: HSQLDB y Apache Derby . Haremos ejemplos usando NetBeans 6.5, aunque también funcionará en NetBeans 6.1. Comenzar