Wap网络学院 网站首页 手机软件 手机游戏 手机主题 手机论坛 手机铃声 美女写真 经典笑话 Flash小游戏 
Wap网络学院为广大建站爱好者提供一个详尽的Wap建站的技术支持和丰富的Wap源代码以及教程等资源支持。
在线教程: WAP服务器 | WAP网页编程 | WAP网页设计 | WAP数据库 | WAP网络安全 | WAP多媒体 | WAP生活应用 | WAP相关知识 | 业界新闻
资源下载: PHP源码 | ASP源码 | ASP.NET源码 | JSP源码 | 其它源码 | WAP教程下载 | WAP网站开发工具 | WAP模拟器
 本栏目最新文章
· WAP中的ASP技术
· 开发Wap随笔
· 构建动态 WAP 站点
· 让WAP模拟器显示中文汉字
· WAP中利用截取手机号码达到自动登入的一段源码
· 在ASP中编写WML程序
· 初试WAP之wml+ASP查询
· 使用WML和ASP编写动态手机页面
 
 您现在的位置: WAP网络学院 >> WAP教程网 >> WAP网页编程 >> ASPWML >> 文章正文
 
在ASP中编写WML程序

我们也可以直接在ASP程序中编写WML程序,并可把它输出为WML程序。具体的处理规则如下:

(1) 将WML程序使用<%和%>包含起来,格式为:

<%

……(语句)

%>

(2) 声明wml文件类型。与前面讲述的方法相同,可采用ASP的Response对象,并将ContentType作为它的方法,但书写时不再需要使用<%和%>。格式为:

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

(3) 对于其他的WML语句,一律采用Response对象的write方法来处理。基本格式为:

Response.write("……(WML标签或语句)")

其中的“WML标签或语句”在write方法中可以连写,以节省程序代码行。

(4) 在WAP服务器端,增加服务器对ASP的处理能力。操作方法与前面介绍的一样,这里不再重述。

(5) 程序文件保存时也要采用“.asp”的扩展名。

下面的程序就是在ASP中编写WML页面的简单例子:

 

<%

     'msg = "Hello "

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

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

     Response.write("<wml><card>")

     Response.write("hello wml ! test ok !")

     Response.write("</p></card></wml>")

%>

 

当然,我们这里给出的属于ASP与WML结合使用的简单例子,但采用这种基本方法,并利用ASP的复杂功能,便可以开发出能够实现丰富功能的WML页面。

例如,下面的ASP程序不仅可以显示“Hello”信息,同时可以显示信息的来源地或所在环境,这是通过利用Request对象的ServerVariables方法来获取服务器的HTTP_X_UP_SUBNO和HTTP_X_UP_UPLINK两个变量实现的。程序代码如下:

 

<%

' hellowml.asp

'

Dim msg, subId, uplink

 

msg = "Hello "

subId = Request.ServerVariables("HTTP_X_UP_SUBNO")

uplink = Request.ServerVariables("HTTP_X_UP_UPLINK")

 

If Not Len(subId) = 0 Then

  msg = msg & "from " & subId

End If

If Not Len(uplink) = 0 Then

  msg = msg & " at " & uplink

End If

 

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

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

Response.write("<wml><card><p>")

Response.write(msg)

Response.write("</p></card></wml>")

%>

 

为增强大家对ASP编写WML程序的印象,我们再给出Phone.com提供的一个例子。该例的作用是根据对服务器和客户端设置测试结果的不同,给出不同的警告信息。程序代码如下:

 

<%

' pushAlert.asp

'

Dim uplink, subId, url, ttl, alertType, title

Dim contentType, lastResult

contentType = "application/x-up-alert"

 

uplink = Request.ServerVariables("HTTP_X_UP_UPLINK")

subId = Request.ServerVariables("HTTP_X_UP_SUBNO")

 

url = "http://updev.phone.com/dev/hdml/devhome3.hdml"

ttl = 3600

alertType = "D---"

title = "Call: " & subId

 

Set NtfyCl = Server.CreateObject("Ntfn3Client.Ntfn3Client.1")

NtfyCl.NtfnSetHost uplink

NtfyCl.NtfnSetTimeout ttl

NtfyCl.NtfnPostAlert subId, url, ttl, alertType, title

lastResult = NtfyCl.NtfnGetLastResult

 

Dim errString, msg

If lastResult <> 0 Then

  errString = NtfyCl.NtfnGetErrorDetail

  If errString <> NULL Then

    msg = errString

  Else

    msg = "No error detail, error number: " & lastResult

  End If

Else

  msg = "Sent alert to " & subId & " at " & uplink

End If

 

Dim my, digestString

set my = Server.CreateObject("PDCDigestUtils.CPDCDigest")

my.DeckType = 0

my.DigestAddDeck "deck1", "<wml><card><p>" & msg & "</p></card></wml>"

 

my.DigestSuppressContentType 1

digestString = my.DigestSerialize(0)

Response.ContentType = my.DigestGetContentType

Response.BinaryWrite(digestString)

%>

 
  • 上一篇文章:

  • 下一篇文章:
  •  
     

     
    Copyright (C) 2008 shouji56.COM, All Rights Reserved 版权所有