新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论WAP/WML, XMPP, Mobile Web Service, Windows Mobile, Symbian, PalmOS, Android, 嵌入式数据库, 无线搜索等移动嵌入式软硬件开发技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - 高级XML应用『 XML 与 移动嵌入式开发 』 → [推荐] WAP开发入门与提高 [连载] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 101444 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
     * 贴子主题: [推荐] WAP开发入门与提高 [连载] 举报  打印  推荐  IE收藏夹 
       本主题类别: 基于XML的移动通信协议    
     enyaxp 帅哥哟,离线,有人找我吗?巨蟹座1984-7-4
      
      
      威望:2
      等级:计算机学士学位(版主)
      文章:350
      积分:2433
      门派:XML.ORG.CN
      注册:2007/12/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给enyaxp发送一个短消息 把enyaxp加入好友 查看enyaxp的个人资料 搜索enyaxp在『 XML 与 移动嵌入式开发 』 的所有贴子 点击这里发送电邮给enyaxp  引用回复这个贴子 回复这个贴子 查看enyaxp的博客楼主
    发贴心情 [推荐] WAP开发入门与提高 [连载]

    本文篇幅较长,为了方便大家阅读,现在列出各主要内容所在楼层,感兴趣的朋友们各取所需吧:

    第一部分:WAP开发环境

    WAP开发环境的设置  ---------- 1楼

    第二部分:WML基础概念

    WML简单例子及编译测试方法  ---------- 2楼

    WML程序结构  ---------- 3楼

    WML语言的基本知识  ---------- 4楼

    第三部分:WML主要语法

    卡片、卡片组及其属型 ---------- 5楼

    任务元素  ---------- 6楼

    时间元素  ---------- 7楼

    变量设置元素与变量设置的有关规定 ---------- 8楼

    用户输入处理元素  ---------- 9楼

    锚、图像、定时器元素  ---------- 10楼

    文本格式化元素  ---------- 11楼

    第四部分:WML Script语法基础

    WML 程序中调用WML Script函数 ---------- 12楼

    WMLScript的主要优点及其字节码解释器  ---------- 12楼

    WMLScript基本规则  ---------- 13楼

    变量与数据类型  ---------- 13楼

    操作符与表达式  ---------- 14楼

    第五部分:WML Script脚本程序设计

    WMLScript语句  ---------- 15楼

    函数的声明与调用  ---------- 17楼  

    预编译  ---------- 18楼

    执行时的错误检测与处理 ---------- 19楼

    第六部分:WML Script标准函数库

    WML Script规则  ---------- 20楼

    Lang函数库  ---------- 20楼

    Float函数库 ---------- 21楼

    String函数库  ---------- 22楼

    URL函数库  ---------- 23楼

    WML浏览器函数库  ---------- 24楼

    WML浏览器函数库  ---------- 25楼

    Dialog函数库  ---------- 26楼

    =====================================================

    第一部分:WAP开发环境 -- WAP开发环境的设置

      WAP(Wireless Application Protocal)是开放的协议,这与日本的I-MODE有所不同,后者是封闭的。WAP事实上是无线网络和Internet网络相结合的产物。本来的无线网络主要是承载话音业务,而同时internet的数据业务已经非常的成熟。由于数据业务在无线网络中应用的需求,促进了WAP的形成。你甚至可以认为WAP是一个轻量级的HTTP协议,它是为无线网络量身订制的。

      作为开发人员我们应该了解一下WAP的工作原理以及编程模式,如果你有Web应用程序开发经验的话,理解起来会比较容易的。其实它就是一种B/S的模型,这里的Browser不是传统意义上的浏览器而是支持WAP设备上的用户代理,也可以理解为WAP浏览器。

      而服务器就是一般的WEB服务器,你可以使用IIS、Apache或者其他的web服务器,由于html不适合在资源比较紧张的无线设备上传输因此我们在服务器上使用wml语言。事实上当用户通过无线设备访问网络的时候,首先请求要经过WAP网关,WAP网关会对数据进行适当的编解码,然后把数据请求发送到web服务器上,处理后数据经过WAP网关的编解码后发送到手机上。而这对程序员来说是透明的,你只需要管理server的代码就可以了。

      既然我们的服务器可以用一般的WEB服务器,那么这里我使用TOMCAT5.5作为web服务器,首先你需要从http://www.apache.org 下载tomcat5.5并安装。假设安装路径为c:\tomcat 5.5。在环境变量中设置好CATALINA_HOME=c:\tomcat 5.5。设置好JAVA_HOME=C:\jdk1.5.0。进入CATALINA_HOME/bin目录,运行StartUp启动tomcat,默认的端口是8080。打开浏览器在地址里面输入http://localhost:8080。看到tomcat index页则说明安装成功。tomcat5.5的版本一般都已经对wml支持了,如果不支持的话,修改CATALINA_HOME/conf/web.xml。在MIME映射部分添加如下内容:

    <mime-mapping>
     <!-- WML Source -->
     <extension>wml</extension>
     <mime-type>text/vnd.wap.wml</mime-type>
    </mime-mapping>
    <mime-mapping>
     <!-- Compiled WML -->
     <extension>wmlc</extension>
     <mime-type>application/vnd.wap.wmlc</mime-type>
    </mime-mapping>
    <mime-mapping>
     <!-- WML Script Source -->
     <extension>wmls</extension>
     <mime-type>text/vnd.wap.wmlscript</mime-type>
    </mime-mapping>
    <mime-mapping>
     <!-- Compiled WML Script -->
     <extension>wmlscriptc</extension>
     <mime-type>application/vnd.wap.wmlscriptc</mime-type>
    </mime-mapping>

      你还可以在welcome-list里面添加index.wml作为默认的访问页面

    <welcome-file-list>
     <welcome-file>index.wml</welcome-file>
     <welcome-file>index.html</welcome-file>
     <welcome-file>index.htm</welcome-file>
     <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

      这样服务器已经可以用来开发wap应用了。

      下面提供一些其他wap服务器的配置方法:

      我们首先以Microsoft 的Internet Infomation Server(IIS 4或IIS 5)以及Unix平台中最为普遍的Apache两种Web Server来介绍如何以它们来建制自己的WAP Sever,将原先已经建制的Web信息平台扩展到无限平台之上。

    1.1 WAP Sever Configuration

      其实WAP Sever建制非常容易,WAP在信息传输的部分是使用HTTP来进行的,与现有的WWW信息平台一样,因此,将现有的Web Sever都可以通过对配置的调整成为WAP Sever,提供对无线装置的服务。

      在WAP服务当中,所提供的新文件类型目前共有五种,以扩展名来分的话分别是wml,wmlc,wmls,wmlsc,wbmp,分别代表的是WML原始文件、WML文件的二进制码、WML Script的原始程序码、WML Script二进制码,以及单色的Wireless BMP文件。这些的扩展名必须新增到Web Server的MIME Type设定中,Web Server才能够提供WAP的服务。

      不论使用何种Web Sever软件,例如Microsoft IIS、Netscape Enterprise Sever、Apache、或是任何一种,只要加入以上五个MIME Type设定,就可以提供WAP服务了。

      接下来,我们就一步步带领大家以IIS及Apache两种不同的Server进行设定,将您的Web Server进化成WAP Server,以提供WAP服务。

    1.2 把Microsoft IIS 变成WAP Server

      在这一节里面,我们以IIS为例,进行MIME Type的设定。在Windows 系统的发展过程中,到了Windows 98、Windows NT 4.0的Option Pack公开之后,对于WWW信息平台的提供就变得更容易了。

      本节中所使用的范例程序是IIS 5.0。但是Windows NT 4.0 Workstation版本以及 Windows 98所使用的Personal Web Server(PWS)则在设定步骤上面有些差异。

      首先,进入IIS的管理画面。

      启动了IIS管理画面之后,请选取您要管理的机器名称,在选取了机器名称,IIS管理画面会将该机器上面所有的WWW站点都显示出来。这是因为IIS中可以针对Windows 2000或Windows NT 中所设定的不同IP位置或同一个位置中不同的Port建立多个WWW的服务。

      选取了要设定的Web站点之后,请在该站点的图示上面以鼠标右键点选一下,调用设定画面,如图1所示。在图中的设定画面选项里,可以设定包含虚拟目录、制作清单,以及目录安全设定等许多不同的功能,只是因为在这里我们所点选的是整个站点,因此所变更的设定将会被套用在整个站点中。


    此主题相关图片如下:
    按此在新窗口浏览图片

      当然我们也可以只针对某几个特定的目录作设定,只要在特定的目录上面按鼠标右键,使用该目录的设定选项。

      设定选项之后,请直接选取“属性”显示变更设定内容的视窗,如图2


    此主题相关图片如下:
    按此在新窗口浏览图片

      在设定内容视窗中,一共包含了十大分项(这里的分项会因为IIS版本不同而有所差异)。进入设定内容视窗之后,一开始会位于整个WEB站点的主要设定部分,包含在IIS管理员中对于这个站点的名称、让这个Web站点对应的IP地址和Port号码,而我们要新增的MIME Type则要在HTTP标题的部分作设定的。

      再进入了HTTP标题设定部分之后,会出现如图3所示的画面,在HTTP标题设定部分包含了四种不同的设定,分别是:启用内容限制服务,用来设定某些特殊的目录中的文件权限,以及自定义HTTP标题,用来设定自定义HTTP header meta资料,第三个是内容分级。可以将一个目录或站点中的文件内容设定为内含某种等级的文件,例如暴力、性、不当文字与言语等,第四个部分就是我们现在要设定的部分:MIME对应,将某个特定的扩展名与MIME type。


    此主题相关图片如下:
    按此在新窗口浏览图片

      接下来,请点击文件类型这个按键,调用MIME type设定画面,如图4所示。


    此主题相关图片如下:
    按此在新窗口浏览图片

      在图4中的新类型按键上面以鼠标左键点选之后,就会出现图5的输入画面,此时我们要将前述的五个MIME type一次一次的输入到扩展名与内容类型之中。当然了,一次只能输入一种新的扩展名与MIME Type的对应。而输入完成之后在IIS 5.0与4.0中就可以直接使用这些新的文件类型了。


    此主题相关图片如下:
    按此在新窗口浏览图片

      而Windows NT workstation或是Windows 98中的Personal Web Server(PWS)的设定方法有很大的差别。

      因为在PWS之中并没有特别让使用者输入资料的设定界面,所有的PWS的MIME Type都是使用Windows操作系统内部的MIME Type对应资料的,因此我们必须在Windows资源管理器中的文件类型这部分来做新增的动作。

      首先我们需要点击资源管理器上面的工具选项,选择其中的文件夹选项这个项目,调用设定系统配置的视窗界面,如图1.6所示。

      一开始画面将会显示在第一页的设定部分,也就是图5中的“查看”那一页,我们新增的MIME Type的部分是位于文件类型的设定页中,因此我们必须以鼠标左键点击文件类型的Tag以切换到该设定页。此时以鼠标左键点击图5中的新建类型按钮,则会出现图6所示画面。


    此主题相关图片如下:
    按此在新窗口浏览图片

      新增类型包含了:文件描述、关联扩展名、内容、类型,也就是MIME type,还有这个类型的预设的扩展名。原来在Windows NT系统中还需要将对新增的文件类型加入所谓开启、编辑等对应动作的处理程序与参数设定,但是现在新增的MIME type只是为了在Personal Web Server(PWS)上面提供新的MIME type,因此便不用在此指定其他相对应的动作所要启动的程序。但读者如果想在Windows资源管理器当中以鼠标双击该文件进入编辑器来处理这个文件的话,请暗下动作选项(A)下面的新增按钮,则可以选择以系统中的那个程序来处理该种文件。

      不过要注意到的是,目前的环境中还没有比较好的WML编辑器,所能用的应该也就是几个电信大厂所提供的工具了,所以读者也可以使用目前在网络上极为流行的几种文字编辑器来处理WML文件,像笔者就是以UltraEdit 6.0作为对WML文件的处理程序。

      在Windows NT Workstation或Windows 98当中设定好了这些新的MIME type之后,必须重新启动计算机,让系统更新对于文件类型的对应,然后Personal Web Server(PWS)才能够提供WAP服务。

    1.3 将Apache 升级为WAP Server

      Apache可以说是目前所有跨平台的Web Server软件中支持最多平台的一个,它的前身是NCSA的httpd,一开始这个软件在改版的时候就已经考虑到大多数的操作系统平台了,包含了NT,Linux、以及各种不同的Unix操作系统,在这里我们将以Linux配合Apache作为设定的例子。

    1.3.1 Apache 系统介绍

      Apache系统比较像NCSA的httpd(因为是同一群工程师将原来的程序改良而成的),只是后来的Apache比前期的NCSA httpd增加了许多功能,像Apache提供了同步执行多个处理程序的功能,使得NCSA httpd原本效能不良的问题获得了长足的改善。现在,只要你使用的是Unix或者Linux系列的操作系统,同时也使用Apache作为你的Web Server的话,你可以再列出全部处理程序的时候看到其中有许多个httpd处理程序同时在执行。

      Apache使用了同时维持一定的未忙闲状态的处理程序来改善效能问题。因为旧有的NCSA httpd言用所有的UNIX上面的成学习法方法,将所有的功能大都以一个处理程序(process)作为提供者。而在1995-2000这几年中,Web的使用者的数量极为快速的增加,因而就系统以单一处理程序提供服务的方式越来越不受欢迎,而在CGI与互动程序的效能与支持上面也增加了许多的功能。

      例如在互动程序上新增了PHP程序的支持、JAVA Servlet、JSP,甚至于还支持Windows IIS系统中的ASP程序的功能,都是让许多人不断支持Apache的原因。除此之外,Apache对于CGI效能的提升也作了极大的改良,除了提供程序人员开发可植入Apache系统的界面,用以提升常用程序的效能之外,还针对一般CGI的效能问题与安全问题作了改善。

      在把Apache Server装到Linux系统上面之后,Linux系统的/etc目录下就会新增一个httpd目录,用来存放所有的Apache的配置设定文件,而执行文件httpd则会被存放在/usb/sbin目录中,同时还会将一个名为mime.types的文件放到/etc目录下面。

      且不论Apache里头的其他设定(这部分的设定文件都在/etc/httpd/conf底下,包含了目录的权限、虚拟目录的对应、以及Sever本身的其他相关的设定)MIME type的设定值需要修改/etc/mime.types这个文件即可。

      /etc/MIME.types这个文件中储存的是以行作分隔的MIME types设定,每一行为一个独立的MIME type,如果要对应到特定的扩展区的话,就直接在MIME type之后留一个空白字符,在打上扩展名。以wmlc为例,必须在文件中加入以下这一行设定:

      application/vnd.wap.wmlc wmlc

      完成之后,重新启动Apache,Apache就可以提供wmlc这个文件类型让使用者端存取了,当然,在第一节中所介绍的五个MIME type也都得加到设定文件中才能提供完整的WAP服务。

    1.4 建立WAP的测试环境

      在WAP编程与开发中,为了对所编写的网页及应用进行测试,我们通常要建立WAP的测试环境。一般来说,WAP测试环境可以从浏览器环境、模拟环境、实际环境三个方面进行建立,本节就对此进行基本的介绍。

    1.4.1 浏览器环境

      浏览环境的建立十分简单。目前Internet尚有许多站点提供有WML浏览器的免费下载服务。比较著名的WML浏览器是Winwap(论坛中提供下载)以及各移动通信设备公司提供的浏览器。安装这些浏览器后,用户就可以在Windows系统环境下访问WAP站点,查看WAP页面。

      在WAP的服务器端,开发人员则可以利用Windows NT 4.0或Windows 2000以及Internet信息服务器IIS(Internet Information Server 4.0/5.0)软件进行模拟。在原有的WWW服务子目录下再建立一个WAP子目录,将所有的WML网页放在其中,并对IIS进行必要的配置。然后,在WWW服务器正常运转的情况下,开发人员通过在Winwap等WAP浏览器中输入http://locallhost(本地计算机名)/wap/index.xml的形式,即可进入WAP网页进行浏览测试。

      举个例子:首先下载winwap,安装和其他的应用程序安装一样,下面我们编写一个简单的wml文件测试一下。

      index.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="MyFirstCard" title="First Card">
    <p align="center">
    Hellowww.xml.org.cn
    </p>
    </card>
    </wml>

      如使用Tomcat 5.5作为服务器,则把这个文件放在CATALINA_HOME/webapps/root/下面,启动winwap后在地址内输入http://yourip:yourport/index.wml,将会在winwap里面看到hellowww.xml.org.cn

      这种测试环境的优点是实施起来比较简单,建设比较快,操作起来也比较简单易学。其不足之处在于,这种测试用的浏览器毕竟是Windows环境下的浏览器,支持大部分的WML标记,查看窗口的界面可以扩大和缩小,比较自由,因而所看到的测试效果与实际手机上的效果可能会有比较大的差别,而且它也不能提供编辑、编译和调试的集成环境。

    1.4.2 模拟环境

      用于WAP测试的模拟环境是通过使用移动通信设备公司所提供的WAP手机模拟器来实现WML浏览的。目前可以从各公司站点上下载的模拟器有Nokia Toolkit、Ericsson R1.0 Emulator、Ericsson WapIDE、UpPhone UP>Simulator、Motorola Mobile ADK等。

      相比较来说,Nokia和Motorola提供了比较完整地结成开发环境,其它两家主要提供了模拟WAP手机的WML浏览。由于模拟器一般都是供直接的HTML服务器直接连接,所以WAP服务器端只需要Windows NT/2000及IIS 4.0/5.0 软件即可进行模拟和调试。与上面介绍的方法一样,在WWW服务器工作正常的情况下,通过输入http://locallhost(本地计算机名)/wap/index.xml的形式,即可对WAP网页进行浏览测试。

      虽然说这种模拟环境提供了集成环境及与WAP手机基本一致的模拟器,但仍难保证所用模拟器与其实际产品完全一致,尤其是没有WAP网关的参与,因此这是一种并不完备的检测。特别的,这种模拟环境下与无线电话应用WTA(Wireless Telephony Application)相关的服务根本没有办法进行检测。不过,对于单纯的开发测试来说,这样模拟环境基本能满足要求。

    1.4.3. 实际环境

      WAP测试的实际环境中需要WAP手机、网卡及服务器三个部分,因此,为了建立WAP测试的实际环境,开发者需要购买一些主流的WAP手机,同时使用前面介绍的方法在原来的HTML服务器上建立一个WAP专用的虚拟目录,已建立WAP服务器,然后使用现有网关或夹在移动通信公司提供的相应网关,那么只要三者都能顺利正确的工作,开发者就可以通过WAP手机对WAP网页及应用进行测试了。


    [此贴子已经被作者于2008-2-27 2:05:21编辑过]

       收藏   分享  
    顶(0)
      




    ----------------------------------------------

    I'M BACK, NEVER GO AWAY.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/2/23 19:05:00
     
     GoogleAdSense巨蟹座1984-7-4
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML 与 移动嵌入式开发 』 的所有贴子 点击这里发送电邮给Google AdSense  访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/19 2:12:43

    本主题贴数29,分页: [1] [2]

     *树形目录 (最近20个回帖) 顶端 
    主题:  [推荐] WAP开发入门与提高 [连载](15192字) - enyaxp,2008年2月23日
        回复:  楼主 赞一个。请问 能否提供一个WORD 版本 供下载? 如果有的话 能否给我发一份:yuanha..(95字) - 柳絮飞,2008年5月5日
            回复:  不好意思,没有WORD版本,我是在别的论坛上找到转过来并重新排了一下版(现在想起那个工作量还是很..(275字) - enyaxp,2008年5月6日
        回复:  不错,好.(10字) - zhoubinbin,2008年4月11日
        回复:  6.5 URL函数库名称:URL说明:这个函数库包含了处理绝对的URL与相对URL的程序,一..(6635字) - enyaxp,2008年2月27日
            回复:  楼主,你好,很激动能找到这么全的WML的资料,不过你能不能推荐点或是发一些关于WAP开发的案例资料..(118字) - xingzhewujiang,2010年8月17日
        回复:  6.4 string函数库名称:字符串说明:这个函数库包含了字符串程序的集合,一个字符串可以..(10412字) - enyaxp,2008年2月27日
            回复:  6.7 Dialog函数库名称:对话说明:这个函数库包含典型的用户界面程序。prompt..(984字) - enyaxp,2008年2月27日
            回复:  6.6 WML浏览器函数库名称:WML Brower说明:这个函数库所包含的程序是让WML ..(2629字) - enyaxp,2008年2月27日
        回复:  6.3 Float函数库名称:Float说明:这个函数库包含了典型与常用的浮点数算术程序。..(2010字) - enyaxp,2008年2月27日
        回复:  [B]第六部分:WML Script标准函数库[/B]这节会讨论标准的WML Script函数..(5857字) - enyaxp,2008年2月27日
        回复:  5.4 执行时的错误检测与处理WML Script函数的功能提供用户服务,并希望用户界面能在任..(6138字) - enyaxp,2008年2月27日
        回复:  5.3 预编译WML Script的预编译主要用于在编译阶段控制编译器的行为。与编译头一般在文..(4545字) - enyaxp,2008年2月27日
        回复:  5.2 函数的声明与调用在WML Script中,函数是一种能够完成某种功能的代码块,并可以在..(6809字) - enyaxp,2008年2月27日
        回复:  不错丫好好瞅瞅我呵呵(24字) - tinyqueen,2008年2月26日
        回复:  [B]第五部分:WML Script脚本程序设计[/B]作为一种编辑语言,WMLScript提..(9936字) - enyaxp,2008年2月23日
        回复:  4.5 操作符与表达式在WMLScript中,表达式可以把变量、常量与操作符结合起来,经过运..(5964字) - enyaxp,2008年2月23日
        回复:  4.3 WMLScript基本规则WMLScript在许多基本规则方面沿用了WML的做法。不过..(10103字) - enyaxp,2008年2月23日
        回复:  [B]第四部分:WML Script语法基础 -- WML Script介绍[/B]WML ..(2660字) - enyaxp,2008年2月23日
        回复:  [B]第三部分:WML主要语法 -- 文本格式化及其元素[/B]3.7 文本格式化及其元素..(1890字) - enyaxp,2008年2月23日

    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    89.844ms