laboratorio 2 json

44
TALLER No. 2: JSON Maricela Martínez Rivera - 65.794.296 Giovani Cardona Marín – 1.035.913.434 Fundamentos de Sistemas de Información Profesor: Diego Botia UNIVERSIDAD DE ANTIOQUIA FACULTAD DE INGENIERÍA

Upload: mary-martinez-rivera

Post on 15-Sep-2015

29 views

Category:

Documents


3 download

DESCRIPTION

paso a paso para implementar jason

TRANSCRIPT

TALLER No. 2: JSON

Maricela Martnez Rivera - 65.794.296Giovani Cardona Marn 1.035.913.434

Fundamentos de Sistemas de InformacinProfesor: Diego Botia

UNIVERSIDAD DE ANTIOQUIAFACULTAD DE INGENIERA INGENIERA DE SISTEMAS2015-1

TABLA DE CONTENIDO

Pg.

INTRODUCCION.3OBJETIVO GENERAL4 OBJETIVOS ESPECFICOS...4

HERRAMIENTAS EMPLEADASWEB BROWSER.... 4NETBEANS IDE.5JSON .. 5JDK...9

MARCO TEORICO.....10PROCEDIMIENTO..11CONCLUSIONES..33BIBLIOGRAFIA..34

INTRODUCCION

En este informe conoceremos un poco sobre JSON (JavaScript Object Notation) que es un formato de intercambio de informacin que est basado en estructuras de pares clave-valor. Es un formato mucho ms liviano que XML y ms indicado y ms eficiente en determinados proyectos. Puede darse la situacin de que en nuestra aplicacin Java, necesitemos atender peticiones representadas en JSON, transformarlas a Java, tratar los datos y devolver una respuesta en JSON; as como veremos cmo convertir objetos Java en objetos JSON y viceversa de manera muy sencilla gracias a la librera open-source Gson.Adems conoceremos un poco acerca del uso de peticiones GET y POST usando el protocolo RESFULL para consumir servicios WEB como formato estndar.Tambin emplearemos llamadas con AJAX desde una pgina JSP haca un servlet por medio de JQuery y l envi y recepcin de las respuestas se harn con JSON. Para hacer esto emplearemos una librera JSON en el Servlet y luego sern mostradas en la pgina web de un navegador.

I. OBJETIVO GENERAL Conocer y comprender los conceptos y el funcionamiento del estndar XML, AJAX y JSON visualizando un modelo de integracin de informacin.

OBJETIVOS ESPECFICOS Determinar manejo de herramientas usadas en el desarrollo de lenguaje XML. Implementacin de archivos con el lenguaje XML, AJAX y JSON

II. HERRAMIENTAS EMPLEADAS Web Browser. Editor de XML. Netbeans 8.0.2 JDK.WEB BROWSER (GOOGLE CHROME)Google Chrome es el navegador web de Google. Este navegador web, desarrollado en el proyecto Chromium, est basado en cdigo abierto y utiliza el motor de renderizado Webkit.Google Chrome funciona sobre el sistema operativo Windows y en versin beta se puede encontrar para Mac y Linux.Cabe destacar que Google Chrome es un navegador que busca el soportar los diferentes estndares que hay en la web y en su versin 3.0.192.0 ya era compatible a un 100% con el test ACID3.De igual forma Google Chrome busca un gran rendimiento en la ejecucin de cdigo javascript y para ello han desarrollado el motor Javascript V8.

Versiones

La versin actual de Google Chrome es Google Chrome 4.1 Beta 5 como versin oficial y Google Chrome 5.0 como versin en desarrollo. Esta ltima ya incorpora el soporte a Mac y Linux.

CaractersticasEl navegador ejecuta las pestaas en procesos separados del sistema operativo. Lo cual permite hacer una gestin separada de las pestaas y en el caso de que se cuelgue una pestaa evita que se cuelgue el navegador.Permite hacer navegacin de incgnito, mediante la cual no se deja rastro en la mquina de los sitios por los que se ha navegado (cookies, historial,)Realiza gestin de pestaas. Podemos abrir diferentes enlaces en diferentes pestaas. Sin necesidad de abrir una ventana nueva.Las pestaas estn situadas en la parte superior del navegador. Lo cual permite tener un rea de navegacin ms grande.Su barra de navegacin se llama omnibox la cual lleva capacidades de autocompletado de bsquedas, sugerencia de bsqueda,Permite crear accesos directos a URL. De esta manera podremos tener un icono que nos lance una URL como si fuera una aplicacin.La funcionalidad bsica de Google Chrome se puede mejorar mediante sus extensiones. Hay extensiones que nos permiten poner accesos a GMail, a Google Reader, a peridicos como El Mundo o Marca,Nos permite tener sincronizados nuestros favoritos (bookmarks) independientemente de dnde tengamos instalado el Google Chrome. Para ello utiliza una cuenta de google. As, si tenemos Google Chrome instalado en el PC de casa y en el del trabajo, podremos ver los mismos favoritos en ambos. XMLXML, siglas en ingls de eXtensible Markup Language ('lenguaje de marcas extensible'), es un lenguaje de marcas desarrollado por el World Wide Web Consortium (W3C) utilizado para almacenar datos en forma legible.

XML proviene de un lenguaje inventado por IBM en los aos setenta, llamado GML (Generalized Markup Language), que surgi por la necesidad que tena la empresa de almacenar grandes cantidades de informacin. Este lenguaje gust a la ISO, por lo que en 1986 trabajaron para normalizarlo, creando SGML (Standard Generalized Markup Language), capaz de adaptarse a un gran abanico de problemas. A partir de l se han creado otros sistemas para almacenar informacin.

En el ao 1989 Tim Berners Lee cre la web, y junto con ella el lenguaje HTML. Este lenguaje se defini en el marco de SGML y fue de lejos la aplicacin ms conocida de este estndar. Los navegadores web sin embargo siempre han puesto pocas exigencias al cdigo HTML que interpretan y as las pginas web son caticas y no cumplen con la sintaxis. Estas pginas web dependen fuertemente de una forma especfica de lidiar con los errores y las ambigedades, lo que hace a las pginas ms frgiles y a los navegadores ms complejos.

Otra limitacin del HTML es que cada documento pertenece a un vocabulario fijo, establecido por el DTD. No se pueden combinar elementos de diferentes vocabularios. Asimismo es imposible para un intrprete (por ejemplo un navegador) analizar el documento sin tener conocimiento de su gramtica (del DTD). Por ejemplo, el navegador sabe que antes de una etiqueta debe haberse cerrado cualquier previamente abierto. Los navegadores resolvieron esto incluyendo lgica ad hoc para el HTML, en vez de incluir un analizador genrico. Ambas opciones, de todos modos, son muy complejas para los navegadores.Se busc entonces definir un subconjunto del SGML que permita: Mezclar elementos de diferentes lenguajes. Es decir que los lenguajes sean extensibles. La creacin de analizadores simples, sin ninguna lgica especial para cada lenguaje. Empezar de cero y hacer hincapi en que no se aceptan nunca un documento con errores de sintaxis.Para hacer esto XML deja de lado muchas caractersticas de SGML que estaban pensadas para facilitar la escritura manual de documentos. XML en cambio est orientado a hacer las cosas ms sencillas para los programas automticos que necesiten interpretar el documento.XML no ha nacido slo para su aplicacin para Internet, sino que se propone como un estndar para el intercambio de informacin estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de clculo y casi cualquier cosa imaginable.

XML y sus extensiones han sido regularmente criticadas por su nivel de detalle y complejidad. El mapeo del modelo de rbol bsico de XML hacia los sistemas de tipos de lenguajes de programacin o bases de datos puede ser difcil, especialmente cuando se utiliza XML para el intercambio de datos altamente estructurados entre aplicaciones, lo que no era su objetivo primario de diseo.

La tecnologa XML busca dar solucin al problema de expresar informacin estructurada de la manera ms abstracta y reutilizable posible. Que la informacin sea estructurada quiere decir que se compone de partes bien definidas, y que esas partes se componen a su vez de otras partes. Entonces se tiene un rbol de trozos de informacin. Ejemplos son un tema musical, que se compone de compases, que estn formados a su vez por notas. Estas partes se llaman elementos, y se las seala mediante etiquetas.

Una etiqueta consiste en una marca hecha en el documento, que seala una porcin de ste como un elemento. Un pedazo de informacin con un sentido claro y definido. Las etiquetas tienen la forma , donde nombre es el nombre del elemento que se est sealando.Para editar documentos XML, al igual que para hacerlo con HTML, se puede hacer de dos formas: editndolos como cualquier otro fichero ASCII, usando, si acaso, un editor estructurado como el XEmacs, o bien usar un editor especfico para XML, que entiende las particularidades del lenguaje, lo indenta como est mandado, y te cierra las etiquetas automticamente.

Para hacer esto hay muchas opciones, tanto en Windows como en Linux, aunque la mayora es de pago. Por ejemplo, XMLSpy tiene un buen entorno, funciona solo para Windows, paro es relativamente inestable (al menos las versiones probadas). eXcelon Stylus permite adems aplicar transformaciones, en un entorno de tres paneles bastante regular. Tambin es relativamente caro. es bastante econmico para uso personal o acadmico, y tiene una versin de prueba de treinta das. Est basado en Java, y funciona tanto en Windows como en Linux. Te completa las etiquetas, y es aceptablemente rpido. Se basa tambin en bastantes herramientas libres, tales como Batik y FOP de Apache. Otra opcin, bastante simple, es XMLShell, que permite tambin hacer transformaciones XSLT simples.Los mismos entornos incluyen facilidades para validar el cdigo XML resultante, pero esto se puede hacer tambin usando analizadores XML, de los cuales hay muchos, de bastante buena calidad, y la mayor parte de ellos gratuitos. Uno de los ms conocidos y usados es el Xerces, del cual hay versiones en Java, en Perl y en C++. Es adecuadamente rpido, y adems incorpora todos los ltimos estndares del W3. Otra opcin, que adems se puede usar desde Internet, es el XParse de Jeremie, que te analiza directamente el documento y te lo presenta en forma de rbol.

La mayor parte de los validadores pueden trabajar de dos formas: de forma independiente, y usndolos como libreras desde el lenguaje de programacin de la eleccin de uno; por ejemplo, Xerces se puede usar stand-alone, o bien como una librera xerces.jar, cuyos objetos se pueden instanciar o usar desde el programa de uno.

CMDEs una abreviatura que significa COMMAND este comando sirve para abrir la consola de MS-DOS, es la principal herramienta para ejecutar comandosen Windows; desde esta consola pueden ejecutarse comandos de sistema operativo utilizando la lnea de comandos en vez de utilizar la interfaz grfica.

NETBEANSNetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programacin Java. Existe adems un nmero importante de mdulos para extenderlo. NetBeans IDE2 es un producto libre y gratuito sin restricciones de uso.NetBeans es un proyecto de cdigo abierto de gran xito con una gran base de usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo.La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados mdulos. Un mdulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como mdulo. Las aplicaciones construidas a partir de mdulos pueden ser extendidas agregndole nuevos mdulos. Debido a que los mdulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fcilmente por otros desarrolladores de software.

JDK (Java Development Kit)

Se trata de un conjunto de herramientas (programas y libreras) que permiten desarrollar (compilar, ejecutar, generar documentacin, etc.) programas en lenguaje Java. Existen versiones del JDK para prcticamente todos los Sistemas Operativos y existen tambin distintos programas comerciales Sun distribuye gratuitamente el JDK oficial para los siguientes sistemas operativos: Windows 95/98/NT, Solaris y Linux Se pueden conseguir en Internet (http://www.javasoft.com/) Los profesores de la asignatura los facilitarn a los alumnos que lo deseen en un CD-ROM prestado para la instalacin. Los JDK incorporan una herramienta de Debugger (detener la ejecucin de un programa en la lnea que se desee y poder conocer el valor de las variables en ese momento) La versin JDK1.2 se ha empezado a denominar tambin Java 2 JRE (Java Runtime Environment) Versin reducida del JDK que permite ejecutar cdigo Java No permite compilar ni utilizar el Debugger Viene incluido en el JDK pero tambin puede instalarse separadamente Es de libre distribucin

MARCO TERICO

JSONJSON(JavaScript Object Notation - Notacin de Objetos de JavaScript) es un formato liviano de intercambio de datos. Leerlo y escribirlo es simple; que para las mquinas es simple interpretarlo y generarlo. Est basado en un subconjunto del Lenguaje de Programacin JavaScript. JSON es un formato de texto que es completamente independiente del lenguaje pero utiliza de la familia de lenguajes C, incluyendo C, C++, C#, Java, JavaScript, Perl, Python, y muchos otros. Estas propiedades hacen que JSON sea un lenguaje ideal para el intercambio de datos.

JSON est constituido por dos estructuras: Una coleccin de pares de nombre/valor. En varios lenguajes esto es conocido como unobjeto, registro, estructura, diccionario, tabla hash, lista de claves o un arreglo asociativo. Una lista ordenada de valores. En la mayora de los lenguajes, esto se implementa como arreglos, vectores, listas o secuencias.Estas son estructuras universales; virtualmente todos los lenguajes de programacin las soportan de una forma u otra. En JSON, se presentan de estas formas:

Unobjetoes un conjunto desordenado de pares nombre/valor. Un objeto comienza con{(llave de apertura)y termine con}(llave de cierre). Cada nombre es seguido por:(dos puntos)y los pares nombre/valor estn separados por,(coma).

Unarregloes una coleccin de valores. Un arreglo comienza con[(corchete izquierdo)y termina con](corchete derecho). Los valores se separan por,(coma).

Unvalorpuede ser unacadena de caracterescon comillas dobles, o unnmero, otrueofalseonull, o unobjetoo unarreglo. Estas estructuras pueden anidarse.

Unacadena de caractereses una coleccin de cero o ms caracteres Unicode, encerrados entre comillas dobles, usando barras divisorias invertidas como escape. Un carcter est representado por una cadena de caracteres de un nico carcter. Unacadena de caractereses parecida a una cadena de caracteres C o Java.

Unnmeroes similar a un nmero C o Java, excepto que no se usan los formatos octales y hexadecimales.

Los espacios en blanco pueden insertarse entre cualquier par de smbolos.Exceptuando pequeos detalles deencoding, esto describe completamente el lenguaje.

GSONGson es una biblioteca de Java que se puede utilizar para convertir objetos Java en su representacin JSON.Tambin se puede utilizar para convertir una cadena JSON a un objeto Java equivalente.Gson puede trabajar con objetos Java arbitrarias incluyendo objetos preexistentes que usted no tiene el cdigo.GSON Objetivos Proporcionar toJson sencilla () y fromJson () para convertir objetos Java a JSON y viceversa Permitir preexistente objetos inmodificables para convertir desde y hacia JSON Amplio soporte de los genricos de Java Permitir representaciones personalizadas para objetos Soporte objetos arbitrariamente complejas (con jerarquas de herencia de profundidad y un amplio uso de tipos genricos)

JSPJSP es un acrnimo de Java Server Pages, que traduce como Pginas de Servidor Java. Es una tecnologa orientada a crear pginas web con programacin en Java.

Con JSP podemos crear aplicaciones web que se ejecuten en variados servidores web, de mltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Las pginas JSP estn compuestas de cdigo HTML/XML mezclado con etiquetas especiales para programar scripts de servidor en sintaxis Java. Por tanto, las JSP se pueden escribir en el editor HTML/XML habitual.

Motor JSP

El motor de las pginas JSP est basado en los servlets de Java -programas en Java destinados a ejecutarse en el servidor.En JSP crean pginas de manera parecida a como se crean enASPoPHP-otras dostecnologas de servidor; Se generan archivos con extensin .jsp que incluyen, dentro de la estructura de etiquetas HTML, las sentencias Java a ejecutar en el servidor. Antes de que sean funcionales los archivos, el motor JSP lleva a cabo una fase de traduccin de esa pgina en un servlet, implementado en un archivo class (Byte codes de Java). Esta fase de traduccin se lleva a cabo habitualmente cuando se recibe la primera solicitud de la pgina .jsp, aunque existe la opcin de precompilar en cdigo para evitar ese tiempo de espera la primera vez que un cliente solicita la pgina.

POJOUnPOJO(acrnimo dePlain Old Java Object) es una sigla utilizada por programadores Javapara enfatizar el uso declasessimples y que no dependen de unframeworken especial. Este acrnimo surge como una reaccin en el mundo Java a los frameworks cada vez ms complejos, y que requieren un complicado andamiaje que esconde el problema que realmente se est modelando. En particular surge en oposicin al modelo planteado por los estndaresEJBanteriores al 3.0, en los que los "Enterprise JavaBeans" deban implementarinterfacesespeciales.

Un objeto POJO es una instancia de una clase que no extiende ni implementa nada en especial. Por ejemplo, unServlettiene que extender deHttpServlety sobrescribir sus mtodos, por lo tanto no es un POJO. En cambio, si se define una clase 'Persona', con sus atributos privados y sus correspondientes getters y setters pblicos, una instancia de esta simple clase es un objeto POJO.

SEVLETLos servlets son la tecnologa de la plataforma Java de eleccin para la ampliacin y mejora de los servidores web.Los servlets proporcionan un mtodo independiente de la plataforma basada en componentes para la creacin de aplicaciones basadas en la Web, sin las limitaciones de rendimiento de los programas CGI.Y a diferencia de los mecanismos de extensin de servidor de propiedad (como la API de servidor de Netscape o mdulos de Apache), los servlets son del servidor y del independiente de la plataforma.Esto te deja libre para seleccionar un "best of breed" estrategia para sus servidores, plataformas y herramientas.

Servlets tienen acceso a toda la familia de las API de Java, incluyendo laAPI JDBCpara acceder a bases de datos empresariales. LosServlets tambin pueden acceder a una biblioteca de llamadas HTTP especfica y recibir todos los beneficios del lenguaje Java madura, incluyendo la portabilidad, rendimiento, reutilizacin, y la proteccin de choque.

Servlets hoy son una opcin popular para la construccin de aplicaciones Web interactivas.Contenedores de servlets de terceros estn disponibles para el servidor Web Apache, Microsoft IIS, y otros.Contenedores de servlets son normalmente un componente de los servidores web y de aplicaciones, tales como BEA WebLogic Application Server, IBM WebSphere, Sun Java System Web Server, Sun Java System Application Server, y otros.

JQUERYjQuery es uno de los complementos ms esenciales para el desarrollo web, jQuery no es un lenguaje, sino una serie de funciones y mtodos de Javascript. Por tanto, Javascript es el lenguaje y jQuery es una librera que podemos usar opcionalmente. A veces nos podemos referir a jQuery como framework o incluso como un API de funciones, tiles en la mayora de proyectos web. Iquery permite simplificar la manera de interactuar con los documentosHTML, manipular el rbolDOM, manejar eventos, desarrollar animaciones y agregar interaccin con la tcnica AJAXa pginas web.

Otra caracterstica principal de la biblioteca es que permite cambiar el contenido de una pgina web sin necesidad de recargarla, mediante la manipulacin del rbol DOM y peticiones AJAX.

AJAXAjax significa Asynchronous JavaScript y XML.En esencia, el Ajax es una forma eficaz para una aplicacin web para gestionar las interacciones del usuario con una pgina web - una manera que reduce la necesidad de hacer una actualizacin de la pgina o pgina de recarga completa para cada interaccin con el usuario.Esto permite un comportamiento rico (similar a la de una aplicacin de escritorio o una aplicacin web basada en complementos) usando un navegador.Interacciones Ajax se manejan de forma asncrona en el fondo.Mientras esto sucede, el usuario puede seguir trabajando con la pgina.Interacciones Ajax son iniciadas por el cdigo JavaScript.Cuando la interaccin Ajax es completa, JavaScript actualiza el cdigo fuente HTML de la pgina.Los cambios se realizan de inmediato sin necesidad de una actualizacin de la pgina. Interacciones Ajax se pueden utilizar para hacer las cosas como las entradas Validar formulario (mientras el usuario est entrando en ellos) usando la lgica del lado del servidor, recuperar datos detallados del servidor, actualizar dinmicamente los datos en una pgina, y presentar formas parciales de la pgina.

III. Procedimiento 1. Conversor de XML a JSON

En este ejercicio se realizar una aplicacin JAVA que permita convertir un documento en formato XML a JSON. Para esto se emplearan las clases de json for java, suministradas por el profesor.Pasos:1. Con el siguiente documento xml se empleara el conversor.

Belgian Waffles $5.95 Two of our famous Belgian Waffles with plenty of real maple syrup 650 Strawberry Belgian Waffles $7.95 Light Belgian waffles covered with strawberries and whipped cream 900

2. Cree una aplicacin Java llamada HolaJSON3. Coloque las clases de JSON en el package org.json4. Dentro de la clase principal coloque el siguiente cdigo.

5. Se emplea el objeto JSONObject que contendr la salida de los datos formateados que provienen del documento XML, para lo cual se llama el mtodo toJSONObject().

6. Compile el proyecto y ejectelo. Observe la salida.

2. Generacin de un archivo JSON desde un POJO en JAVA

1. Creamos un proyecto JAVA App en Netbeans con el nombre JSONPrueba.

2. Se emplearan 5 clases: JSONArray, JSONException, JSONObject, JSONString y JSONTokener, descargadas de json.org y las agregamos a nuestro proyecto de Java de tal manera que nos quede as:

3. Hecho esto, podemos crear un bean por ejemplo al que le agregaremos algunos atributos. Este bean podra ser una entidad que haga referencia a una tabla de base de datos por ejemplo. Para este ejemplo vamos a crear un bean Vendedor y un bean Cliente tal como se muestra a continuacin:

Creamos la clase Vendedor.

Ahora creamos la clase Cliente

4. Ahora creamos nuestro mtodo principal en donde instanciamos un objeto Vendedor al que se le asocia dos clientes y creamos el objeto JSON a partir de ello.

5. El resultado mostrado a continuacin refleja de mejor manera lo que realmente queremos representar y a su vez, este objeto puede ser interpretado por cualquier lenguaje de programacin.

3. AJAX con Servlets empleando JQuery y JSONEn este ejercicio crearemos una simple pgina JSP con dos combobox sincronizados. En uno se contienen los valores de pases y en otro se poblara con los valores de los estados o departamentos asociados al valor de cada pas seleccionado. Estas operaciones se realizaran sin tener que refrescar la pgina, por medio de llamadas AJAX a un servlet que tomara los eventos cuando se cambie el combobox.

Pasos.1. Crear un proyecto Java Web en Netbeans, llmelo AJAXJSON y seleccione el servidor de aplicaciones Glassfish y el contenedor JEE7. No emplearemos ningn framework.2. Cree una pgina JSP llamada inicio.jsp. Puede asociarla a un descriptor de despliegue como web.xml.3. Coloque el siguiente cdigo. Observe que en la etiqueta se enlaza la funcin contra la librera JQuery que nos permitir dar la respuesta va JSON en formato clave, valor para mostrar los datos en cada combo box.

4. Descargue la librera Google GSON de la siguiente pgina http://code.google.com/p/google-gson/downloads/list y colquela en la carpeta lib del proyecto.

5. Cree ahora un servlet llamado ActionServlet (Note que es llamado en el codigo del JQuery). Coloque el siguiente cdigo dentro del mtodo processRequest().

6. Ahora Despliegue el proyecto y abra la pagina JSP con el Navegador predeterminado.

Si cambiamos al combo de pas a US nos cargaran los datos de sus estados.

6. Anlisis de Javascript con Mozilla Firefox

Procedemos a analizar la comunicacin del cliente con el servidor a travs de la consola de desarrolladores de MAXTON. Para esto la activamos as:

A continuacin selecciones Consola Web

Cada vez que realice una nueva peticin AJAX se enviara el parmetro por medio del mtodo HTTP GET. Seleccione la URL relacionada con el ActionServlet y analice la informacin de las cabeceras de los request y response, el uso del objeto AJAX XMLHttpRequest, as como el formato MIME (application/json) de la salida y el cuerpo de la respuesta en JSON. (Mirar las flechas rojas de la imagen).

Headers1. Remote Address:127.0.0.1:8080 (Direccin donde se encuentra alojado el servlet)2. Request URL:http://localhost:8080/AJAXJSON/ActionServlet?countryname=Colombia (Url solicitada para el servlet)3. Request Method:GET (Mtodo HTTP que se usa en la solicitud.)4. Status Code: 200 OK Respuesta del Servidor (HTTP Response), peticin correcta.(El cdigo de estado HTTP devuelto por el servidor. 200 es una respuesta comn para una respuesta satisfactoria; aunque cualquier valor dentro de la gama de 200-299 se considera Aceptar. Si deseo ingresar a un sitio donde no est inscrito la respuesta ser 401 que es una respuesta de no autorizado; esto est relacionado con el cdigo de respuesta http.)Response Headers1. Content-Length: 66 (Es la longitud del cuerpo de la peticin dada en una longitud en octetos (bytes de 8 bits))2. Content-Type: application/json;charset=UTF-8 (El tipo MIME del cuerpo de la solicitud (se usa con POST y peticiones PUT )3. Date: Thu, 16 Apr 2015 19:25:04 GMT (La fecha y hora en que se envi el mensaje (en " HTTP - fecha " formato como se define en el RFC 7231 de fecha / Formatos de hora )4. Server: GlassFish Server Open Source Edition 4.0 (Nombre del servidor)5. X-Powered-By: Servlet/3.1 JSP/2.3 (GlassFish Server Open Source Edition 4.0 Java/Oracle Corporation/1.7) (especifca la tecnologa (por ejemplo, ASP.NET , PHP , JBoss ) el apoyo a la aplicacin web ( detalles de la versin estn a menudo en X - Runtime , X -Version , o X - ASPNET - Version))Request Headers1. Accept: */* (Son los tipos de contenido que pueden ser aceptables para la respuesta . Ver negociacin de contenido.)2. Accept-Encoding: gzip, deflate, sdch (Es la lista de codificaciones aceptables. Ver compresin HTTP )3. Accept-Language: es-ES,es;q=0.8 (Es el listado de las lenguajes humanos que pueden ser aceptables para la respuesta . Ver negociacin de contenido.)4. Connection: keep-alive (Son las opciones de control para la conexin actual y la lista de campos de solicitud hop-by -hop)Cookie: JSESSIONID=3a1e8374ae34518375757fd73109 Una cookie de HTTP enviada previamente por el servidor con Set-Cookie (abajo))

En este parmetro se guarda el ID de la sesin de una cookie alojada en el navegador del usuario.

5. Host: localhost:8080 (El nombre de dominio del servidor (por hosting virtual ) , y el nmero de puerto TCP en el que el servidor est escuchando . El nmero de puerto puede omitirse si el puerto es el puerto estndar para el servicio solicitado. Obligatorio desde HTTP / 1.1.)6. Referer: http://localhost:8080/AJAXJSON/inicio.jsp(Esta es la direccin de la pgina web anterior de la que es seguida de un enlace a la pgina actualmente solicitada. (La palabra referrerha sido mal escrito en el RFC, as como en la mayora de las implementaciones hasta el punto que se ha convertido en el uso estndar y se considera la terminologa correcta) )7. User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxton/ 4.4.2000 chrome/ 30.0.1599.101 Safari/537.36 Define el explorador de internet que el usuario esta usando o que el usuaro uso para realizar la peticion al servidor.8. X-Requested-With: XMLHttpRequest(utilizado principalmente para identificar las peticiones Ajax . La mayora de los frameworks de JavaScript enviar este campo con el valor de XMLHttpRequest)

7. Anlisis de Javascript con Google Chrome

El procedimiento de anlisis en Chrome inicia activando la consola JavaScript ubicada en la opcin Ms herramienta mostrada a continuacin.

Aparecer la consola, ahora realice una peticin AJAX y elija el evento del servlet. Observe la informacin de las cabeceras. En el separador Preview o en Response puede observar la respuesta del JSON

4. Ejemplo de JSON con Jersey + JacksonEl API Jersey utiliza Jackson para convertir objetos desde y hacia JSON. En este ejemplo se convertir un objeto llamado track en formato JSON y ser retornado al usuario. Pasos

1. Cree una WebApp en Netbeans. Asegrese de elegir la plataforma JEE7 y el servidor de Apps Glassfish.

2. Cree una clase llamada POJO dentro del package com.udea que permitir despus a Jersey convertirlo en formato JSON.

3. JAX-RS con JerseyCree un nuevo servicio web RESTful como se presenta a continuacin, seleccionando RESTful Web Services from Patterns.

A continuacin seleccione Simple Root Element

En la siguiente ventana configure las siguientes opciones:

Asegrese que el Path sea /json/metallica, el cual permitir referenciar el recurso directamente desde la URL. El tipo MIME ser application/json.Edite los mtodos que aparecen por defecto y cmbielos por el siguiente cdigo

Realice una anotacin al mtodo getTrackInJSON() con @Produces(MediaType.APPLICATION_JSON). Jersey llamara el uso de Jackson para manejar la conversin de JSON automticamente.

Realice un llamado a un cliente RESTFul Jersey como se presenta a continuacin. Asegrese de seleccionar el recurso REST del listado del proyecto (Seccion Select The REST Resource en la figura).

Realice un Clean and Build al proyecto y luego realice un Deploy para activarlo en el servidor de aplicaciones Glassfish.En la carpeta del proyecto verifique en la seccin RESTFul Web Services que este cargado correctamente los mtodos.

Ahora proceda a abrir el navegador web y pruebe el mtodo GET asociado al servicio.Cuando el patrn URI /json/metallica/get es solicitado, los datos de la cancin sern retornados en formato JSON.

{"singer" : "Metallica","title" : "Enter Sandman"}

Asegrese de que la URL empleada sea la correcta para el retorno de los datos adecuadamente.

CONCLUSIONES

XML tiene una filosofa de manejo de informacin que busca la mxima utilidad y flexibilidad de los datos a travs de su forma estructurada y pura, en forma de rboles.

JSON es un formato de datos, no est limitado a las aplicaciones web de Ajax y se puede usar en cualquier escenario en que las aplicaciones necesiten intercambiar o almacenar informacin estructurada como texto.

GSON es una librera que permite trabajar con objetos JAVA que representan informacin de un formato JSON, pudiendo generar y/o obtener datos de dicho formato de una manera clara e intuitiva.

Teniendo en cuenta de que el principal objetivo del AJAX, es intercambiar informacin entre el servidor y el cliente (navegadores) sin la necesidad de recargar la pgina. Se puede determinar que permite una mayor rapidez en las operaciones, menos carga en los servidores, mayor interactividad y as de esta forma, ganamos en usabilidad, experiencia y productividad del usuario final.

BIBLIOGRAFA

Saregune (2008). Breve Historia de XML. Tomado de:http://goo.gl/Spc5MU

Wikipedia (2014). Extensible Markup Language. Tomado de:http://goo.gl/QFk5po

Wikipedia (2014). JSON. Tomado de: http://goo.gl/ii4WqO

Juan Julian Mrelo Guervos (2004). Introduccin al lenguaje XML. Disponible en: http://goo.gl/GkIABB

Csar Krall. (2006)Qu es y para qu sirve Ajax? Ventajas e inconvenientes. JavaScript asncrono, XML y JSON. abril 29 de 2015, de aprendeaprogramar Sitio web: http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=882:ique-es-y-para-que-sirve-ajax-ventajas-e-inconvenientes-javascript-asincrono-xml-y-json-cu01193e&catid=78:tutorial-basico-programador-web-javascript-desde-&Itemid=206