WAP介绍
WAP 是一种用于在无线终端(比如数字移动电话)进行信息服务的主要的标准。
WAP 标准基于因特网标准(HTML、XML 以及 TCP/IP)。它包括 WML 语言规范、WMLScript 规范以及无线电话应用接口规范(WTAI)。
WAP 由 WAP 论坛(WAP forum )发布,被爱立信、摩托罗拉、诺基亚以及 Unwired Planet 创建于 1997 年。论坛的成员目前占据着超过 90% 的全球手机市场,同时又是领先的基础设施提供商、软件提供商及其他机构。您可以在我们的 WAP 论坛页面找到有关 WAP 论坛的更多信息。
WAP的学习
wap的学习曲线较低,类似于html和jsp。我们可以参考W3CSchool的教程来学习。具体的网址为:
http://www.w3school.com.cn/wap/index.asp
WAP前台
wap前台是一个wml文件,有一定的页面规范。可以参看一个页面,其主要功能为:显示下拉框,点击查询后请求后台Servlet,在后台截获参数,并输出。代码如下:
<?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="Order" title="Query Inventory">
<p>
<select name="Items" title="Items">
<option value="Books">Books</option>
<option value="Music">Music</option>
<option value="Video">Video</option>
<option value="Software">Software</option>
</select>
</p>
<do type="accept" label="Query">
<go href="http://localhost:8080/TestWap/wapservlet" method="get">
<postfield name="Items" value="$(Items)"/>
</go>
</do>
</card>
</wml>
WAP和JSP结合
结合的原因主要是利用jsp的语法来进行页面的展现也就是使用(<% %>)。首先建立jsp页面,修改该页面,加入如下信息:
<?xml version="1.0"?>
<%@page contentType="text/vnd.wap.wml; charset=utf-8"%>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
或者
<%@page contentType="text/vnd.wap.wml; charset=gb2312"%><?xml version="1.0"?>//这里不能换行
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
通过结合jsp后,我们就可以使用jsp的语法进行页面上简单的逻辑处理,跟纯的jsp页面是一样的,不过是在jsp页面中嵌入了wap内容,并指定上下文类型为wap。
Servlet后台
package com.bj.test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class WapServlet extends HttpServlet
{
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
String select = request.getParameter("Items");
System.out.println(select);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
doGet(request,response);
}
}
Web.xml中配置
<servlet>
<servlet-name>Wapservlet</servlet-name>
<servlet-class>com.bj.test.WapServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Wapservlet</servlet-name>
<url-pattern>/wapservlet</url-pattern>
</servlet-mapping>
总结
wap只是一种手机上页面,同html,jsp,asp的理解上可以认为一致(它们的确不同)。那么这样我们就可以将jsp,html中技术完全迁移到wap上,例如:jstl,velocity等等页面渲染引擎。学会知识的迁移。