构建动态 WAP 站点 |
| 作者:不详 来源:转载 发布时间:2007-1-19 9:06:52 |
|
二十一世纪是信息的世纪,以IP技术为核心的Internet在全球范围内后的了空前规模的商业化应用,它几乎渗透到了人们生活的每一个角落,特别是以Web为核心的信息检索业务取得了巨大的成就。如今,要随时随地的获取信息,通过使用移动电话连上互联网将是一种非常可行的方案,而WAP就是实现这一方案的技术工具。现在,移动电话上网数量的增长速度要比PC上网数量的增长速度更快。这也就意味着不久以后,大多数新的移动电话都将配有WAP浏览器。 在现实生活中,为了能使人们随时随地的通过移动电话获取最新的股票行情信息,我们可以把WAP技术和后台的数据库技术相结合,通过移动电话的WAP浏览器,把数据库中的股票当前行情显示给用户。我们的这套教程,就是用这样的一个实例程序,讲解了如何构建一个动态的 WAP 站点。当然,在数据库和数据来源方面,我们都做了很大的简化,只是祈祷一个讲清原理的作用,读者可以根据教程自己深入研究一下。 第二章 Server 端的设置 在这里,我们先用最为典型的IIS服务器作为例子: 为了使IIS支持WAP(WML)页面的发布,在IIS的Web站点的属性 / HTTP信息中设置WAP的MIME属性,添加如下的MIME类型: 扩展名 内容类型(MIME) .wml text/vnd.wap.wml .wbmp image/vnd.wap.wbmp .wmlc application/vnd.wap.wmlc .wmls text/vnd.wap.wmls .wmlsc application/vnd.wap.wmlsc 重启 IIS 使其支持 WAP 页面的发布。 如果你使用的是 Apache 作为Web服务器的话,找到conf/httpd.conf这个配置文件,然后在里面添上MIME类型。在httpd.conf中加入如下几行: AddType text/vnd.wap.wml .wml AddType image/vnd.wap.wbmp .wbmp AddType application/vnd.wap.wmlc .wmlc AddType text/vnd.wap.wmls .wmls AddType application/vnd.wap.wmlsc .wmlsc 重启 Apache Server 使其支持 WAP 页面的发布。 这样,你的Server就支持 WAP(WML) 站点的发布了。 第二章 编写你的第一个 WML 页面 在上一章中,我们配置好了支持 wml 的服务器,现在,我们新建一个虚拟目录(例如 http://127.0.0.1/wml ),把我们编写的 wml 页面放在这个目录中发布。这样我们安装好 WAP 模拟器后,就可以输入 http://127.0.0.1/wap浏览自己做的 WAP 页面了。在这里我推荐大家使用 Nokia 的 WAP Toolkit 模拟器,这个比较真实。大家可以到 Nokia 的站点上去下载。 WML 其实是 XML 的一种特殊应用,让我们来看一个最简单的 WML 页面: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <template> <do type="options" label="back"> <prev/> </do> </template> <card id="card1"> <p>Hello World ! </p> <do type="accept" label="Start"> <go href="#Welcome"/> </do> </card> <card id="Welcome"> <p>You are welcome! </p> <do type="accept" label="Back"> <go href="#card1"/> </do> </card> </wml> 第一行是说明这个文件是 xml1.0 标准的。我们可以看到,<wml> 和 </wml> 括起了整个 WML 页面的内容,我们成为一个 DECK ,在这个 DECK 中,又可以分成几个 <CARD> 和 </CARD> 括起的内容。记住,一个WML页面只能有一个 DECK ,一个 DECK 中可以由一个或多个 CARD ,而手机的一次就只显示一个 CARD 中的内容。 以上面的这个页面为例,打开这个页面时,只显示 Hello World ! 和一个 Start 的超连接,选择 Start 这个超连接后,就跳转到 id 为 Welcome 的那个 CARD ,屏幕上显示 You are welcome! 和一个 Back 连接,选择 Back 连接,则又跳回一开始显示的 id 为 card1 的那个 CARD 。 在这里,起连接作用的是这段代码: <do type="accept" label="Back"> <go href="#card1"/> </do> <do> 中的 label 项,则是连接显示的内容,而连接指向则由 <go href=> 来指定。href 的值以 # 开头的话,则是页面中的 CARD 名(类似于 HTML 中的锚的概念);如果 href 的只是一个页面的地址,例如 <go href="a.wml"/> 则这个连接将指向另一个 WML 页面。 WML 的语法是遵循 XML 的,可以说 WML 是 XML 的一个子集,XML 是 WML 的超集。 在 WML 中其他常用的元素有: <img src="1.wbmp" alt="1"/> 插入图像1.wbmp(在 WAP 中,只能使用 wbmp 格式的图像) <option value="up" onpick="a.wml"> 选择,选中这一项后跳转到a.wml <input type="text" name="id" format="*N"/> <do type="accept" label="Check"> <go href="fivedays.asp"> <postfield name="id" value="$id"/> </go> </do> 上面的这一整段代码是一个表单,先由 <input> 标签负责将拥护输入的数字( format="*N" 只允许输入数字) ,放到变量 id 中,再当用户按下 Check 连接时,<postfield name="id" value="$id"/> 发生作用,把变量 id 中的值以 POST 方式传送给 fivedays.asp。$id 即代表变量 id 的值。这个连接相当于:fivedays.asp?id=$id 。 其他的一些常用的 WML 元素用户可以自行参考一下 WML 语法手册,在这里我就不多说了。 第三章 数据库的输出 在我们的这个例子中,由于每支股票有价格,名字,号码等信息,所以要由一个数据库来保存维护。我们的主要功能有查询某股票的当前价位,五天来的收盘价,今天的涨降幅前五名,所以,数据库中除了每支股票的号码和名字外,还得有前四天来的收盘价及当前价格。考虑到值试举个例子而已,所以只设计了一个简单的数据库,名为money ,该数据库设计了一张表,名为stock,该表包含了以下属性:num(主键) , name , price1 , price2 , price3 , price4 , price5 , temp 。 分别表示股票号码,名字,前四天收盘价,前三天收盘价,前天收盘价,昨天收盘价,现在价格,现在相对于昨天的涨降幅(百分比)。我们输入了大约50支股票的信息。 根据查询的需要,需从数据库中找到相关的数据,我们采用ASP编程,用ODBC连接数据库money,设置的数据源名为money。下面以查询当前价格为例,说明怎样与数据库连接。 <% number=Request.QueryString("id") Set conn=Server.CreateObject("adodb.connection") conn.Open"dsn=money;uid=;pwd=;database=money.mdb" sql0="select num, |
| [] [返回上一页] [打 印] |
|
文章评论 |
