<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 22,comments - 35,trackbacks - 0

    本文主要介紹WML的相關知識,如何開發WAP應用程序。

    WML是一種基于XML的標記語言,她的官方說明和規范是由WAP論壇維護的。WML的文檔類型定義是xml文件類型的,http://www.wapforum.org/DTD/wml_1.1.xml

    和HTML語言一樣,WML是為了顯示數據的,而XML的目的則是描述數據,我們定義了一系列的標記并組織成為語法規范把它稱為DTD(Document Type Definition)。支持WAP的手機里面都安裝了WAP瀏覽器他能夠解析這些標記并正確顯示在手機屏幕上。

    通常在WML的文本的開頭都有這樣的內容

    <xml version='1.0'>
    <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

    我們把它叫做序言。在后面就是標記了,我們所有的數據都是嵌套在這兩個標記里面的。WML的標記非常少,基本可以分為兩種一種稱為Deck/Card一種稱為Event。在這里不能一一講述,在我們開發WML應用的時候參考手冊就可以了,我給大家提供一個在線的參考:Online WML Tag Reference。

    在標記內的內容我們把它稱為deck,每個屏幕的內容我們把它定義為card,由于WML是為無線網絡傳輸定義的,充分考慮到帶寬的限制,我們允許在一個deck內包含多個card并可以一起下載到用戶代理中,這樣我們就可以在本地進行不同屏幕的切換了,避免每次都去聯網。當然這也給客戶端增加了負擔,因此我們要避免在deck內包含過多的card。

    下面我們編寫一個WML的例子test.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 id="Login" title="Login">
    <do type="accept" label="Password">
    <go href="#Password"/>
    </do>
    <p>
    ? UserName:
    <select name="name" title="Name:">
    <option value="John Doe">John Doe</option>
    <option value="Paul Smith">Paul Smith</option>
    <option value="Joe Dean">Joe Dean</option>
    <option value="Bill Todd">Bill Todd</option>
    </select>
    </p>
    </card>

    <card id="Password" title="Password:">
    <do type="accept" label="Results">
    <go href="#Results"/>
    </do>
    <p>
    ? Password: <input type="text" name="password"/>
    </p>
    </card>

    <card id="Results" title="Results:">
    <p>
    You entered:<br/>
    Name: $(name)<br/>
    Password: $(password)<br/>
    </p>
    </card>
    </wml>

    在這個deck中包含了三個card,可以一并下載到客戶端,通過按鍵操作我們就可以在不同的card之間進行切換,你可以在手機或者winwap模擬器中看看運行的效果。下面是winwap下的運行截圖。

    雖然我們已經可以開發wml的應用了,但是這些畢竟都是些靜態的內容。如果我們要開發和服務器交互的功能呢?答案當然是我們可以使用Servlet技術??聪旅娴睦樱?/p>

    <?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://222.28.218.222:8088/wap/wapservlet" method="get">
    <postfield name="Items" value="$(Items)"/>
    </go>
    </do>
    </card>
    </wml>

    用戶可以從列表中選擇Item,通過無線網絡傳輸給服務器后Servlet通過request.getParameter()方法得到用戶的選擇并發送給用戶,servlet的代碼如下:

    package com.j2medev.mingjava;

    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");
    response.setContentType("text/vnd.wap.wml");
    PrintWriter out = response.getWriter();
    out.println("<?xml version=\"1.0\"?>");
    out.println("<!DOCTYPE wml PUBLIC\"-//WAPFORUM//DTD WML 1.1//EN\"");
    out.println("\"http://www.wapforum.org/DTD/wml_1.1.xml\">");
    out.println("<wml>");
    out.println("<card title=\"test\">");
    out.println(" <p align=\"center\">");
    out.println("you selected "+select);
    out.println("</p>");
    out.println("</card>");
    out.println("</wml>");

    }

    protected void doPost(HttpServletRequest request,
    HttpServletResponse response) throws
    ?ServletException, IOException
    {
    doGet(request,response);
    }
    }

    正確部署Servlet和wml文件后,在winwap下輸入http://222.28.218.222:8088/test2.wml 確認后就可以看到you selected xxxx的內容了。

    posted on 2006-03-17 11:46 kelven 閱讀(274) 評論(0)  編輯  收藏 所屬分類: WML
    主站蜘蛛池模板: 亚洲色偷偷av男人的天堂| 国产AV无码专区亚洲A∨毛片| 亚洲综合校园春色| 97国产在线公开免费观看| 精品国产_亚洲人成在线高清| 成人精品视频99在线观看免费| 亚洲一区二区三区免费| 黄床大片免费30分钟国产精品| 国产亚洲精品线观看动态图| A级毛片成人网站免费看| 亚洲精品无码专区久久久| 人人玩人人添人人澡免费| 亚洲精品亚洲人成在线麻豆| 福利免费观看午夜体检区| 亚洲中文字幕久久精品蜜桃| 免费大黄网站在线看| 精品97国产免费人成视频| 亚洲bt加勒比一区二区| 五月亭亭免费高清在线| 亚洲日韩精品国产一区二区三区| 四虎影在线永久免费观看| a级毛片在线免费看| 亚洲视频小说图片| 毛片免费视频观看| 久久一本岛在免费线观看2020| 久久久久久亚洲精品| 成人黄软件网18免费下载成人黄18免费视频 | 中美日韩在线网免费毛片视频 | 亚洲AV永久青草无码精品| 国产91免费在线观看| 精品久久久久久亚洲中文字幕 | 青青草原1769久久免费播放| 亚洲综合校园春色| 亚洲男人的天堂在线va拉文| 99久在线国内在线播放免费观看| 亚洲最大福利视频| 丁香五月亚洲综合深深爱| 男男AV纯肉无码免费播放无码 | 国产AV无码专区亚洲AV手机麻豆| 亚洲精品视频在线观看免费| 黄色毛片免费在线观看|