一、CGI技术使用—tomcat
1.1编写一个c程序
#include "stdafx.h"
#include "stdlib.h"
#include <string.h>
int main()
{
printf("content-type:text/html\n\n");
printf("<html><head></head><body>");
printf("Hello");
char*queryString=getenv("QUERY_STRING");
if(queryString!=NULL)
{
char*p= strstr(queryString,"=");
printf(p+1);
}
printf("</body>");
printf("</html>");
return0;
}
1.2编译生成一个可执行文件
1.3以下位置配置
1.4新建动态web项目CGIDemo
在webcontent新建index.html
1.5运行项目
1.8执行流程分析
1.8.1 浏览器发送请求
1.8.2 服务器接收到请求
分析URL决定调用哪个:
根据这个决定调用哪个服务器程序即调用监听在8080端口的服务器程序。
根据请求行部分 第一部分/CGIDemo决定调用运行在服务器上的那个应用
/cgi-bin/hw.exe是要执行程序路径
看到/cgi-bin/hw.exe符合 (以/cgi-bin/开头的资源)。
而cgi的配置对应着 ,因而
/cgi-bin/hw.exe会到web-inf/cgi去找hw.exe,也即/cgi-bin/hw.exe对应的服务器路径是/CGIDemo/web-inf/cgi/hw.exe
1.8.3 c++可执行程序执行
程序的执行就会开启一个进程。
程序执行的结果:
1.8.4 tomcat服务器接收结果
服务器接收到结果,并编写响应“信”:
1.8.5 浏览器接收到服务器发送过来的信并显示新内容
1.8.6 分析
我们通过一个在地址栏输入一个url ,就让服务器端一个可执行程序在请求时即时生成一个HTML内容。
浏览器url-->浏览器书写请求信à运行的tomcat接收到请求-à对地址分析决定调用那个可执行程序à可执行程序执行—>程序执行结果返回给tomcatàtomcat书写响应信—>网络传递给浏览器—>浏览器读信分析头部和正文—》根据头部信息分析正文并显示在浏览器。
通过可执行程序我们就可以根据用户输入来获取等条件动态生成HTML文档。