by January 3, 2001 0 comments

To do some serious work in WAP (Wireless Application Protocol), you’ll need
dynamically generated pages that can pull data from within databases. WML
(Wireless Markup Language), which is used to create static WAP pages, can’t be
used for database connectivity because it’s a static markup language like
HTML. You need to write server-side scripts for database connectivity, for which
you can use PHP, Perl, JSP or ASP. Here, we’ll show you how to use these.

Before you start scripting, you have to configure your Web server for serving
WAP pages. You also need a good toolkit, which will emulate a WAP phone, so that
you can see what will be seen on the cellphone screen.

WAP toolkits

Various toolkits are available in the market, the most widely used ones being
the Nokia Toolkit 2 available at www.forum.nokia.com 
and the UP Phone Toolkit at www.developer.phone.com.

Web server configuration

When a Web browser receives a page, it has to distinguish between HTML,
image, audio, and video. To enable this, with every response from the Web
server, a piece of header information is sent to the browser. This is known as
MIME (Multipurpose Internet Mail Extension). Some of the common MIME types
include text/html for HTML files and image/gif for GIF files. To enable the Web
server to serve WAP documents, it needs some new MIME types. These include:

Extension MIME type

WML text/vnd.wap.wml

WMLC application/vnd.wap.wmlc

WMLSC application/vnd.wap.wmlscriptc

WMLSCRIPT text/vnd.wap.wmlscript

WS text/vnd.wap.wmlscript

WSC application/vnd.wap.wmlscriptc

WMLS text/vnd.wap.wmlscript

WBMP image/vnd.wap.wbmp

The procedure for adding these MIME types varies from server to server. We’ll
do this for some common Web servers here. When you do this for your server, it
would be a good idea to check the documentation for the Web server you’re
running.

Apache

Locate the httpd.conf file (in /etc/httpd/conf), file and add the following
lines:

# WAP MIME Types

AddType text/vnd.wap.wml .wml

AddType image/vnd.wap.wbmp .wbmp

AddType text/vnd.wap.wmlscript .wmls

AddType application/vnd.wap.wmlc .wmlc

AddType application/vnd.wap.wmlscriptc .wmlsc

Save the file and restart Apache.

IIS (Internet Information Server)

On the server console, open the management console. From here, you can define
whether the MIME types will be valid for the entire server or for separate
directories. To add a MIME type to a directory, all you need to do is right
click on the directory to which you want to add the MIME type, select the HTTP
headers tag and click the File Types button at the lower right. Click New type
and supply the extension and the content type as listed above.

To add a MIME type to an entire server, right click on the server, click the
File Types button, and follow the same procedure as for adding MIME types to a
directory.

We now proceed to actual server-side scripting to generate dynamic WAP pages.

Generating dynamic WAP content

The script for generating WAP content with ASP, PHP, Perl, and JSP is given
here. In all cases except with ASP, we’ve given that part of the code that
tells your browser that WAP content is being sent to it and specify the MIME
type of the content. You can put in your actual content after this.

WAP with ASP

<%

Response.ContentType = "text/vnd.wap.wml"

%><?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFOURM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<template>

<do type="prev">

<prev/>

</do>

</template>

<card id="Welcome" title="Welcome to asp">

<p>

<b>

<%

Response.Write"Welcome Visitors"

Response.Write " WAP is good "

%>

</b>

</p>

</card>

</wml>

WAP with PHP

PHP is so flexible that one HTML document containing a PHP script can be used
for both HTML and WML compatible browsers. The PHP source code is invisible to
the client, just like ASP, and it’s up to you to either output HTML code or
WML. However, be extra careful here, as some built-in features of PHP output
HTML by default, typically error messages, which your WML micro-browser won’t
understand.

For example,

<?

header("Content-type: text/vnd.wap.wml");

echo("<?xml version=\"1.0\"?>\n");

echo("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"
\"http://www.wapforum.org/DTD/wml_1.1.xml\">\n\n");

?>

… Put your content here…

Using Perl

As with PHP, in Perl too, you first need to send the correct MIME type to the
browser. Here’s how to do it.

print "Content-type: text/vnd.wap.wml\n\n";

print "<?xml version=\"1.0\"?>\n";

print "<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML
1.1//EN\"\"http://www.wapforum.org/DTD/wml_1.1.xml\">\n\n";

….. Put your content here…..

Using Java servlets

Dynamic WML documents can be easily developed using Java servlets. Once you
know the WML syntax, building WAP applications using Java servlets can be an
easy task. Just set content type in your class and you can then send WAP tags.
The line

Response.setContentType("text/vnd.wap.wml");

defines the WAP MIME type to the browser. This is followed by

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class MobileDate extends HttpServlet {

public void service (HttpServletRequest request, HttpServletResponse

response) throws ServletException, IOException {

To set the content type for your wireless data:

response.setContentType("text/vnd.wap.wml");

PrintWriter out = response.getWriter();

Now, you can write what you would like to display on the user’s screen:

out.println("<?xml version=\"1.0\"?>");

out.println("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML
1.1//EN\"");

out.println(" \"http://www.wapforum.org/DTD/wml_1.1.xml\">");

out.println("<wml>");

out.println("<card title=\"Hello\">");

out.println(" <p align=\"center\">");

out.println("java with wap<br/>");

out.println("</p>");

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

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

}

}

WAP pages are organized as a deck of cards, each card being one display page.
There is a limit to the size of a deck of WAP cards (all that is between <wml>
and </wml>). The size depends on the WAP browser, and should not exceed
the following limits.

Browser
Size
limit
UP.Browser 3.2  1,492 bytes
UP.Browser 4.x  2,048 bytes
Ericsson R320 3,000 bytes (approx)
Ericsson R380 3,500 bytes (approx)
Ericsson MC218 8,000 bytes
Nokia 7110 1,397 bytes

 

 

 

 

 

(To be continued next month)
Gaurav Bhatnagar is a WAP project leader at rkmdaes.com

No Comments so far

Jump into a conversation

No Comments Yet!

You can be the one to start a conversation.

Your data will be safe!Your e-mail address will not be published. Also other data will not be shared with third person.