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等等頁面渲染引擎。學會知識的遷移。