CGI的概述和post异步web点灯

知识点1【cgi的概述】

要想 printf的结果 交给服务器 而不是终端 需要条件:

知识点2【cgi的计算器案例】(GET异步实现)
框图:

cgi获取服务器GET方式发来的数据记得
//获取服务器收到的数据 如果是GET方式 数据直接使用getenv获取
//getenv的参数为:“QUERY_STRING”
char *data = getenv(“QUERY_STRING”);//data=10+20
idnex.html

Document DATA1:
DATA2:
result:
calc.js function getXMLHttpRequest() { var xmlhttp = null; if (window.XMLHttpRequest)//自动检测当前浏览器的版本,如果是 IE5.0 以上的高版本的浏览器 {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest();//创建请求对象 } else如果浏览器是底版本的 {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");//创建请求对象 } return xmlhttp;//返回请求对象 } function calc_fun(arg) { //获取data1 data2输入的至 var data1 = document.getElementById("data1").value; var data2 = document.getElementById("data2").value;
//判断data1 和 data2是否是数值
if(isNaN(data1) || isNaN(data2))
{
    document.getElementById("data1").value="";
    document.getElementById("data2").value="";
    alert("请输入数字");

    return;
}

//拼筹请求报文GET
var url="/cgi-bin/calc.cgi?";//"/cgi-bin/calc.cgi?10+20"
url += data1;
arg==1? (url+="+"):(url+="-");
url+=data2;
alert("url="+url);

//创建xmlHttpRequest对象
var xmlhttp = getXMLHttpRequest();

//设置回调函数
xmlhttp.onreadystatechange=function () {
    if(xmlhttp.status==200 && xmlhttp.readyState==4)
    {
        var ret = xmlhttp.responseText;
        document.getElementById("ret").value = ret;
    }
}

//open
xmlhttp.open("GET",url, true);
//send
xmlhttp.send();

}
calc.c—>gcc calc.c -o calc.cgi
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
//用printf输出
printf(“content-type:text/html\n\n”);

//获取服务器收到的数据 如果是GET方式 数据直接使用getenv获取
//getenv的参数为:"QUERY_STRING"
char *data = getenv("QUERY_STRING");//data=10+20

int d
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值