一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

WML開發(fā)詳細(xì)指南...

 accesine 2005-11-03

本章將主要介紹WML的相關(guān)知識(shí),如何開發(fā)WAP應(yīng)用程序。

    WML是一種基于XML的標(biāo)記語(yǔ)言,她的官方說(shuō)明和規(guī)范是由WAP論壇維護(hù)的。WML的文檔類型定義是xml文件類型的,http://www./DTD/wml_1.1.xml。和HTML語(yǔ)言一樣,WML是為了顯示數(shù)據(jù)的,而XML的目的則是描述數(shù)據(jù),我們定義了一系列的標(biāo)記并組織成為語(yǔ)法規(guī)范把它稱為DTD(Document Type Definition)。支持WAP的手機(jī)里面都安裝了WAP瀏覽器他能夠解析這些標(biāo)記并正確顯示在手機(jī)屏幕上。

    通常在WML的文本的開頭都有這樣的內(nèi)容
<xml version=‘1.0‘>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www./DTD/wml_1.1.xml">
我們把它叫做序言。在后面就是<wml></wml>標(biāo)記了,我們所有的數(shù)據(jù)都是嵌套在這兩個(gè)標(biāo)記里面的。WML的標(biāo)記非常少,基本可以分為兩種一種稱為Deck/Card一種稱為Event。在這里不能一一講述,在我們開發(fā)WML應(yīng)用的時(shí)候參考手冊(cè)就可以了,我給大家提供一個(gè)在線的參考:Online WML Tag Reference。在<wml></wml>標(biāo)記內(nèi)的內(nèi)容我們把它稱為deck,每個(gè)屏幕的內(nèi)容我們把它定義為card,由于WML是為無(wú)線網(wǎng)絡(luò)傳輸定義的,充分考慮到帶寬的限制,我們?cè)试S在一個(gè)deck內(nèi)包含多個(gè)card并可以一起下載到用戶代理中,這樣我們就可以在本地進(jìn)行不同屏幕的切換了,避免每次都去聯(lián)網(wǎng)。當(dāng)然這也給客戶端增加了負(fù)擔(dān),因此我們要避免在deck內(nèi)包含過(guò)多的card。

    下面我們編寫一個(gè)WML的例子test.wml,內(nèi)容如下:
<?xml version=‘1.0‘?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www./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>
在這個(gè)deck中包含了三個(gè)card,可以一并下載到客戶端,通過(guò)按鍵操作我們就可以在不同的card之間進(jìn)行切換,你可以在手機(jī)或者winwap模擬器中看看運(yùn)行的效果。下面是winwap下的運(yùn)行截圖。

 

雖然我們已經(jīng)可以開發(fā)wml的應(yīng)用了,但是這些畢竟都是些靜態(tài)的內(nèi)容。如果我們要開發(fā)和服務(wù)器交互的功能呢?答案當(dāng)然是我們可以使用Servlet技術(shù)。看下面的例子:
<?xml version=‘1.0‘?>
<DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www./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="    <postfield name="Items" value="$(Items)"/>
   </go>
  </do>
 </card>
</wml>
用戶可以從列表中選擇Item,通過(guò)無(wú)線網(wǎng)絡(luò)傳輸給服務(wù)器后Servlet通過(guò)request.getParameter()方法得到用戶的選擇并發(fā)送給用戶,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./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 確認(rèn)后就可以看到y(tǒng)ou selected xxxx的內(nèi)容了。

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    人妻少妇av中文字幕乱码高清| 伊人欧美一区二区三区| 欧美日韩有码一二三区| 中文字幕熟女人妻视频| 中国美女偷拍福利视频| 成年人免费看国产视频| 欧美一区二区黑人在线| 日韩人妻一区二区欧美| 人妻久久这里只有精品| 亚洲天堂有码中文字幕视频| 伊人久久青草地婷婷综合| 老司机亚洲精品一区二区| 国产精品免费精品一区二区| 亚洲av专区在线观看| 国产精品午夜福利在线观看| 丰满人妻熟妇乱又伦精另类视频 | 日本亚洲精品在线观看| 欧美一级黄片免费视频| 婷婷一区二区三区四区| 午夜亚洲少妇福利诱惑| 午夜亚洲少妇福利诱惑| 国产精品刮毛视频不卡| 午夜精品一区二区av| 五月婷婷六月丁香亚洲| 加勒比东京热拍拍一区二区| 亚洲中文字幕在线乱码av| 欧美人禽色视频免费看| 婷婷伊人综合中文字幕| 日韩亚洲激情在线观看| 成人精品视频在线观看不卡| 亚洲av熟女一区二区三区蜜桃| 99在线视频精品免费播放| 很黄很污在线免费观看| 日韩免费成人福利在线| 99在线视频精品免费播放| 中国黄色色片色哟哟哟哟哟哟| 亚洲黄香蕉视频免费看| 精品国产日韩一区三区| 国产日韩在线一二三区| 国产一区二区三区不卡| 日本高清不卡在线一区|