Ext JS – Comunicación con el Servidor

2 comentarios

En el post anterior mostré como empezar con Ext JS. Se creó un MessageBox que mostraba un "Hola Mundo". Pero todo ocurría en el cliente(browser). ¿Qué pasa si deseas que ese mensaje venga desde el servidor web?, o ¿Si deseas enviar datos al servidor web para que este los grabe en una base de datos y no esté refrescando la página web?. Bueno este tutorial te enseña como dar el primer paso, en un posterior post eneseñaré como tulizar los principales componentes de extjs como los formularios y grids.

Paso 0:
Ahora si, es momento que utilices una tecnología del lado del servidor como PHP, ASP o JSP y servlets. Como en mi sangre fluye Java, pues los ejemplos serán con JSP y Servlets.
Ten listo un proyecto web en eclipse o netbeans o en cualquier otro IDE que te permita trabajar.

Paso 1:

En el cliente:
El siguiente HTML muestra un botón que al dar click mostrará un MessageBox como en el ejemplo del post anterior, pero ahora el mensaje que mostrará será un texto enviado desde el servidor web:


<html>
<head>
<link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css"/>
<script type="text/javascript" src="extjs/ext-all.js"></script>
</head>
<body style="padding:10px;">
<button onClick="javascript:obtenerHoraDelServidor();">Obtener Hora Del Servidor</button>
<script type="text/javascript">
//Código ExtJS
</script>
</body>
</html>


Paso 2:
Ahora añade el siguiente código dentro de <script>...</script>

function obtenerHoraDelServidor(){
Ext.Ajax.request({
url:'HoraServidorServlet',
method:'GET',
params:{
accion:'obtenerHora'
},
success: function(response, opts){
var mensaje = response.responseText;
Ext.MessageBox.show({
title:'Hora del servidor',
msg:mensaje,
buttons:Ext.MessageBox.OK,
icon:Ext.MessageBox.INFO
});
},
failure: function(response, opts){
//...
}
});
}


La clase Ext.Ajax permite entablar una comunicación con el servidor, su método request indica la url que gestionará la petición en el servidor, los parámetros a enviar y el procesamiento de la respuesta satisfactoria del servidor(función success) o el procesamiento de una respuesta de error del servidor(función failure).

Paso 3:
En el servidor:
En el paso 2 indicamos una url de servidor. Entonces es momento de crear el servlet que gestionará la petción del cliente(browser):


public class HoraServidorServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss (dd/MM/yyyy)");
String fechaConFormato = sdf.format(new Date());
out.print("Hora del Servidor: " + fechaConFormato );
out.close();
}
}


Observen que el servlet gestiona una petición por método GET(fué indicado en el Ext.Ajax.request()).

Luego de que tienes listo el servlet, ejecuta tu aplicación web y desde index.html o como llamaste a tu html y da click en el botón. El resultado debe ser como se muestra en la siguiente figura:

Ext JS - Instalación

1 comentarios

Antes de empezar, expreso mis saludos a todos mis amigos que son padres, hoy es su día y espero estén celebrando como se debe. En especial un saludo a los papás sistémicos e informáticos que conozco y que le hechan duro a la chamba para que su familia no le falte nada.

Ahora sí, manos a la obra:
En el presente mini tutorial mostraré como empezar a utilizar Ext JS en una página web simple. En un posterior post enseñaré como interactuar con el servidor web.

Para poder empezar a utilizar Ext JS basta con inlcuir 2 archivos(un CSS y un javascript) en un página HTML. Y menciono HTML para desligarlo de cualquier tecnología del lado del servidor(PHP, Servlet o JSP) ya que como mencioné en el post anterior Ext JS es un framework JavaScript por tanto se ejecuta en el cliente(browser). Disculpen si hago incapié en esto pero me interesa que todo vaya quedando claro.

Ahora sí, los pasos para hacer el "Hola Mundo" fundamental y el que servirá como punto de partida para aprender Ext JS.

Paso 0:
* Descarga Ext JS 4.0 del siguiente link:
http://www.sencha.com/products/extjs/download/ext-js-4.0.2a/213
* Crea una carpeta llamada demo01 en su interior crea un HTML llamado index.html
El cuerpo del HTML que sea algo simple como:


<html>
<head></head>
<body></body>
</html>


No necesitamos nada más para empezar.
* Dentro de la carpeta demo01 crea otra llamada extjs, y dentro de esta carpeta copiarás el archivo ext-all.js y la carpeta resources que se encuentran en los fuentes descargados de Ext JS 4.0.

Paso 1:
Dentro del elemento <head>...<head> añade las siguientes líneas:

<link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css"/>
<script type="text/javascript" src="extjs/ext-all.js"></script>

Nota: En versiones anteriores a la 4 era necesario incluir un archivo adicional (el adapter) pero ahora ya no lo es.
 
Paso 2:
Dentro del elemento <body> ... </body> añade las siguientes líneas:

<script type="text/javascript">
Ext.onReady(function(){
Ext.MessageBox.show({
title:'Info',
msg:'Hola Mundo',
buttons:Ext.MessageBox.OK,
icon:Ext.MessageBox.INFO
});
});
</script>


Paso 3:
Ejecuta index.html y observa el resultado.
Verás el mensaje "Hola Mundo" dentro de una ventana flotante.

El MessageBox es solo uno de los muchos componentes que tiene Ext JS.
Siempre que tengas dudas de la sintaxis o requieres información
de qué parámetros utilizar héchale un vistazo al API, que es muy bueno:
http://dev.sencha.com/deploy/dev/docs/

Ahí puedes consultar la clase Ext y su método onReady, al igual que la clase Ext.MessageBox y su método show.

Noten que hablo de clases; cuando vean el API entenderán a que me refiero. Los creadores de este framework lo conceptualizaron así y acertaron en hacerlo ya que te permite crear componentes a partir de los que ya existe(HERENCIA), de esto hablaremos mas adelante.

Ext JS - Introducción

0 comentarios

Después de haber cumplido con mi deber cívico acercándome a votar en estas elecciones presidenciales 2011, me relajaré un poco posteando acerca de Ext JS.

En este post hablaré de forma general acerca de Ext JS, en un siguiente post publicaré mini tutoriales de como usar Ext JS en aplicaciones web.

Ext JS
Es un framework JavaScript para construir aplicaciones RIA utilizando AJAX, DHTML, CSS y DOM. Extiende de Prototype, JQuery y YUI.

Ejemplo de una grilla de datos desarrollada en Ext JS:

La imagen anterior muestra una grilla creada con Ext JS, está construida netamente con Javascript y CSS. No es construida en el servidor, el server solo se encarga de enviar al cliente la data en formato JSON o XML, y el cliente se encarga de leer estos datos y cargarlos en la grilla. De esta manera la lógica del servidor puede ser implementada con PHP, Servlets o JSP, ASP u otras tecnologías del lado del servidor.

Ventajas:
* Permite crear aplicaciones complejas utilizando componentes predefinidos así como un manejador de layouts similar al que provee Java Swing, esto provee una experiencia consistente sobre cualquier navegador, evitando el tedioso problema de validar que el código escrito funcione bien en cada uno (IE , Firefox, Opera, Safari, etc.).
* No necesita que la máquina cliente tenga instalado un plugin externo, Ya que es código JavaScript.
* Cuenta con un Un API fácil de usar. Los creadores de Ext JS han diseñado un modelo de componentes extensibles por herencia. Cabe recalcar que JavaScript no es un lenguaje orientado a objetos sino que sigue el paradigma de programación basada en prototipos y la herencia que hace es aplicando prototipado.

Desventajas:
* En versiones anteriores a la 3, la falta de un diseñador gráfico limitaba la producción fácil y rápida de las interfaces(aunque para quienes nos apasiona programar no era un limitante, por suerte tenía un API fácil de usar). A partir de la versión 3 ya existe Ext Designer

* Ext JS al ser una librería Javascript independiente de cualquier tecnología del lado del servidor no existe una forma por defecto de realizar binding entre los componentes visuales con el respectivo modelo; como por ejemplo querer que los datos del formulario sean cargados automáticamente en un bean, pero afortunadamente con frameworks como Spring y un poco de Código JavaScript se puede lograr esto.

Fuentes de aprendizaje:
* Video tutoriales de Ext JS, útiles para quienes se inician en Ext JS:
http://www.quizzpot.com/
* + Video tutoriales:
http://www.extjs.tv/
* Libro "Ext JS In Action":
http://www.manning.com/garcia/
* Site Oficial de Ext JS:
http://www.sencha.com/
* Grupo ExtJS Peru User Group:
http://groups.google.com/group/extjs-peru-user-group

Otra información:
Este framework es de propiedad de la empresa Sencha que además cuenta con otros frameworks como
* "Sencha Touch" para hacer aplicaciones web con componentes que pueden ser renderizados en dispositivos Iphone y Android.
* "Ext GWT" para los amantes de Java y GWT (Google Web Toolkit). Es una extensión del GWT que sirve para crear interfaces tales como se muestra en Ext JS.

Lima TI

3 comentarios

Este es mi primer post de este año, como que me he demorado un poco.
Quiero anunciar que hemos publicado el site de nuestra empresa: http://lima-ti.com.
Es una empresa que hemos fundado un grupo de amigos y yo en el 2009.

Y uno de los principales frameworks que promocionamos y que utilizamos en nuestro desarollo es Ext JS, además de Java (Spring, Hibernate y Faces).

Iré publicando más de Ext JS en mi blog y en en el grupo oficial de google:
http://groups.google.com/group/extjs-peru-user-group
Todos están invitados a formar parte de este grupo.

Facebook de Lima TI:


Twitter:


Spring Community Day Lima 2010

0 comentarios

El Sábado 27 de noviembre del presente año, se realizará el Spring Community Day, al igual que el año pasado, será en la UPC.

Para el registro y mayor información haz click en "Register Now":

Spring Community Day Lima 2010

0 comentarios

El Sábado 27 de noviembre del presente año, se realizará el Spring Community Day, al igual que el año pasado, será en la UPC.

Para el registro y mayor información haz click en "Register Now":

SCJP(Sun Certified Java Programmer) 6.0

13 comentarios

Hace un tiempo hablé sobre la SCJP 5.0, hoy hablaré sobre la SCJP 6. Aunque ahora la llamaría OCJP(Oracle Certifi....), primero que nada tal como lo dice este link: http://www.oracle.com/dm/11q1field/53009_cert_rebranding_pe_ol.html oracle no ha cambiado el contenido del examen, por lo que las personas que han estudiado y van a rendir su examen no deben preocuparse. La única diferencia es que ahora tu certificado saldrá a nombre de Oracle.

Este examen está compuesto por 7 objetivos de aprendizaje:
1) Declarations, Initialization and Scoping
2) Flow Control
3) API Contents
4) Concurrency
5) OO Concepts
6) Collections / Generics
7) Fundamentals

Estos 7 temas son los que debes estudiar para el examen. Y como observarás, son los mismos objetivos que tiene la SCJP 5, solo que han reforzado temas como:
En el objetivo API Contents:
* Han introducido el estudio de una nueva clase llamada java.io.Console que solo lo tiene el jdk 6
En el objetivo Collections / Generics
* Ha introducido el estudio de dos nuevas interfaces llamadas: java.util.NavigableSet y java.util.NavigableMap. que solo lo tiene el jdk 6

Notas extras sobre esta certificación:
* Código del examen: CX-310-065
* Prerequisito: Ninguno.
* Número de preguntas: 60
* Pasas con: 58.33% (35 de 60 preguntas)
* Tiempo límite: 180 minutos(3hr )
* Idiomas Disponibles: Español, Inglés , Ruso, Alemán, Francés. Chino.

Para esta certificación estudié del libro "Sun Certified Programmer for Java 6 Study Guide" de Kathy Sierra y Bert Bates: http://www.amazon.com/SCJP-Certified-Programmer-Java-310-065/dp/0071591060.
Y cuando rendí el SCJP 5 estudié de la version 5 del mismo libro así que se los recomiendo.

Basándome en este libro elaboré mi resumen en español de todos los capítulos, lo pueden descargar del siguiente link:
http://www.lima-ti.com/public/mayer/scjp6_resumen_MayerHorna.zip