在设计wap网页时不论你使用的wap开发工具是up.sdk 或nokia wap tookit 或者ericsson wapide,你都必须进行web服务器设置,故在此将常
1、window nt 平台的iis
a、启动菜单->程序->windows nt option pack ->iis4.0
b、右击inte.net information server的子项计算机名,在快捷菜单上选择‘属性’
c、在属性页面的下部,有一个‘文件类型(f)’按钮,单击此按钮,会出现文件类型界面 d、单击‘新增类型’按钮,然后在相关的扩展名
栏中填写 .wml ,在内容类型(mime)栏中填写 text/vnd.wap.wml
e、单击‘确定’按钮 f、重复c、d、e 三步,再增加其他的mime类型。
2、apache web server on nt or solaries or linux or other unix
a、不管是nt 还是unix 或linux ,都是修改 apache 安装目录下的conf/mime.types文件
b、在该文件中增加以下内容: text/vnd.wap.wml .wml image/vnd.wap.wbmp .wbmp application/vnd.wap.wmlc .wmlc text/vnd.wap.wmls
.wmls application/vnd.wap.wmlsc .wmlsc c、存盘 d、重新启动apache web server 即可。
这里介绍wap协议标准组织所制定的标记语言wml,由于和以前介绍的hdml在手机浏览器专用网页的特征上基本一致,所以概念部分就略去了,
直接讲述语言。
1。基本规则
* wml使用xml文档字符集,目前支持unicode 2.0,和hdml不同,wml的所有标签,属性和规定的可接收值必须小写,card的名字和变量也是
区分大小写的。和hdml一样,对于连续的空字符,只显示一个空格。标签内属性的值必须用"或者'括起来,属性名,=和值之间不能有空格
。对于不成对出现的标签,必须在 > 前加 / ,比如<br/>。在对变量的引用上和hdml基本相同,有:
$(var1:esc)
$(var1:noesc)
$(var1:unesc)
三种形式,具体含义参见前面hdml的相关部分。在对保留字符的处理上也基本相同,对应的取代字符有:
< <
> >
? '&apos
" "
& &
$ $$
空格
- ­
这里要指出的是在url的传递过程中,用来连接参数的 & 必须转化为 & 。
2。基本格式和文件头
wml文件的一般格式:
<?xml version="1.0"?>
<!doctype wml public "-//wapforum//dtd wml 1.1//en" "http://www.wapforum.org/dtd/wml_1.1.xml">
<wml>
<head>
<access/>
<meta..../>
</head>
<card>
some contents...
</card>
<wml>
结构看上去和html文件很类似,对于每一个deck,在其文档开头必须指明以下的类型声明。
<?xml version="1.0"?>
<!doctype wml public "-//wapforum//dtd wml 1.1//en" "http://www.wapforum.org/dtd/wml_1.1.xml">
千万注意字母的大小写。对于一个deck,其文件大小最好不要超过1.2k。
<wml>标签和html中的<html>标签一样,用来表明这是一个wml的deck,它有一个可选的xml:lang属性来制定文档的语言,比如<wml
xml:lang="zh">表示文档语言为中文。
和html一样<head>标签包含了该desk的相关信息。<head>标签之间可以包含一个<access>标签和多个<meta>标签。
<access domain="域" path="/路径" />相当于html中的<base>标签,指定该deck的访问控制信息,它用两个可选的属性,domain用来指
定域,默认值为当前域,path用来指定路径,默认值为"/",即根目录。由于<access>单独使用,所以要用/结尾,以后对于类似的情况不再赘
述。
<meta 属性 content="值" scheme="格式" forua="truefalse"/>和html中的类似,提供了该deck的meta信息。属性是必选的,包括一下三种情况
name="name" up.link server忽略meta数据
http-equiv="name" up.link server将meta数据转为http响应头(同html)
user-agent="agent" up.link server直接将meta数据传给手机设备
content属性也是必选的,其内容根据属性而定。scheme属性目前尚不支持。forua为可选属性,指定在该wml文件传到客户端之前,<meta>标签是不是被中间代理删除(因为传输的协议可能改变),默认值为false。
目前支持的meta数据:
<meta http-equiv="cache-control" content="max-age=3600"/>指定deck在手机内存缓存中的存储时间段,默认的为30天(除非内存耗尽),在该期间,手机对于访问过的deck直接从缓存里调用。如果信息是对时间敏感的,可以用max-age指定deck在缓存里的生存期,最小单位是秒,如果指定为0,则每次都需通过连接服务器来调用该deck。
<meta user-agent="vnd.up.markable" content="false"/>和<meta user-agent="vnd.up.bookmark" content="指定的url"/>类似于普通浏览器的书签功能。当用户将一个card做了书签后,手机浏览器首先用一个标记记录该card,这个标记默认的是<card>标签中的title属性(以后会讲到),然后当用户选择了该书签以后,浏览器就会打开被记录的url。但是因为在默认的情况下,手机会记录所有的deck,所以,一般<meta>被用来使手机不要记录当前的url,即<meta user-agent="vnd.up.markable" content="false"/>。此外,如果要为书签指定不同于当前dreck的url,用<meta user-agent="vnd.up.bookmark" content="指定的url"/>。
一个deck可以包含多个card,每个card的内容可能不止一屏显示,注意deck,card和屏幕显示范围的关系。一个card用<card>和</card>包含。<card>可以包含以下可选的属性:
<card id="name" title="label" newcontext="false" ordered="true" onenterforward="url" onenterbackward="url" ontimer="url">
*id属性用来指定card的名字,可用来在card间跳转,相当于在html中在页内跳转时用<a name="jumphere">。
*title属性用来作为书签的标记,该属性一般不会显示在屏幕上。
*newcontext属性,默认值为false,用来指示当跳转到本card时,手机是不是要清除以前保留的信息,包括变量,堆栈里的历史记录,重新设置手机状态等。
*ordered属性,默认值是true,表明该card里的内容是按固定的顺序显示,还是按用户的选择来显示。这点和html不同,card页面里的内容可以按一定的顺序显示,默认的是按线性顺序显示,即按代码的顺序,但是,要注意的是,以下三个标签必须按以下顺序来写<onevent> <timer> <do>,(这和以后要讲的“事件”有关)。这样做是为了方便填表单,当ordered设置为true时,如果一个表单的内容不能在一屏里显示完,就分成多屏显示;当ordered设置为false时,手机可以显示一个概要card来总结有效的选项,用户可以从中选取表单选项来填写。
*onxxx属性,类似于html标签中的onxxx属性,用来捕捉事件,当事件被触发时执行指定的操作(任务),在这里是转向某个url。
3。显示文本
在文本的显示上wml基本和html相同。文字段落包含在<p align= "alignment" mode=" wrapmode">和</p>之间,align属性指定该段文字的对齐方式,默认的是left,其他可选择right和center;mode属性指定当一行显示不下所有的文字时是否自动换行,默认的是自动换行wrap,如果选nowrap,则在一行中显示,浏览器会通过类似于水平滚动条
的机制来显示所有文字。
换行标签也一样为<br/>,这里先替一下,在标单中如果有多个<input>或者<select>,其间不要用<br/>,否则会使手机浏览器认为是断点而把表单分页显示。
文字的修饰标签有<b>、<i>、<u>、<em>、<strong>、<big>和<small>,意义和html里的相同。
表格的显示标签也和html相近,使用<table title="name" align="leftrightcenter" columns="列数">、<tr>和<td>来显示,<table>的title属性用来给表格取个名字,columns属性指定表的列数,不能为0,可选的align属性和前面提到的一样是对齐方式。表格中可以包含文字和图片。
[1] [2] 下一页
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器