|

制作WAP网站(全程)  

回帖 楼主:answer0161     发布时间: 西元2008年3月1日   [ 传小纸条 ]

首先是注册域名,这个应该不用多说了吧,找一个注册商,比如万网,注册了xxx.com

接下来到你的域名注册商那里的域名设置面板里面把wap.xxx.com做一个解析,子域名wap解析到你的服务器的ip(如果你自己有主机的话就解析到主机的ip,如果是网上的虚拟主机,主机商也会给你一个ip,解析到那就行了)。

解析完之后就要到你自己的主机或者虚拟主机那里设置,
如果是自己的独立主机的话就进iis,建个虚拟目录,把ip和主机头(wap.xxx.com)添上,设置一下主页就ok了。
如果是虚拟主机的话就简单一些,不用设iis,服务商有后台程序给你设。只用添加主机头(有的叫子域名),你这里就添加wap或者wap.xxx.com看情况,主页也设置一下,就行了。

最后还要确认一下你的独立主机或者虚拟主机支不支持wml。
虚拟主机不支持的话一点办法也没有,自己的主机可以通过设置iis来添加wml支持:
打开IIS,然后在默认网站的属性--HTTP头--MMIE映射--文件类型--添加注册文件的类型:
Associated Extension MIME Type
wml text/vnd.wap.wml
wmlc application/vnd.wap.wmlc
wbmp image/vnd.wap.wbmp
wmlsc application/vnd.wap.wmlscriptc
wmls text/vnd.wap.wmlscript
wsc application/vnd.wap/wmlscriptc

wap网站开发的方式有很多,我自己用过的有两种:
直接在记事本里编写wml文件,另一种是利用vs.net里的开发工具

开发好了就是发布,把你写好的程序放到iis的虚拟目录中,设置一下起始页,就ok了。

具体可以和我联系吧,也可以看看这个
http://www.waplog.cn/default.asp?cat=1
满多关于wap网站开发与wap编程的东西
 自:htpp://bbs.15735.com

回到帖子顶部

回帖引用 删除 修改 1楼:answer0161  西元2008年3月1日   [ 传小纸条 ]

WAP的六层协议

WAP的协议栈与Internet的协议栈非常相似,最大的区别是它对Internet的协议比如HTTP进行了优化,以便能适应移动通信系统低带宽、大时延的特点。
  在网络层上,WAP支持大部分目前使用的无线通信网络,如GSM、CDMA、TDMA等。其主要改进表现在:
  WAP的协议栈
  1.将HTTP中的平面文本头转换为二进制的代码,以减少空中传输的数据。
  2.定义了比较简单的会话重建协议。
  3.定义了一个功能类似于TCP协议的事务协议WTP,目的是提供可靠的数据包服务。
  4.提供完全的无线连接。在WAP的协议栈中有一个与安全有关的协议WTLS,它是在传输层安全协议TLS(Transport Layer Security)基础上开发的,针对移动系统带宽低的特点进行了优化,同时保证数据的完整性、保密性。
  手机上网无疑是如今最热闹的一项技术。与传统的台式机相比,手机受到更多CPU、内存和电池寿命的限制,而且无线网络与有线网络相比一般具有低带宽、高延迟且稳定性差等特点,这就给手机上网带来了许多技术上的难题。为了解决手机上网的这种特殊需要,以诺基亚、摩托罗拉等公司牵头成立的WAP论坛(WAP Forum)开发了无线接入协议(WAP,Wireless Access Protocol)。

回到帖子顶部

回帖引用 删除 修改 2楼:answer0161  西元2008年3月1日   [ 传小纸条 ]

ASP和数据库技术在WAP开发中的应用、、

利用ASP技术可以开发出动态WAP页面,将ASP技术和数据库技术相结合,则可以开发更为复杂的WAP应用。有关ASP和Web数据库的知识请读者参考专门书籍,我们这里以WML为例,说明ASP和数据库技术在WAP开发中的应用。
11.2.1 在WML程序中使用ASP
在WML程序中使用ASP的规则很简单,只要做到以下5条即可:
(1) 声明ASP采用的脚本语言。与ASP中声明的方式类似,格式为:
<*@ Language=VBScript *>
(2) 声明wml文件类型。这可采用ASP的Response对象,并将ContentType作为它的方法,书写时使用<*和*>包含起来,格式为:
<* Response.ContentType="text/vnd.wap.wml" *>
(3) 在WAP服务器端,增加服务器对ASP的处理能力。这可在IIS中选中WAP站点或其主目录,并单击鼠标右键,从出现的菜单中选择"属性"命令,打开它的对话框,选择其中的"虚拟目录"选项卡。这里面有一项应用程序设置,将"许可"一项设置为"执行(包括脚本)"即可。更详细的方法可参考我们第4章的内容。
(4) 其余语句和形式采用WML的编程方法即可。
(5) 程序文件保存时要采用".asp"的扩展名。
例如,下面就是一个在WML程序中应用ASP的简单例子:

<*@ Language=VBScript *>
<* Response.ContentType="text/vnd.wap.wml" *>





Hello!





这是一个显示"Hello!"的程序,可把它保存为hello.asp。注意,文件扩展名一定是.asp才行,它与hello.wml是两个不同的文件。我们可以把该文件放到或上传到WAP服务器的相应目录中,比如wap目录。然后,我们启动模拟浏览器,比如WinWap,并在URL栏里输入"http://127.0.0.1/wap/hello.asp"并按回车,即浏览使用ASP的WML页面的效果。

11.2.2 在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("")
Response.write("")
Response.write("hello wml ! test ok !")
Response.write("

")
*>

当然,我们这里给出的属于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("")
Response.write("

")
Response.write(msg)
Response.write("

")
*>

为增强大家对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", "

" & msg & "

"

my.DigestSuppressContentType 1
digestString = my.DigestSerialize(0)
Response.ContentType = my.DigestGetContentType
Response.BinaryWrite(digestString)
*>

为便于大家学习,我们本书所附光盘中都提供了这些程序的源代码,大家不要忘了实际测试一下。
11.2.3 利用ASP在WML中实现动态数据库应用
通过前面介绍的例子,我们可以看出利用ASP技术可以为WML实现非常复杂的应用。我们知道,ASP的数据库处理能力是很强的,所以,利用ASP我们可以在WML中实现动态的数据库应用。由于举例说明这种应用需要占用很大的篇幅,所以我们这里只给出基本的开发步骤:
第一步,分析WAP的实际问题,设计出所需的数据库,并建立其中的数据表。例如,我们可以使用Microsoft Access等数据库系统来完成这一方面的工作。
第二步,建立ODBC源,并对上述数据库进行命名。操作方法十分简单:以Windows 95/98/NT/2000为例,我们只需在"控制面板"中双击"ODBC数据源"图标,从打开的"ODBC数据源管理器"对话框中即可完成相关操作。
第三步,根据实际问题,编写引用和处理数据库的ASP/WML程序。
第四步,将程序上载到WAP服务器,随后就可以进行测试。通过测试后,就可以为WAP用户使用了。

回到帖子顶部

回帖引用 删除 修改 3楼:answer0161  西元2008年3月1日   [ 传小纸条 ]

WAP手机病毒问题和病毒防范的基本方法
目前由于通过网络直接对WAP手机进行攻击比较简单,所以WAP手机已经成为了电脑黑客攻击的重要对象,而随着WAP技术的日趋成熟,WAP手机接入互联网获取大量信息已成为了它的一种重要的功能,然而,这也必然使其WAP手机感染病毒的机会得到了增加。

  对WAP手机进行攻击,通常采用三种方式:一是攻击WAP服务器,使WAP手机无法接收正常信息;二是攻击和控制"网关",向手机发送垃圾信息;三是直接攻击WAP手机本身。侵袭手机的病毒除了可能会自动启动电话录音功能、自动拨打电话、删除手机上的资料,甚至可能还会"制造"出金额庞大的电话账单。

  因此在日常使用中,除了要尽量少从网上下载信息外,还要时时当心感染病毒,随时注意监测手机的异常情况,以便及时发现病毒。

  1.监测乱码。当对方的电话拨入时,屏幕上一般显示的是来电电话号码,如果显示的是别的字样或奇异符号,就有可能是遭到了病毒攻击。如果遇到这种情形,用户应不回答或立即把电话关闭。如果接听来电,则会感染上病毒,机内所有设定都可能被破坏。

  2.监测短信。短信息的收发作为移动通讯的一个重要方式,也是WAP手机感染病毒的一个重要途径。手机用户一旦接收到带有病毒的短信息,阅读后便可能会出现手机键盘被锁,甚至手机IC卡被破坏等严重后果。因此,对于陌生人发送的短信息,请不要轻易打开,更不要转发,应及时删除。

  一旦发现手机中毒,应尽快关闭手机(如果手机已死机,可直接取下电池),将SIM卡取出并插入另一型号的手机中(最好是不同品牌的),将存于SIM卡中的可疑短信删除后,重新将该卡插回原手机。如果仍无法使用,则应与手机服务商联系,尽快通过无线网站对手机进行杀毒,或通过手机的IC接入口或红外传输接口进行杀毒。

回到帖子顶部

回帖引用 删除 修改 4楼:answer0161  西元2008年3月1日   [ 传小纸条 ]

1.创建一个站点文件夹 首先你要创建一个独立于你的主站点的新的站点文件夹(若站点是建立在同一个服务器上面的话),这样你下面要做的改动才不会影响别的站点。
2.在IIS 平台创建一个新的MIME类型 先选择WAP站点的属性,再加入MIME类型,然后选择HTTP Headers标签。

  在MIME Map部分,点击File Type并且输入以下信息:

Associated Extension MIME Type
wml text/vnd.wap.wml
wmlc application/vnd.wap.wmlc
wbmp image/vnd.wap.wbmp
wmlsc application/vnd.wap.wmlscriptc
wmls text/vnd.wap.wmlscript
wsc application/vnd.wap/wmlscriptc

3.现在,你就可以把你的网站内容加到站点文件夹里面了。

回到帖子顶部

回帖引用 删除 修改 5楼:answer0161  西元2008年3月1日   [ 传小纸条 ]

第一节: WAP的潜能

  这些日子,我们常听到WAP技术,一种手机上网的技术。从技术上讲,移动电话不可能和PC来竞争,移动电话的屏幕只能容下
很少的字符,它的带宽也是很受限制,而且输入也很笨拙。那我为什么还要 介绍它了,嘿嘿,这里有两个主要的我认为WAP一定有
成功的因素。

随处性: 

  只要你有手机,你到哪里都可以访问wap网站。

帐单机构:

  在不久的将来,我们就能通过我们的手机来支付我们的一切费用,查询很多的信息。只是我们的手机费用中又多了一项费
用"WAP服务费"。

  这样我们就能用手机支付我们的商品费用,信用卡都不用了,它一定能够成为新消费方式。

第二节:WAP基础

  WAP (Wireless Application Protocol) v1.1是一种开放性规范,它试图规范移动电话访问信息和服务行业。这个规范是由
WAP Forum来开发的,一个民间组织。1.2版本的WAP协议将会被认为是最后的WAP规范。

  关于wap最基本的概念就是重复利用internet协议,这个协议必须很清楚地在现有的技术上轻松地调用wap服务。

  WAP协议利用一种很像我们电脑网络的分层结构。较低层次不太像我们常用的web应用,但是顶层还是我们的老朋友----HTTP。
数据一样是从服务器上发出,从服务器上接收,信息能够储存在服务器上,调用也可能用CGI,也可以用其它的方法,比如ASP.也就
是说只要你会ASP,那么你就可以在轻松地写出你的第一个WAP应用程序了。

  当然,就手机的带宽和用户能力方面来看,手机需要不同(更严格)的设备,所以在目前的条件下HTML就不能适应WAP所能提
供的带宽。

  WAP Forum 的定位是WML (Wireless Mark-up Language),一种xml格式的语言。WML是精简的HTML。

  WAP Forum同时也指定了WMLScript,很像javascript,只是用于手机而已,它能够处理客户端的程序。

第三节:WML

  尽管我已经讲解了手机与服务器的通讯,但是真正的客户端不是手机。一个软件(wap gateway),实际上允当了这个角色。它
将手机的请求转换为HTTP请求,同时也将服务器的回应返回给手机,WML文件此时就被WAP GateWay编译成二进制文件。尽管有些
WAP geteway能够将HTML直接转换为WML,但是也不要指望它们能任意地将HTML转换为我们在手机上能看懂的东东。

  当然,仿真器就不需要WAP gateway来工作了,它会直接从服务器下载WML文件(或者直接在本地机上打开WML),同时将它显示
在手机的屏幕上。图一WAP 结构

  WAP 仿真器

  为了使用WAP服务,像吾等穷人买不起手机,就需要一个wap 仿真器。你可以去Nokia website下载一个 Nokia Toolkit
1.2,同时你也得装上Java Virtual Machine 1.2.2,可以免费从SUN公司下载,这里是个例子。

  WML 结构

一个WML文档是由板块组成的,一个板块包含有许多的卡片。在实际中,你可以把一个板块看成一个由许多有名字的标签组成的
HTML。

手机下载一个完整的板块,但是在一次只能显示一个卡片。通过链接浏览不同的地方。

我们将会看到一个简单的WML文档,你得懂点最基本的XML。



















This is the first card.









This is the second card.







一旦手机接收了这个块,它就会显示第一个卡片,当你按下左边的软键时,就会看到第二个卡片。

回到帖子顶部

回帖引用 删除 修改 6楼:answer0161  西元2008年3月1日   [ 传小纸条 ]

WML基本的语言

"p" element

作用与HTML一样,只是如果你想显示文字这个就是必须的。

"do" element

实际上每个WAP应用必须支持导航条。do标签最主要的type属性的值就是accept,这个意味着当你按下软键一个新的选项会被加到列
表中来。label属性指定显示的文字。另外是一些选项:

go - 导航到另外一个卡片或板块中去。他需要href 属性。

prev - 导航到上一个卡片中去

refresh - 刷新显示。

noop - 无

Anchor

作用和HTML中的一样的。在WML中Anchor链接的作用和do差不多,唯一的不同就是Anchor不以选项的形式显示。



Go to card 2





变量

WML结合变量的办法有一点不同于HTML和javascript。WML的变量不仅可以被WMLScript来调用,还可以通过card直接用于WML文
档。换句话说就是变量不仅可以由用户直接输入,同时也可以由setvar元素来设置。当然变量能够被脚本来操作,但这个不是必须
的!这个观点必须被更进一步的强调和阐明。例如,你可能需要一个card来获得用户的名字,下一个card就显示"Hello,飞刀",我
们就可以这样"Hello,$(firstname)",有点像PHP,是不是,这个在传统的HTML中是不可能办到的!

既然变量的值能够在各个card之间保存,那么它们就经常被用于保存状态信息,支持一些复杂的交互式WAP服务。这种方法的一个
问题就是当整个deck不得不重新引用时,这些状态可能与用户的浏览不能保持同步。所以,一些事件和属性就被用来捕获这些事件
(onenterofrward 和 onenterbackward).刷新则根据一些变量的值被用做更新card.

用户输入

当然,为了使你的页面变得更加的强大,变量就需要储存(接收)用户的标准输入。这一切通过一些类似于HTML的元素来完成.

input - 很像HTML,用户通过手机的键盘来输入。你能够想像,这种输入就不像我们使用PC上的键盘一样实用,所以我们应当尽量
简化这种输入方式,有可能尽量使用select元素来供用户选择。name属性是这个变量的名字,缺省值和大小的属性显然也是必须
的。format为输入入口指定了一个输入面具。其它的请查看其它资料,在这我就不一一讲述了!

select/option - 用户选项的列表。同样也很像HTML:



multiple=true属性告诉用户代理(浏览器)多项选择是被允许的. onpick事件发生于一个选项被选择/被取消时.

Postfield - 很像html中的hidden属性,它将不显示在屏幕中。它能同时将name与value传送给服务器.

Fieldset - 包含一大堆的信息强迫手机在一个屏幕中显示,当然这得看手机的能力了

其它的元素

img元素也同样被支持,但是你得使用一种特殊的图片格式,名叫WBMP.因为WAP手机拥有有限的内存和储存空间。这种新的格式能
够让WAP设备快速的理解和生成图片。Wireless bitmaps的生成,可以通过下载一个Photoshop和Paint Shop Pro的插件就可以搞
定了。最后大家要记住在你的服务器上设置正确的MIME类型,下面我列出了所有与WAP有关的MIME:

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

一些传统的强调元素也被支持,比如:em,i,b,small,strong等等,用法也和HTML一样。BR也同样被支持,不过写法有点不同,毕竟
是XML嘛,要写成这样


最后我们来看看time对象和ontimer事件,time对象保存着至card被调用至今的时间,如果我们定了ontimer事件,那么ontimer事
件就会被激发.

还有很多我也懒得写了,希望对你们建设WML网页没有什么影响.

WAP 的开发问题

很不幸的是,事情并不是我们想像的那么简单,不同的WAP手机总是有一些小的不同的地方,就像M$的javascript与NS的不同一
样。例如,NoKia 7710这样第一部在挪威出售的WAP手机,就不能正确的支持POST方法。

另一个限制就是deck的大小的问题。有些手机(Nokia 7110)就是不支持超过1.4K的WML文档,WAP网关能够将你的WML文档压缩成更
小的二进制格式,但是你也不要希望奇迹出现。这时不仅是Nokia 7110支持的东东不能显示,一些强调标帜也被忽略了,另外
fieldset标帜也很轻松地被它忽略了,是不是很烦!?嘿嘿,当你在仿真器上做出很cool的页面,然后再到手机上一看,嘿嘿,砸
了手机是你的第一选择.

虽然Nokia Toolkit 1.2仿真器上支持cookies,但是第一批WAP手机就是不支持,这就意味着你将和你的ASP中的Session,说再
见,至少也是很长的一段时间

下一节,我们将真正做一个WML与ASP相结合的网站.

回到帖子顶部

回帖引用 删除 修改 7楼:answer0161  西元2008年3月1日   [ 传小纸条 ]

在上一节中,我讲解了最基本的WAP和WML的概念,这一节我们就来看看ASP和WAP是如何结合的.

第四节:另一种预订你电影票的方法

现在在奥斯陆,电影院提供了一种基于电话系统的来销售门票,这个系统是很复杂的,还必须给用户一些说明才能指导用户买票,
而且用户还必须在报纸上找到某种电影的代码,这个很烦,我们来介绍另一种方法。

这里这将给你展示一个简单的让手机用户订票的WAP应用:一个肯定让人叫好的服务。用户不必记住那些烦人的代码,他们能够直接
从菜单中选取电影和电影院,并且用户也不需要认证。在这个例子中用户被要求在电影开始前40分钟交费,但是在真正的生活中,
用户同样可以通过手机来结帐.

此应用程序想像的条件是一个电影能够在同一时间在多个电影院上映,一个电影院不同的时间上演不同的电影。

这里我没有过多的考虑错误处理的问题,因为这不是本章节的重点,你喜欢你可以自己加上.

为了简单,我使用了Access 97来做为数据库,当然真正的系统不会用它了,其它的数据库如SQL Server,也不必改动多少代码.

数据库图表

数据库图表

.Movie 和Theater表是显然需要的。Show表用于追踪现在还有多少空位可以出售。

怎样调试这个程序

为了访问这个WAP服务,你需要一个WAP仿真器,这个程序主要是在Nokia Toolkit 1.2上调试,详细情况请查看上一章节。

选择电影

在list表中选择一个电影:

这里是代码:

<*

'send the right MIME type

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

第一件事就是声明wml,仿真器如何不在正确的地方声明XML,它是不会接受WML的尽管Nokia 7110可以忽略这一点,但是不能保证
其它的手机也行,所以你不得不做这事。同样你也得设置好MIME类型。







在进入下一个card以前会有一个闪烁的屏幕来显示一个图片WBMP一种新的格式。这个事件是由timer属性决定的,这里我们设置的
时间为5秒.ontimer事件引发后将带你去另一个card.(wmbp的Photoshop插件可以从网上免费下载).










WAP movies







<*

sqlQuery = "SELECT [Movie_ID], [title] FROM Movie"

set rsMovies = conn.Execute(SQLquery)

:

*>





这一部分是本文的焦点。从数据库中读出需要的数据显示出来,作为一个asp程序员,这个没有什么特别的,但是就是这个简单的程
序现在被用于一种全新的服务器就显得不一样了。这也使得我更加认为在基于WML的商业站的网络编程asp更胜于Java servlet.



Next













表单的提交也可以通过软开关函数(do 和 anchor)来完成。在这里,我是通过简单的内嵌链接来完成的,因为我觉得这样能够使用
户感觉直观和友好。Postfields大至和HTML中的hidden差不多,但是wml的变量不像html中的那样需要在javascript中传送,它
可以直接写在wml中,这一点上一节已经讲解了.在这里的传递的方法是get,post方法在WAP的规范也是被支持的,仿真器也能识别
它,但是很不幸,在Nokia 7110中,这个post不被支持,所以你没得选择.

回到帖子顶部

回帖引用 删除 修改 8楼:answer0161  西元2008年3月1日   [ 传小纸条 ]

选择电影院和上映时间

这部分代码让用户来选择看什么时间的电影,所有的记录根据前一页所选的电影来决定。在这里来选择电影院和上映时间.

movie_id = Request("movie")

sqlQuery = "SELECT title FROM movie WHERE Movie_id = " & movie_id

set rsMovie = conn.Execute(sqlQuery)

movie_title = rsMovie("title")

:

sqlQuery = "SELECT [name], [time], [show_id] FROM Show, Theater " &_

"WHERE show.movie_id = " & movie_id &_

" AND theater.theater_id = show.theater_id"

set rsShows = conn.Execute(SQLquery)

如果你仔细研究了这个代码,你就会想用Session来保存电影信息,再在这页进行查询更简单。同样很不幸,Session是需要
cookies的支持,虽说在WAP规范中也是被支持的,但是在Nokia 7110中也是不被支持,这就是说现在我们还不能把session用在WAP
服务中。

下面有一些有趣的事情:



如果你对cutter变量感到疑惑,那么就有一些事让你哭笑不得

Dim cutter

if InStr(Request.ServerVariables("HTTP_USER_AGENT"), "Nokia7110") then

cutter = 12

else

cutter = 7

end if

这段代码根据不同的设备来显示选项。我们有充足的理由的这样做,Nokia Toolit 1.2仿真器喜欢把砍掉我的的选项到只有几个字
符,而我们要显示电影名字和上映时间,所以我们就不得不减少电影名字的字符。在真的手机中不会出现这种问题,所以我们就必
须先判断设备的类型.

一旦我有机会(飞刀我很穷,没有钱,这是仅仅是遥远的梦想.......)在真的Nokia 7110上测试我的代码,我们会立即感到我们
有比我们想像更大的屏幕。实际上,有些电影院的名字很古怪,而且这些长名字会占用很大屏幕空间,我们没有必要浪费这些显示空
间,尽量把这些名字简化。



下一步就是让用户选择需要的票数.这部分的代码很像其它的部分。我将从数据库中查询相同的数据,因为Session不能在真正的
WAP手机中使用,所以我必须对有些内容进行确认,看看是否还有座位出售.

SQLquery = "SELECT * FROM show WHERE Show_id = " & show_id

set rsShow = conn.Execute(SQLquery)

:

seats = rsShow("free_seats")

:

if seats = 0 then

Response.write("Sorry, no more seats")

rsShow.close

set rsShow = nothing

Response.write("

")

Response.end

else

if seats > 6 then 'book up to 6 tickets or max available

max_seats=6

else

max_seats = seats

end if

end if

*>

<*=movie_title*> at <* =theater_name*>



储存票数

现在我们已经有了所有需要的数据了,我们得把它们保存起来:

tickets = Request("ticket")

:

free_seats = rsShow("free_seats")

:

free_seats = free_seats - tickets

:

SQLUpdate = "UPDATE Show " &_

"SET Show.free_seats=" & free_seats & " " &_

" WHERE Show_ID=" & show_id

conn.Execute(SQLupdate)

SQLquery = "SELECT max([Booking_ID]) as bookingnumber FROM booking"

Set rsBooking = conn.execute(SQLquery)

maxbookid = rsBooking("bookingnumber") 1

SQLinsert = "INSERT INTO Booking ( show_id, booked_seats ) " & _

"valueS ('" & show_id & "', '" & tickets & "')"

conn.Execute(SQLinsert) *>

You have booked <*=tickets*> ticket(s) for <*=movie_title*>


The show will take place at <*=theater_name*> (<*=time*>)




Your reference number is <*=maxbookid*>

下面是显示:

Figure 4:完成交易.

交易已经完成了,电影院可以坐着电影院门口收钱了.

结论

WAP现在才刚刚走出它的第一步,然而它是最近几年内最有革命性的IT发展之一。在这篇文章中我介绍了怎样用asp写WAP应用程序,
并对你们提出了一些警告,希望对你们以后的发展有用。多媒体技术依然不能太多的用于WAP,但是它的可移动性却是重要的,也为
商家提供了不少的商机。

回到帖子顶部

回帖引用 删除 修改 9楼:answer0161  西元2008年3月1日   [ 传小纸条 ]

1.WML与HTML有何不同?

  答:WML将文件分割成一套容易定义的用户交互操作单元,而每个交互操作单元被称为一个卡,用户通过在一个或多个这样的卡之间来回导航来实现对Internet的接入。针对手机电话通信的特点,WML提供了一套数量更小的标记标签集,这使它比HTML更适合于移动通讯产品中使用。使用WAPTM网关,所有的WML内容都可以通过HTTP1. 1来进行Internet接入,这样,传统的Web服务器、工具和技术都可以继续使用。

2.WAP论坛(WAPFORUM)是什麽?
  答:WAP论坛是一个拥有200多个成员的行业协会,它致力于开发用于数字移动电话和其他无线终端设备的全球性标准。WAP论坛的主要目标是确保无线行业各公司的产品的互相相容持续发展。WAP论坛的成员拥有90*以上的全球手机市场。

3.通过手机拨号上网跟手机上网有何分别?
  答:目前市场上有一类手机,商家称为"能上网"。其实它只能与笔记本电脑通过数据线相连,使笔记本电脑通过手机拨号上网。这种手机自身并不具备浏览互联网功能,只是一部能拨号上网的移动电话而已。在构造上它只是比普通手机多一个数据传输口或红外接口。因此严格说起来,它其实只能"通过手机上网",而算不上"能上网(浏览互联网)的手机"。

4.WAPTM与WML之间的关系是什麽?
  答:WAP利用数据压缩技术与窄带环境相适应。WML(无线标识语言)是用于产生WAP内容的,它充分利用小屏幕的特点,且可单手进行操作。WAP内容既可以是一两行文本,也可以是全屏图表。

5.如果想参加WAPTM技术开发园地,应该怎办?
  答:请浏览爱立信WAP开发者园地网站:
  http://www.ericsson.com/developerszone/index.asp(英文 )
  您可获得最新行业信息,爱立信WAP产品简介,及下载常用开发工具,如WAP伺服器等。

6.爱立信跟WAPTM科技研发有甚麽紧密的关系?
  答:爱立信是WAP科技最初的研发者,具备了成熟并完整的WAP科技发展技术,由系统,垂询及移动装置一应俱全,现已拥有超过四百个垂询顾问,协助WAP解决方案的发展,并已向电话商提供超过二十个WAP系统。

7.为什么我放在apache服务器上的WML文件不能被打开?
  答:在apache上设置WAP Server需要设置以下参数才可以被WAP终端访问。
  增加类型text/vnd.wap.wml wml
  增加类型text/vnd.wap.wmlscript wmls
  增加类型image/vnd.wap.wbmp wbmp
  增加类型application/vnd.wap.wmlc wmlc
  增加类型application/vnd.wap.wmlscriptc wmlsc

8.deck的文件极限是多大?
  答:deck文件的极限是1397 bytes,假如文件中有中文,文件应该控制在1.2K以内。

9.我们能否使用java applets来增强WAP服务?
  答:WML不支持java applets,但是将来的java将加载到无线设备的CPU和内存上。

10.WML是否支持cookies?
  答:今天的WML尚不支持cookies。

11.我想在页面中提供电话号码的链接,让用户直接通过链接来拨号,请问这种功能如何实现?
  答:当前还不可能通过WML链接去拨号,这一功能会在新版的WAP中实现。

12.如何申请免费的wap网关代理?如何设置?
  答:不用申请。例如在诺基亚7110里有一个设置项:"IP地址", 直接在上面填上WAP网关的IP即可,如Ericsson的网关IP为:195.58.110.201。

回到帖子顶部

回帖引用 删除 修改 10楼:answer0161  西元2008年3月1日   [ 传小纸条 ]

关键词: WAP WAP技术

目录

什么是WAP
怎样书写WAP的页面
WAP上网设置方式
WAP的发展状况
wml用法列表
参考文献

什么是WAP?

WAP(Wireless Application Protocol,即无线通讯协议)是一种向移动终端提供互联网内容和先进增值服务的全球统一的开放式协议标准,是简化了的无线 Internet协议(但并不是说你的手机可以直接读取通常所说的web页的内容,它所用的是wml语言有别于通常所说的HTML,这点在下文中会做进一步说明,首先要知道二者其实并不通用,也就是说你无法在电脑上直接用IE打开用wml所写的网页,手机上也不能直接打开HTML所写的页面。)它将 Internet和移动电话技术结合起来,使随时随地访问丰富的互联网络资源成为现实。
它的诞生是WAP论坛成员努力的结果,WAP论坛是在1997年6月,由诺基亚、爱立信、摩托罗拉和无线星球(Unwired Planet)就共同所组成的。它的目标就是 通过WAP这种技术,就可以将Internet的大量信息及各种各样的业务引入到移动电话、PALM等无线终端之中。无论你在何地、何时只要你需要信息,你就可以打开你的WAP手机,就可以接入internet,就像用家里的大猫、小猫上网一样。

好了,让我们先来认识一下wap的系统架构,看看它是怎么将我们的手机和Internet联起来的。

就像HTTP协议一样是一种标准,规定了WEB 服务器与客户浏览器交互的方式、规范。让我们了解一下WEB服务器的工作方式、原理。图 1(下图)表明了客户向URL所指定的WEB服务器发出了请求, WEB服务器根据请求的程序返回相应的内容至客户端,二者就是按HTTP协议进行交互的。客户端发出一个以HTTP开头的URL请求时,WEB服务器端的程序可能是CGI程序、或静态网页,或SERVLET程序,也可能是其他服务器端程序,但它们均以HTML格式将相应的内容返回给客户,这样客户就可在浏览器上的看到返回的内容。



WAP网络架构由三部分组成,即WAP网关、WAP手机和WAP内容服务器,这三方面缺一不可!其中WAP网关起着协议的‘翻译’作用,是联系GSM网与万维网的桥梁;WAP内容服务器存储着大量的信息,以提供WAP手机用户来访问、查询、浏览等。图2(下图)表明了WAP网络的基本架构。每当你从手机键入你要访问的WAP内容服务器的URL后,信号经过无线网络,以WAP协议方式发送请求至WAP网关,然后经过‘翻译’,再以HTTP协议方式与WAP 内容服务器交互,最后WAP网关将返回的内容压缩、处理成BINARY流返回到你的WAP手机屏幕上。同样的,WAP服务器端的程序也可是CGI程序、或静态网页,甚至是ASP,比如国内的一个比较受欢迎的WAP网站Joyes(至少在同学间是这样)就是用ASP写的服务器端。



(注:WAP协议包括以下几层: 1、 Wireless Application Environment (WAE)(最左端的那个图示) 2、Wireless Session Layer (WSL)   3、Wireless Transport Layer Security (WTLS) 4、Wireless Transport Layer (WTP) 其中,WAE层含有微型浏览器、WML 、WMLSCRIPT的解释器等等功能。WTLS层为无线电子商务及无线加密传输数据时提供安全方面的基本功能。)

怎样书写WAP的页面

下面让我们为放飞网建一个 WAP 页,先来看一下开头要怎么写:



首先要告诉你的手机你所要让它显示的语言,否则会出现乱码,显见体中文的话为:



之后,还记得之前所提到的那个论坛吗?把它也给写上吧:



和 HTML 一样该写 <> 了,只不过把 HTML 改为 wml 就好了:



再往下式网站的标题 (tittle) 部分,由于我们打算在一页里放入两部分内容,所以,可以在前面加上 card 标签和它的 id :



为了让手机里的菜单有此次所写的第一个放飞网 alpha0.01 版 的版本号,可以加上下面的东东(其中, prev 指的是可以让手机后退回上一页,这里我们把它作为主页,可以缺省或换为其它,我们的目的是为了达到类似于在 windows 右键菜单中添加一条可点击的项目一样):








有了 tittle 标题,下一步自然就是内容了,我们选小字体来显示文本内容,并让这些字左对齐(手机中也可以添加
标签来换行,但手机本身的浏览器具本自动换行功能,也就是说手机里的浏览器自己就会给长的文字自动加上 HTML 中的 一样,此功能也可强制在手机中关闭,但我想一般没人愿意这么做 ^ ^ 其中的 的用法和 HTML 中的一样):





欢迎登陆放飞技术网的wap版,这是它的alpha0.01版,现提供一首歌曲的MIDI下载以及能将手机桌面上 “ 中国移动 ” 四个字去掉的透明网标的下载,谢谢大家的支持。


奥林巴斯广告歌

透明网标







关于放飞技术网






之后写另一个 card 标签 card1 来介绍一下放飞网(当点居中的“关于反飞技术网”的链接时,由于 card0 和 card1 都在一个文件中,我们起名为 wap.wml 好了,便会直接从手机中的 cookie 里读取 card1 中的内容,给人的感觉会很快,省去了等待的时间,这也就是用 card 标签的好处了;但是,同时需要指出的是由于 card1 和 0 写了在一个文件里,会被一起传下来,对于可选看的 card1 里的内容不论你是否真的要读,都会算 GPRS 流量划钱,在提高浏览速度和节约流量上这点就要把握一下了):













放飞技术网是北京工业大学科协下属的最大的一个学生实践项目,放飞网已经成立了两年了,很快将会迎来它的第三个生日,在此祝愿放飞越办越好^^







[<]










上面的“ [<] ”特殊符号 [<] 表示返回(祥见wml用法列表)。

最后要记得加上 ,这样就做好了一个 WAP 版的放飞网演示了,它能够让你的手机下载一个合旋铃声和一个透明的网络标示(前者在三星的不支持 MIDI 仅支持 MMF 格式铃声的手机不能用,后者仅限诺基亚)当中的 cod 文件是类似于你在 PC 上装一份软件时的授权书,这里不细说,在例子文件中有源文件供参考。

WAP上网设置方式

也许你还不知道你手里的手机很可能只需要简单的设置一下就可以浏览WAP页了,照着做试试看吧:

首先,请先确定你的手机支持WAP并且最好是支持GPRS的,那么就继续吧

对于中国移动的用户来说,你可以有两种选择方式:

动感用户:

如果你是动感地带的用户,那么你的手机必须支持GPRS,因为动感地带默认不提供拨号方式接入网络,设置如下:

1、开通WAP服务

申请方法1 你可以持本人身份证到当地中国移动通信营业厅办理申请手续。
申请方法2(推荐,全自动,按键即可开通) 你也可以在打当地的1860热线办理开通WAP服务

2、设置WAP

连接名称:移动梦网(GPRS)
数据承载方式:GPRS
接入点名称:cmwap
鉴定:普通
网关IP地址:10.0.0.172
MMSC URL地址:http://mmsc.monternet.com (彩信用,以及http://wap.monternet.com
连接安全:关
连接类型:永久

用户名和密码都为空。

费用如下:

月租费 免费流量数(MB) 超过后流量费(元/KB)
自由套餐 0 0 0.03
经济套餐 20 1 0.01
时尚套餐 100 20 0.01
商务套餐 200 不限量使用 不限量使用

全球通用户:

如果你是全球通用户,除了上面提到的以GPRS方式接入外还可以选择拨号的方式,设置如下:

连接名称:移动梦网(CSD)
数据承载方式:数据
拨号号码:17266

接入点名称:cmwap
鉴定:普通
网关IP地址:10.0.0.172
MMSC URL地址:http://mmsc.monternet.com (彩信用,以及http://wap.monternet.com
数据通话类行:模拟

连接安全:关
连接类型:永久

用户名为wap。

对于神州行的用户,好像中国移动并不提供接入上网服务!

WAP的发展状况

正如许多人想象, WAP 手机上网和普通的电脑上网有很大的差别。由于 WAP 手机内存不大、屏幕小及无线频带窄,目前 WAP 手机所显示的网页内容主要是文字,也有一些较小的图片,但仅有黑、白和灰色三种颜色。业界专家指出,能够让手机和手持电脑成为上网工具的 WAP 技术将是互联网技术的下一个热点。不过,手机上网真要流行开,还有两个前提,那就是一来 WAP 必须解决好目前还不便于操作的问题,二者需要网络运营商加紧 WAP 网的基本建设,使 WAP 手机有用武之地。

WAP 手机可收发电子邮件、阅读新闻和股市行情,但是更复杂的通信应用,如在线采购和视频会议,目前的移动通信网运行速度就无法达到要求了。于德国汉诺威开幕的 Cebit 技术博览会上,对移动通信进行全面“提速”从而使互联网实现移动,是与会者一个热烈讨论的话题。

据爱立信公司预计,到 2004 年移动互联网用户将达到 6 亿。而美国研究机构弗莱斯特公司 (Forrester Research) 公布的数据显示, 2004 年,欧洲三分之一的人将使用手机购物和收取网上信息。

在这场争夺移动互联网用户的竞争中,日本先行一步。今年日本第一个基于宽带码分多址技术的第三代移动通信网将投入运营。欧洲将紧随其后 。。。 。。。

而中国自己的无限通讯标准WAPI凭借自身的安全性在技术上完全击败了WI-FI,在WI-FI阵营中的Philips等公司已向中国势好,这证明中国这次也有了具有自行只是产权的标准,迫于各方面各方面的压力这个标准定于2004年6月开始实行,我们一起等待着这一天的到来。。。 。。。

wml用法列表

Decks and cards Timers Variables Anchored links Layout and text formatting
Events Tasks Images User input Special characters

Decks and cards

Element Syntax


content

title="label"
newcontext="boolean"
style="style"
onenterforward="url"
onenterbackward="url"
ontimer="url" >
content