DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES WAP Ing. Ronald...

Preview:

Citation preview

DESARROLLO DE SOLUCIONES

EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN

DESARROLLO DE SOLUCIONES

EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN

APLICACIONES WAP

Ing. Ronald Criollo

Qué es WML Tecnología WAP Lenguaje WML y WMLScript Lenguaje XHTML-MP Contenido dinámico con JAVA

AGENDA

AGENDA

WML son las siglas de Wireless Markup Language Es el lenguaje desarrollado para la implementación de

paginas Web en dispositivos con tecnología WAP. Presenta una sintaxis muy similar a HTML. En la actualidad presenta algunas limitantes en

comparación con otras versiones.

QUÉ ES WML?QUÉ ES WML?

Es un estándar internacional creado para aplicaciones que usan comunicación inalámbrica, la cual tiene como su principal característica la de brindar el acceso a Internet a través de un dispositivo móvil por medio de un navegador con soporte WAP

WAP es una serie de tecnologías que consisten en: WML, que es el lenguaje de etiquetas, WMLScript es un lenguaje de script, lo que vendría a ser JavaScript

TECNOLOGÍA WAPTECNOLOGÍA WAP

Presenta soporte para texto con formato. Soporta imágenes en formato WBMP. Imágenes en blanco y negro. Resolución y tamaño reducidas. Estructuración de una pagina WML en cartas. Soporta el manejo de variables. Es un lenguaje case – sensitive.

CARACTERISTICAS WMLCARACTERISTICAS WML

Un editor de texto para implementar el código WML Un emulador de un terminal WAP para poder cargar

las paginas WinWap Nokia Mobile Browser Simulator

Conversor de imágenes a formato WBMP Servidor para desplegar la aplicación desarrollada

en WML TOMCAT IIS

ENTORNO DE DESARROLLOENTORNO DE DESARROLLO

Baraja Se llama baraja a una pagina wml constituida por un

conjunto de cartasCarta Cada una de las subdivisiones que componen la

baraja El terminal WAP siempre carga la primera carta de la

baraja en la pantalla al comenzar Para navegar de una carta a otra es necesario el uso

de hipervínculos entre ellas

CONCEPTOS DE CARTA Y BARAJACONCEPTOS DE CARTA Y BARAJA

EJEMPLO DE NAVEGACION POR CARTASEJEMPLO DE NAVEGACION POR CARTAS

<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"><wml>

<card id=“carta1“ title=“Carta1”><p><strong>carta1</strong></p><do type="accept" label="Entrar">

<go href="#carta2"/></do><do type="accept" label="Salir">

<go href="#fin"/></do>

</card>

<card id="carta2" title=“Carta2"><p><strong>carta2</strong></p><do type="accept" label="volver">

<go href="#carta1"/></do>

</card>

<card id="fin" title=“Final"><p>Fin<br/>del ejemplo</p>

</card></wml>

WML permite la declaración y uso de variables Permite el paso de información entre cartas

El nombre de la variable puede empezar por: Guión bajo Letra US-ASCII seguida de mas letras o números

Declaración: <set var name=“nombre” value=“valor”>

Acceso: $(nombre)

DECLARACION Y USO DE VARIABLESDECLARACION Y USO DE VARIABLES

EJEMPLO EN EL USO DE VARIABLESEJEMPLO EN EL USO DE VARIABLES

<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

<wml><card id="carta1">

<p><input type="text" name="texto"/></p>

<do type="accept" label="Siguiente"> <go href="#carta2"/>

</do></card>

<card id="carta2"><p>El valor de la variable es $(texto) </p>

</card>

</wml>

ANIMACIONES E IMAGENES EN MOVIMIENTOANIMACIONES E IMAGENES EN MOVIMIENTO

WML permite la generación de secuencia de imágenes para simular el movimientos gracias al tag timer

<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

<wml><card id="im1" ontimer="#im2“ >

<timer value="5"/><img src="im1.wbmp" alt="imagen1"/>

</card><card id="im2" ontimer="#im3“ >

<timer value="5"/><img src="im2.wbmp" alt="imagen2"/>

</card><card id="im3" ontimer="#im1“ >

<timer value="5"/><img src="im3.wbmp" alt="imagen3"/>

</card></wml>

Lenguaje de Script soportado por terminales WAP con sintaxis similar a javaScript

Añade funcionalidad a las paginas WML

Mensajes de alerta y confirmaciónChequeo y validación de los datos

introducidos por el usuario

WMLSCRIPTWMLSCRIPT

Lang abs(n), max (n1,n2), min (n1,n2), isInt (s),

isFloat (s), parserInt(s),parserFloat(s),random().

LIBRERIAS WMLSCRIPTLIBRERIAS WMLSCRIPT

Float floor(n), ceil(n), pow (n1,n2), round (s).

String charAt(s,n), compare (s1,s2), length (s), trim (s), isEmpty(s), toString(v) etc.

LIBRERIAS WMLSCRIPTLIBRERIAS WMLSCRIPT

Dialog prompt (mensaje, valor_defecto) confirm (mensaje, afirmar, rechazar) alert (mensaje)

WMLBrowser getVar(v), setVar(n,v), go(url), prev(), refresh(), newContext(), getCurrentCard()

LIBRERIAS WMLSCRIPTLIBRERIAS WMLSCRIPT

URL Permite la validación y parseo de urls isValid(url), getHost(url) getPort(url) getParameters(url) getQuerry(url)

DESARROLLO DE UNA APLICACIONWAP CON SERVLETS

DESARROLLO DE UNA APLICACIONWAP CON SERVLETS

Java 2 Enterprise Edition Netbeans IDE Servidor apache TOMCAT Browser WinWap MySQL

CONFIGURACION DEL SERVIDOR TOMCATCONFIGURACION DEL SERVIDOR TOMCAT

-Estructura del proyecto-webapp |-Mi_proyecto

|-WEB-INF|-classes

|-Servlets del proyecto|-lib

|-librerias_usadas|-web.xml

|-index.wml

CONTENIDO DEL ARCHIVO WEB.XMLCONTENIDO DEL ARCHIVO WEB.XML

<web-app>

<servlet> <servlet-name> Nombre del Servlet</servlet-name> <servlet-class> Nombre del .class del Servlet</servlet-class></servlet>

<servlet-mapping><servlet-name> Nombre del Servlet</servlet-name><url-pattern> ruta del servlet</url-pattern>

</servlet-mapping>

<welcome-file-list> <welcome-file> Pagina de inicio WML(index.wml) </welcome-file></welcome-file-list>

CONTENIDO DEL ARCHIVO WEB.XMLCONTENIDO DEL ARCHIVO WEB.XML

<mime-mapping><extension>wml</extension><mime-type>text/vnd.wap.wml</mime-type></mime-mapping>

<mime-mapping><extension>wmls</extension><mime-type>text/vnd.wap.wmlscript</mime-type></mime-mapping>

<mime-mapping><extension>wbmp</extension><mime-type>image/vnd.wap.wbmp</mime-type></mime-mapping>

</web-app>

COMO EJECUTAR UN SERVLET DESDE UNA PAGINA WML

COMO EJECUTAR UN SERVLET DESDE UNA PAGINA WML En WML no existe el tag form por lo cual

para realizar un POST o un GET a un Servlet es necesario usar el tag go de la siguiente manera:

<do>|<href><go method="POST/GET" href="http://localhost:8080/Miproyecto/MiServlet">

<postfield name=“Nombre parametro1" value=“valor"/><postfield name=“Nombre parametro2" value=“valor"/><postfield name=“Nombre parametro3" value=“valor"/>

.

.

.<postfield name=“Nombre parametroN" value=“valor"/>

</go></do>|</a>

EJEMPLO PRACTICOBANCO.WMLEJEMPLO PRACTICOBANCO.WML

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml><card id="1"><p>Bienvenidos a CajaMadrid</p><img src="cj1.wbmp" alt="logo"/><do name="accept" label="login">

<a href="funciones.wmls#pedirClave()"/></do><do name="accept" label="menu">

<a href="#2"/></do></card><card id="2"><p><a href="#3">Sacar Dinero</a></p><p><a href="#4">Ingresar Dinero</a></p><p><a href="#5">

Consultar saldo<go method="POST" href="http://localhost:8080/wml/Banco">

<postfield name="tipo" value="consultar"/><postfield name="pass" value="$(resultado)"/>

</go></a></p></card>

EJEMPLO PRACTICOBANCO.WMLEJEMPLO PRACTICOBANCO.WML

<card id="3"><p>Cantidad</p><input name="cantidad" value=""/><do type="accept" name="aceptar" label="Aceptar">

<go method="POST" href="http://localhost:8080/wml/Banco"><postfield name="tipo" value="sacar"/><postfield name="cant" value="$(cantidad)"/><postfield name="pass" value="$(resultado)"/>

</go></do>

</card><card id="4">

<p>Cantidad</p><input name="cantidad" value=""/><do type="accept" name="aceptar" label="Aceptar">

<go method="POST" href="http://localhost:8080/wml/Banco"><postfield name="tipo" value="ingresar"/><postfield name="cant" value="$(cantidad)"/><postfield name="pass" value="$(resultado)"/>

</go></do>

</card>

</wml>

EJEMPLO PRACTICOBANCO.JAVAEJEMPLO PRACTICOBANCO.JAVA

public class Banco extends HttpServlet {

public void init(ServletConfig cfg) throws ServletException { String sURL="jdbc:mysql://localhost/Banco"; try { Class.forName("com.mysql.jdbc.Driver").newInstance(); con = DriverManager.getConnection(sURL);} catch(Exception e) {} } public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String cantidad=(String)req.getParameter("tipo"); if(cantidad.equals("sacar")){ sacarDinero(req,res); } else if(cantidad.equals("ingresar")){ ingresarDinero(req,res); } else if(cantidad.equals("consultar")){ consultarSaldo(req,res); } }

EJEMPLO PRACTICOBANCO.JAVAEJEMPLO PRACTICOBANCO.JAVApublic void consultarSaldo(HttpServletRequest req, HttpServletResponse

res) throws ServletException, IOException { res.setContentType("text/vnd.wap.wml");

………… try { set = con.createStatement(); rs = set.executeQuery("SELECT * FROM USUARIO,CUENTA where

USUARIO.PASS="+Integer.parseInt(password)+" AND ID=ID_PROPIETARIO");

out.println("<?xml version="+"\""+"1.0"+"\""+"?><!DOCTYPE wml PUBLIC

"+"\""+"-//WPFORUM//DTD WML 1.1//EN"+"\""+" \""+"http://www.wapforum.org/DTD/wml_1.1.xml"+"\""+">");

out.println("<wml>"); out.println("<card>")

………….. out.println("</card>"); out.println("</wml>"); rs.close(); set.close(); } catch(Exception e) { System.out.println("No lee de la tabla"); System.out.println(e.toString()); } }

TECNOLOGÍA XHTML-MPTECNOLOGÍA XHTML-MP