分类: Java
2011-07-04 09:38:11
WAP项目完全类似于普通的J2EE项目,后台的控制层、业务逻辑层基本不变,仅仅只是页面展示层不同,J2EE输出HTML,WAP项目输出WML
WAP项目可以使用传统的纯JSP 或JAVABEAN + JSP 方式,也可使用SSH等MVC架构,最终以JSP输出WML语言的WAP页面为目的。
我们可以直接在原有的WEB项目上新增WAP模块(只需要少许的改动),也可以建立新的WAP项目,以我们项目的WEBWORK+SPRING来说,后台的JAVA代码,数据库驱动,Action及Service均不需改动,只需将输出页面jsp换为wml标记语言即可
1.2 什么是WMLWML 基于 XML,因此它较 HTML 更严格
WML的页面通常叫做桌面(DECK),由一组互相链接的卡片(CARD)组成。当移动电话访问一个WML页面的时候,页面的所有CARD都会从WAP服务器下载到设备里。CARD之间的切换由电话内置的计算机处理,不需要再到服务器上取信息了。CARD里可以包含文本、标记、链接、输入控制、任务(TASK)、图像等等。CARD之间可以互相链接。
文档的实体包含在
将以下代码拷贝至jsp页面中运行:
"">
Hello world!
利用手机模拟器访问,显示结果如下:
------ HELLO ------
Hello World!
1.3 WAP标签汇总
:
newcontext="boolean"
style="style"
onenterforward="url"
onenterbackward="url"
ontimer="url" >
content
:
onenterbackward="url"
ontimer="url" >
content
:
content
:
content="value"
forua="true | false"
/>
任务相关标签
------------------------------------------------------------
task
name="name"
optional="boolean" >
task
task
method="method"
accept-charset="charset"
content
content
content
控件相关标签
-------------------------------------------------------------------------
:
title="label"
type="type"
value="value"
default="default"
format="specifier"
emptyok="boolean"
size="n"
maxlength="n"
tabindex="n" />
:
multiple="boolean"
name="variable"
default="default"
iname="index_var"
ivalue="default"
tabindex="n" >
content
:
value="value"
onpick="url" >
content
:
:
输出效果标签
-------------------------------------------------
:
src="url"
localsrc="icon"
align="alignment"
height="n"
width="n"
vspace="n"
hspace="n" />
: : : :
: : : WAP的模拟器很多,比如:nokia
wap toolkit,Openwave,WinWAP,M3gate,WM6.0模拟器等等 鉴于WinWAP的方便易用,我们一般使用WinWAP进行简单的测试,但WinWAP不支持中文提交,其对于有些WAP错误校验的不严格,只能作为初步测试的工具。 利用nokia wap toolkit或M3gate可以对页面进行更严谨的测试 针对Windows Mobile手机操作系统,则使用WM5.0以上的模拟器 由于WAP浏览器的多样性及各机型的复杂,很多WAP浏览器并不支持cookie,这使得传统的WEB方式维持会话变的很难,所以我们使用在url中提交session的方式,使用tomcat配置起来很简单: 在server.xml文件的context节点下增加:cookies="false" 这样,我们彻底禁用cookie,仅通过url来获取session 为了保证session的传递,我们需要在每个jsp页面的链接中增加jsession参数,如: 输出到客户端的效果: 鉴于很多浏览器及模拟器不支持GBK,GB2312等中文编码,所以项目建议使用utf-8编码。 1、
在tomcat的server.xml配置文件的Connector标签下增加URIEncoding="utf-8"配置 2、
每个WAP页面的头部加上: 3、
右击jsp页面点属性将编码设置为utf-8 4、
对于 5、
编码过滤器设置为UTF-8,或者每个页面增加 6、
对于提交的中文参数使用getAjaxValue方法:
title="label"
columns="n"/>
:
content
:
content
text
:
text
text
text
text
text
<%@ page contentType="text/vnd.wap.wml; charset=utf-8" %>
request.setCharacterEncoding("UTF-8");