Wap1.0基础
wap介绍
什么是wap?
WAP(无线通讯协议)是在数字移动电话、因特网或其他个人数字助理机(PDA)、计算机应用之间进行通讯的开放全球标准。这一标准的诞生是WAP论坛成员努力的结果,WAP论坛是在1997年6月,由诺基亚、爱立信、摩托罗拉和无线星球(Unwired Planet)就共同组成的,经常有人将wap与web.来对比,其实也可以理解为了更好的适应手机及访问Internet,而简化了的web。其实本质是没有什么区别,都是存放在某台服务器中的数据通过不同等终端样式表现出来而已。
WAP1.0和WAP2.0有什么区别?
WAP1.0是基于wml语言编写的,WAP2.0是基于XHTML语言, 支持CSS,表现方式比1.0更为丰富。也就是说2.0更接近于web,可以支持IE浏览器浏览、设置字体颜色、背景、声音等效果。但到底是wap1.0好呢还是2.0好呢?到目前为止还是1.0更适合目前的应用,因为2.0目前很少终端能很好的支持,很容易产生页面的变形。当用户利用电脑访问wap2.0站点时,浏览效果较好非1.0站点所能比。但是wap站的服务对象应该是手机用户,如果以电脑用户的体验作为标准,那么手机网站的建设也失去了它存在的意义,所以说目前的wap2.0的站点只是哗众取宠,没有实际应用效果与体验。2.0在未来有更好的发展、应用与普及,但至少还需要2~3年时间。
1. wml介绍
WML(Wireless Markup Language - 无线标记语言)。它是一种从 HTML 继承而来的标记语言,但是 WML 基于 XML,因此它较 HTML 更严格。
WML 被用来创建可显示在 WAP 浏览器中的页面。用WML编写的页面被称为 DECKS。DECKS 是作为一套 CARDS 被构造的。
这种描述语言同我们常听说的HTML语言同出一家,都属于XML语言这一大家族。WML的语法跟XML一样,WML是XML的子集。
HTML语言写出的内容,我们可以在我们的PC机上用IE或是Netscape等浏览器进行阅读,而WML语言写出的文件则是专门用来在手机等的一些无线终端显示屏上显示,供人们阅读的,并且同样也可以向使用者提供人机交互界面,接受使用者输入的查询等信息,然后向使用者返回他所想要获得的最终信息。
2. Wap1.0中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 title="登录">
<p>
Hello world!
</p>
</card>
</wml>
结果: Hello world! ;
3. wml标签介绍
wml常用的标签:card,input,select,anchor,p,br,img等等用法和html基本没区别只是标签要严格按照规范使用。如br必须写成<br/>不能写<br> 每个标签必须要有结束,页面内容最好写在<p></p>标签里面。否则很多终端不支持显示。这里重点介绍wml特有标签。
1.input
和html里面的用法一样。在wml里面有自己的特性。如:
<input type="text" name="phoneid" maxlength='11' format='*N' value=""/>
Maxlength表示输入的最大长度。Format=‘*N’表示输入的只能是数字。
1.1、select 标签
<select name="名称">
<option value="0" >选择1</option>
<select>
用法和html的一样,选择改变事件的使用:
<option onpick="连接请求"value="1" >选择2</option>
当下拉选择2的时候会自动执行onpick的请求。
2.anchor
这个标签主要是用来做表单提交,在wml里面不使用form提交使用anchor标签 例如:
手机号码:<input type="text" name="phoneid" maxlength='11' format='*N' value=""/>
<br/>
密码:<input type="password" name="userPassword" value="" />
<br/>
<anchor>登 录
<go href="XXX.do" method="post">
<postfield name="phoneid" value="$(phoneid)" />
<postfield name="userPassword" value="$(userPassword)" />
<postfield name="op" value="doWapLogin" />
</go>
</anchor>
Go标签内的postfield表示提交内容,其中name属性表示提交的标签名称,在action中使用request.getPremarter(”name”)去接受参数。value属性写法是$(XXX) XXX必须是与页面上的input名称一致。GO的href属性相当于form里面的action用于给提交地址的请求。Method不用说了吧。表示提交方式post或get。
Postfield的value值也可以自己指定。这样就相当于html的hidden了。
在wml中的返回上一页也可以使用anchor标签。写法:
<anchor>返回上级<prev/></anchor> 相当于JavaScript的go(-1)
3.定时器
<card id="first" ontimer="连接地址" title="名称">
<timer value="1"/> //设置时间,单位秒
</card>
表示一秒后自动跳转到ontimer的地址
4.wml使用超连接拨号
<a href="wtai://wp/mc;号码">显示名称</a>
例如:<a href="wtai://wp/mc;10086">我要拨打10086</a>
点击超链接“我要拨打10086“手机会自动拨打10086
4. 获取终端header头。
手机终端的header头里面包含了手机相关信息。如:手机号码,手机型号,使用系统等等信息。我们最常使用的是获取手机号码或手机型号。
使用:request.getHeader("x-up-calling-line-id")获取header头。固定写法。
或者使用
java.util.Enumeration names = request.getHeaderNames();
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
out.println(name + ":<BR>" + request.getHeader(name)
+ "<BR><BR>");
}
这样可以获取里面的全部信息。手机信息使用相当于一个Map存储的。可以使用key取到他的value。
注:header头信息属于用户个人信息,所以必须与电信、联通、移动等服务商达成协议,由服务商对站点授权才可以获取header头信息。
Wap站点使用专业opera浏览器或者火狐安装插件,IE等等都可以浏览。