ddc
联网
平面设计 画册 VI欣赏 包装 CG-插画 搜索 个人网页 Alexa排名 CSS 建站资源 下载专区 JS特效 品牌服装 服装院校 专题欣赏 SEO 图标欣赏 专题
上海网站建设 网站建设 域名注册 虚拟主机 广州网站设计 域名注册 广州网站建设 上海网站建设 虚拟主机 广州网页设计 虚拟主机 域名注册 acg ACG玩家 品牌设计
求创科技
网站建设
中国互联
投稿
素材出售
中国设计秀
中资源
当前位置:网络学院首页 >> 设计教程 >> WAP网站攻略 >> WAP建站入门教程

WAP建站入门教程 (9)

来源:中国设计秀    作者:    点击:2387     加入收藏    发表评论
0
顶一下

六、动态输出WML页面

使用多种服务器端脚本语言动态输出WML页面

   以下将要讲述的是使用各种服务器端脚本语言编写动态输出WML页面。这里主要以几种最常见服务器端编程方式为例子。其他的服务器端编程方式都可以依此类推。
    无论使用哪种服务器端编程方式来动态输出WML页面,其关键就是输出Content-type为text/vnd.wap.wml。然后按照WML的语法格式输出WML内容就可以达到目的。当然其中针对不同的编程方式还有一些细节问题。

使用ASP动态输出WML页面

    • 使用记事本输入下面的ASP程序(图2-26):
<%@ Language=VBScript %>
<% Response.ContentType="text/vnd.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>
    <card id="main" title="ASP WML">
        <p>
            Hello
        </p>
    </card>
</wml>

图 2-26 Hello.asp
    • 保存为hello.asp。并且是它和hello.wml在同一个子目录下。注意:记事本在保存的时候只识别txt文件扩展名,因此在保存之后应该手工修改文件扩展名。为了方便起见,可以使用其他的文本编辑工具,或者是使用专门的ASP编辑工具(例如:Viusal InterDev)。
    • 启动IIS服务器管理。在“默认的Web站点”下找到“wap”目录,用鼠标右键点击它,选择属性“Properties”,就会弹出一个对话框,里面有好多配置选项。 在“虚拟目录”标签页当中有一项应用程序设置。将“许可”一项设置为:“执行(包括脚本)”。确定后,退出IIS Console。
    • 打开WinWAP,马上Stop它,在URL栏里输入:“http://127.0.0.1/wap/hello.asp”,并按下回车。等着欣赏第一个ASP页面(图2-27)。

图 2-25 WinWAP测试结果显示
    • 如果读者熟悉ASP,读者也许会注意到:为什么在<?xml version="1.0"?>并没有换行写。注意,这是必须的!否则,程序在WinWAP下可能没有任何问题,但是在其他模拟器上,可能就会导致编译错误!因为在<?xml version="1.0"?>前面不允许有多余的空格或者换行。
CGI编程时应该注意的问题
    使用CGI程序生成动态WML页面和使用CGI编程生成动态HTML的方式基本一样。只是在返回WML页面前,先要输出Content-Type为text/vnd.wap.wml,然后再输出WML内容。
    输出的返回格式:"Content-type: text/vnd.wap.wml\n\n"。
使用标准C动态输出WML页面
    这里有一个非常简单的标准C例子,该例子适合于Windows和Unix。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
void GenerateCGIHeader();
void GenerateCGIFooter();
/*--------------------------------------------------------------*/
int main(int argc, char* argv[])
{
    char tmpBuf[128];
    char strGET[]="GET";

    if (getenv("REQUEST_METHOD") == NULL)
    {
        printf("This script is not intended to run from shell.\n");
        return -1;
    }

    // Check that the request method is GET (see CGI specs)
    strcpy(tmpBuf, getenv("REQUEST_METHOD"));
    if (strcmp(tmpBuf, strGET) != 0)
    {
        printf("This script requires use of GET-method.\n");
        return -1;
    }

    /* Create a header for our reply */
    GenerateCGIHeader();

    /* Display operating system-style date and time. */
    _strtime( tmpBuf );
    printf( "OS time:%s\n", tmpBuf );
    _strdate( tmpBuf );
    printf( "OS date:%s\n", tmpBuf );

    /* Create a footer for our reply */
    GenerateCGIFooter();
    return 0;
}

/*--------------------------------------------------------------*/
void GenerateCGIHeader()
{
    /* Generate header for CGI response */
    printf("Status: 200\n");
    printf("Content-type: text/vnd.wap.wml\n\n");
    printf("<?xml version=\"1.0\"?>\n");
    printf("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN");
    printf("\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n");
    printf("<wml>\n");
    printf(" <template>\n");
    printf(" <do type=\"prev\" label=\"Back\">\n");
    printf(" <prev/>\n");
    printf(" </do>\n");
    printf(" </template>\n");
    printf(" <card id=\"datecard\" title=\"CGIDate\">\n");
    printf(" <p>\n");
}

/*--------------------------------------------------------------*/
void GenerateCGIFooter()
{
    /* Generate footer for CGI response */
    printf(" </p>\n");
    printf(" </card>\n");
    printf("</wml>\n");
}
    在Windows环境下,使用Viusal C&C++ 6.0创建一个Windows Console Application——WapCCGI。然后将该文件加入到项目中,编译生成WapCCGI.exe。将该可执行文件拷贝到wap子目录下。启动Nokia WAP Toolkit,在“Go”下选择“Open Location”,并输入URL地址(图2-28):

图 2-26 输入URL地址
    在选择“OK”以后,模拟器上出现系统当前的日期和时间(图2-29):

图 2-27 测试结果显示
使用Perl动态输出WML页面
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]
2006-12-23 11:47:00    出处:yesky
Google
热点文章/相关文章

音乐
嫁衣 画心 放生 天亮了 牡丹江 那滋味 擦肩而过 怀念过去 北京欢迎你 突然好想你 吻的太逼真 说好的幸福呢 坐上火车去拉萨 没有人比我更爱你
愚爱 心碎 稻香 带我走 醉赤壁 魔杰座 我还想她 明天过后 一定要爱你 等爱的玫瑰 原谅我一次 越单纯越幸福 最后一次的温柔 给我一首歌的时间
白狐 光荣 降临 下雨天 小酒窝 樱花草 恋爱新手 说唱脸谱 红色高跟鞋 寂寞才说爱 深深爱过你 爱上你是个错 即使知道要见面 不是因为寂寞才想你
城府 假如 花海 兰亭序 棉花糖 舍不得 最后一次 女人如烟 外滩十八号 我们的纪念 我们的无奈 心在跳情在烧 爱上你是我的错 爱情里没有谁对谁错