日期:2010-04-26  浏览次数:21048 次

  在本文中,我想进一步的介绍如何利用ASP开发动态的WML网页,及其应用。其实细想一下,可以使用服务器端编程(例如ASP)开发很多很多应用程序用在WAP手机上,只要把它们直接生成WAP手机能识别的WML网页就可以了。比如说在本文中要介绍的,如何为WAP等无线设备开发一个循环式的旗帜广告系统。

  图一显示了一个旗帜广告的示意图,这是在一个 WAP 站点上显示旗帜广告的一个可能的方法。




  使用这种方法,你就可以在你的网站上加入循环式的旗帜广告,就能给那些使用无线上网冲浪的用户一个机会,让他们了解到更快的广告信息,只需他们轻轻一按电话左边的按钮就可以了,不但能够方便用户而且能够增加网站的收入。

  假设我们想要创建一个循环旗帜广告,并把它放在任何页面的顶部,使用ASP和WML来创建这个页面。为了使这个系统更加具有可伸缩性,并更加贴近现实,我想把将要显示的广告信息存入数据库中,然后从数据库中抽取出所有相关的信息,从而使产生的内容保持动态变化的。然后将随机从数据库选择一个广告和它所指向的链接,这样才能做到使广告不断的循环出现。每次载入一个页面的时候,就将会出现一个新的广告。

  好下面我先说一下,建立广告数据库。为了简化,我使用了Microsoft Access 数据库,表名为ADbase,其中有主键bannerid(用来说明旗帜广告名),bannertext(显示于手机上的广告词,也就是旗帜广告的实际的正文消息) 和 bannerURL(连接广告的链接)当然了,你也可以在网页中加入一些图形,不过为了简化,我将省掉这些图形。建好的库如下显示。




<%@Language=VBScript

' 定义用于产生随机数的最大值
MaxNoAds = 10

' 设置文档类型
Response.ContentType = "text/vnd.wap.wml"

' 从数据库中随机选择一个广告
Randomize(Cbyte(Left(Right(Time(),5),2)))
AdID=(Int((MaxNoAds-1+1) * Rnd + 1))

' 从数据库中把这条广告取出

set objConn = Server.CreateObject("adodb.connection")
objConn.Open "dsn=adserver;uid=adserver"
sql = "SELECT * from ADbase where bannerid = '" & AdID & "'"
set rsAd = objConn.Execute(sql)

' 显示WML内容
%>
<?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="bannerad" title="广告">
<p>
<a href="<%=rsAd("bannerURL")%>"> <%=rsAd("bannertext")%>
</p>
</wml>


  好,这样就构成了一个旗帜广告的雏形,下面就是完善它了,只要在任何你想要添加广告的页面,加入一条

  <!-- #include file="bannerad.asp" -->就可以了。

ASP与WAP结合能够生成丰富的动态的WML网页,可以给WAP手机带来许多有趣的内容。那么如何使他们两者有机的结合来生成动态网页呢?在本文中,我就想介绍一下如何使用ASP开发一个动态生成WML的应用程序。比如说,现在手机的电子银行被炒得很火,那么我们如何去建立这样一个应用程序呢?在这里我不想讨论整个电子银行的建立,因为那样内容太庞大,超出了我能介绍的范围,在这里我只想介绍一下,如何使用ASP建立一个应用程序来检查用户的收支平衡情况。考虑到它的安全性,我们要使用WTLS,但这个问题比较复杂,只能等以后就机会再探讨了。我们要把精力放在如何使用ASP来实现动态网页上。

  说了这么多废话,让我们开始吧!假设银行账户信息被保存在SQL数据库中,如果使用相应的网络连接,就可以进入我们的系统。在本文的例子中,为了简化我们让账户信息非常的小(事实上不是这样的):只包括账户号;客户名,安全密码和账户收支平衡情况,在一个表中(tbl_account_info),有四个域分别对应为accountno,custname,accountpin和accountbal。

  下面,我想简单的谈谈编程思路:首先,用户进入我们的系统界面,输入他们的账号和安全密码(如图1),在验证完这些登录信息以后,我们允许用户登录进入系统,我们将给出欢迎语,并把用户名和账户上的收支平衡状况输出出来!



     图1


  这就是大体的开发思路,好,现在我们就可以根据这个思路进行编程了。我有个习惯,在我编写动态的程序代码时,我先把静态的代码写出来,然后才试着把动态的代码写出。在本文中我也将采用这种方法。

  首先,在代码的第一部分,我们将要建立一个页面用来用来接收用户的登录信息。(如图1)

  请注意下面这段代码,这些代码都是最基本的WML代码:

<% Response.ContentType = "text/vnd.wap.wml" %>
<?xml version="1.0" encoding="gb2312"?>//注意这一句,如果想要显示中文,必须要加入encoding="gb2312"
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="login" title="WAP 电子银行">
<p>
欢迎来到WAP 电子银行 <br/>
请输入账号: <input name="accountno" type="text" maxlength="6" />
安全密码: <input name="accountpin" type="password" maxlength="4" />
<do type="accept" label="Check Bal">
<go href="checkbal.asp" method="post">
<postfield name="accountno" value="$Accountno" />
<postfield name="accountpin" value="$Accountpin" />
</go>
</do>
</p>
</card>


  建立好接收用户登录信息页面以后,我们就要验证用户填充的信息是否非法,如账