设为首页
  网站地图
  联系我们

繁體 网通 English
香草种子
花卉种子
药材种子
蔬菜种子
草坪种子
更多分类
种子价格
栽培种植
动态|图片|邮箱|搜索|视频|黄页|图书|学院|供求|法规|音像|地图|网址|工具|林木种子|城市|农业互联|论坛
您目前所在的位置

首页>>网络学院>>正文

最新滚动新闻

不造谣 不传谣 不信谣
福娃挂件
音像VCD光盘图片
种子中国祝全国人民新年快乐!
2008年适宜种植的中药材品种
黄金广告位 先到先得
注册阿里妈妈赚广告费
超级经典网页小图标
网通用户请点此处访问
在线电子万年历查询

WAP网站(wml)开发技术


  Dim sVar1, sVar2
  sVar1 = getVar("myvar1", sPost)
  sVar2 = getVar("myvar2", sPost)
  'Writes the WML Deck displaying the POSTED Variables
  sWMLDeck = "<?xml version=""1.0""?>" & vbCrLf
  sWMLDeck = sWMLDeck & "<!DOCTYPE wml PUBLIC ""-//WAPFORUM//DTD WML 1.1//EN"" "
  sWMLDeck = sWMLDeck & """http://www.wapforum.org/DTD/wml_1.1.xml"">" & vbCrLf
  sWMLDeck = sWMLDeck & vbCrLf & "<wml>" & vbCrLf & vbTab
  sWMLDeck = sWMLDeck & "<card id=""main"" title=""POST TEST"">" & vbCrLf
  sWMLDeck = sWMLDeck & vbTab & vbTab & "<p>" & vbCrLf
  sWMLDeck = sWMLDeck & vbTab & vbTab & vbTab & "myVar1: " & sVar1 & "<br/>" & vbCrLf
  sWMLDeck = sWMLDeck & vbTab & vbTab & vbTab & "myVar2: " & sVar2 & vbCrLf
  sWMLDeck = sWMLDeck & vbTab & vbTab & "</p>" & vbCrLf & vbTab
  sWMLDeck = sWMLDeck & "</card>" & vbCrLf & ">/wml>"
  Response.ContentType = "text/vnd.wap.wml"
  Response.Write(sWMLDeck)
  'Quick function for picking out the values of the POSTed variables.
  'sKey is the variable name, sRaw is the POST string.
  Private Function getVar(sKey, sRaw)
  Dim sRetVal
If InStr(sRaw, sKey) Then
sRetVal = Mid(sRaw, InStr(sRaw, sKey) + Len(sKey) + 1)
If InStr(sRetVal, "&") Then
sRetVal = Mid(sRetVal, 1, InStr(sRetVal, "&") - 1)
End If
End If
getVar = sRetVal
  End Function
%>

38. 为什么META标签不工作?
    浏览器不支持默认的meta标签,例如:
    <meta http-equiv="refresh" content="1;http://somewhere.com/"> 
    虽然有少量网关支持非常有限的META标记。但是测试显示,如果使用了它们,网关就会出问题。例如某网关不支持普通的HTTP Cache控制,如果要实现Cache控制只好使用特殊的META标记。显然从其他网关来的用户就可能不支持这个META。注意:不要使用META tags。肯定有其他的方式来完成你的想法。
    最常使用的META是:
    <meta http-equiv="refresh" content="1;http://somewhere.com/"> 
    这个告诉浏览器重新装入指定的WML页面。WML中已经包含了一个<ontimer>。
39. 为什么服务器接收不到用户发送的参数?
    用户输入的参数或者其他参数可以像在HTML中一样通过提交方式发送到服务器。在HTML中这个是<FORM>,POST或者GET。
    首先知道要知道POST和GET的区别。对于POST浏览器将生成一个数据包将变量名和它们的内容捆绑在一起,并发送到服务器。对于GET,它其实是一个URL请求,变量名和内容都包含在URL中。
    对于WAP环境,要求是非常严格的,必须要根据协议来操作。虽然以下的URL
    "/cgi-bin/somescript?username=john&telephone=123-123-1234&occupation=banana+bender"
    可以在HTML环境中工作,但是在WAP环境中无法工作。以上的部分编码将使得保护的变量内容被误解。特殊的空格(在 banana 和 bender )被转成 “+”。 URL就根本没有空格。
    以上的URL在WAP中无法工作的主要原因是用来分割每个变量和变量内容的 & (与号)没有转义。正确的格式应该是:
    "/cgi-bin/somescript?username=john&telephone=123-123-1234&occupation=banana+bender"
    在这里 & 被名字实体所替换。为了解释更清楚些,请看下面的代码:
<card id="input" title="Gimme some data">
  <p><input type="text" name="username" format="M*m"/></p>
  <p><input type="text" name="occupation" format="M*m"/></p>
<p>
<anchor>Send this
<go href="/cgi-bin/somescript?username=$(username)
&occupation=$(occupation)"/>
</anchor>
</p>
    注意这不是真正的WAP协议,专门的字符应该转义,否则将得到不可预料的结果。
40. 为什么在HTTP中的Referer看不见?
    当HTML浏览器从一个URL到另外一个URL的时候,它默认地会发送一个叫做 Referer的 HTTP头给服务器,告诉它在浏览这个页面之前的那个页面。这是一个非常有用的特点,在WAP环境中同样也有。但是既然这个信息来自用户代理(浏览器)、WAP设备,通常为了节约带宽和时间,就被省略了。
    为了使用 Referer ,应该使用新的URL标签例如: <a>,<go>等等,并且加入参数:sendreferer。
        <go href="/somedir/somedeck.wml" sendreferer="true"/> 
    这样就会把参考的URL发送到服务器。
41. 如果没有找到URL,有可能重新将用户引导到另外一个WML卡片或者页面吗?
    是的。但这是服务器端的特点,与客户端没有关系。
42. 为什么普通的HTTP 302重新导向不好使?
    这的确是一个事实。核心的问题是在服务端的脚本语言,而不是在服务端语言和服务器之间。
    所谓的302 Found HTTP反应是指服务器告诉用户代理,它所需要的资源在另外的地方可以找到。302反应可能包括一个人们可理解的信息,如果在这种情况下“ Content-type: ”就被设置了。笔者所测试过的服务器,即使没有内容也都加了“Content-type:”。默认的 “Content-type:” 是text/html。当然有些网关不喜欢这个类型。
    以下的例子已经经过测试,在Apache和Microsoft Internet Information Server都可以工作。如果使用其他的Web Server,或者其他的脚本语言,需要能转换这些简单的脚本。关键的工作是十分简单的,除非需要,不用告诉服务器整个HTTP头。大多数Web Server将自动完成这个HTTP头,使得用户代理可以理解。
    所有的代码例子可以在线测试。如果它们能够工作,用户将被重新引导到http://wap.colorline.no/clientinfo.html ,在那儿将产生一个WML页面来显示所有的HTTP头。
    PHP 代码测试可以在 http://wap.colorline.no/wap-faq/apps/302test.php3中找到。
<?
    header("Location: http://wap.colorline.no/clientinfo.html");
    header("Content-type: text/vnd.wap.wml";
?> 
    Perl测试代码可以在http://wap.colorline.no/cgi-bin/302test.pl中找到。 
print "Location: http://wap.colorline.no/clientinfo.html\n";
print "Content-type: text/vnd.wap.wml\n"; 
    ASP测试代码可以在 http://www.colorline.no/302test.asp中找到。 (注意不同的URL): 
<%
    Response.Redirect = "http://wap.colorline.no/clientinfo.html";
    Response.ContentType = "text/vnd.wap.wml";

本内容共8页,当前在第6页  1  2  3  4  5  6  7  8  

更多精彩内容请点击 更多精彩内容请点击
 
下一篇
WEB标准
上一篇
CSS完全教程

点此处与我们在线交流&或给我们留言
Copy Of Right © 2004 - 2008 Zhongzi.net, All Rights Reserved
版权所有:种子中国 运营:种子中国网络信息中心
电话:021-54081687 传真:021-51901687
Email/Msn: web@zhongzi.net
沪ICP备05000005号 公安网络备案许可证 支付宝信任商家 上海种子行业协会
工商执照
支付宝信任商家
Seedchina,chinaseed,Seeds,flowers