一、首先需要配置web服务器
在设计wap网页时不论你使用的wap开发工具是up.sdk 或nokia wap tookit 或者ericsson wapide,你都必须进行web服务器设置,故在此将常见的几种web服务器的设置介绍如下:(这里用的是tomcat4.0,即apache web server.设置方法如下:)
环境:apache web server on nt or solaries or linux or other unix
1) 不管是windows 还是unix 或linux ,都是修改 apache 安装目录下的conf/mime.types文件
2) 在该文件中增加以下内容:
text/vnd.wap.wml .wml(一般加这一个就可以运行一般的wap网页了)
image/vnd.wap.wbmp .wbmp
application/vnd.wap.wmlc .wmlc
text/vnd.wap.wmls .wmls
application/vnd.wap.wmlsc .wmlsc
3)存盘
4)重新启动apache web server 即可。
二、一个简单的wap网页square.wml(平方表)程序
<?xml version="1.0"?>
<!doctype wml public "-//wapforum//dtd wml 1.1//en"
"http://www.wapforum.org/dtd/wml_1.1.xml";>
<%@ page contenttype="text/vnd.wap.wml" %>
<wml>
<card id="card1" title="math">
<p>平方表:</p>
<p> <% {int i;%>
<%for(i=1; i<=9; i++){ %> <%=i%>x<%=i%>=<%=i+i %><br/> <% }%>
</p>
<do type="prev" name="previous" label="previous">
<prev/>
</do>
</card>
</wml>
|
三、浏览wap网页时的乱码问题
用模拟手机浏览wap网页时,汉字显示会出现乱码或编译出错,我一般都用自己做的一个vb小程序先转化成 unicode码。据说可以通过设置web服务器中设置mime表时,在text/vnd.wap.wml后加上“;charset=charset_name”,如gb2312汉字 :text/vnd.wap.wml;charset=gb2312来解决。
四、一个将wml中的数据提交给javabean的例子
fice.jsp (输入你期望的工资,提交给fice.java.注:汉字需要先转化成unicode码)
(键入你期望的工资->键入你期望的工资)
<?xml version="1.0"?>
<!doctype wml public "-//wapforum//dtd wml 1.1//en"
"http://www.wapforum.org/dtd/wml_1.1.xml";>
<%@ page contenttype="text/vnd.wap.wml" %>
<jsp:usebean id="fice" scope="session" class="fice.lucky" />
<jsp:setproperty name="fice" property="salary" param="salary" />
<wml>
<card id="card1">
<do type="accept" label="howmuch">
<go href="fice.jsp"/> </do> <p>键入你期望的工资 :
<input name="salary" format="*n"/>
</p>
</card>
</wml>
|
五、用 nokia wap tookit读取文件
先在d下建立一个文本文件test.txt运行下面的程序,就可以在模拟器中读取文件了。
(既然是jsp程序,就该把web服务器起来先了。)
<?xml version="1.0"?>
<!doctype wml public "-//wapforum//dtd wml 1.1//en"
"http://www.wapforum.org/dtd/wml_1.1.xml";>
<%@ page contenttype="text/vnd.wap.wml" %>
<wml> <card id="card1" title="title">
<p>
<%
//变量声明
java.lang.string strfilename; //文件名
java.io.file objfile; //文件对象
java.io.filereader objfilereader; //读文件对象
char[] chrbuffer = new char[10]; //缓冲
int intlength; //实际读出的字符数(一个中文为一个字符)
//设置待读文件名
strfilename = "d:\\test.txt";
//创建文件对象
objfile = new java.io.file(strfilename);
//判断文件是否存在
if(objfile.exists()){//文件存在
//创建读文件对象
objfilereader = new java.io.filereader(objfile);
//读文件内容
while((intlength=objfilereader.read(chrbuffer))!=-1){
//输出
out.write(chrbuffer,0,intlength);
}
//关闭读文件对象
objfilereader.close();}
else{
//文件不存在
out.println("下列文件不存在:"+strfilename);
}
%>
</p>
</card>
</wml>
|