tomcat6.0+CGI详细配置及实例

来源:互联网 发布:潜25和潜39 淘宝哪个店 编辑:程序博客网 时间:2024/05/17 22:40

1、在Tomcat的CATALINA_BASE/conf/web.xml 文件中,把关于<servlet-name> CGI的那段的注释去掉。去掉注释后的代码部分类似下面:

  <servlet>
        <servlet-name>cgi</servlet-name>
        <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
        <init-param>
          <param-name>clientInputTimeout</param-name>
          <param-value>100</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>6</param-value>
        </init-param>
        <init-param>
          <param-name>cgiPathPrefix</param-name>
          <param-value>WEB-INF/cgi-bin</param-value>
        </init-param>
        <init-param> 
         <param-name>executable</param-name> 
         <param-value>cmd   /c   </param-value> 
    </init-param> 

         <load-on-startup>5</load-on-startup>
    </servlet>

其中cgiPathPrefix与cgi的存放目录有关系,excutable与cgi的语言有关系,Tomcat默认的cgi语言为perl,因此上面的代码中一定要含有

<init-param> 
         <param-name>executable</param-name> 
         <param-value>cmd   /c   </param-value> 
    </init-param>

这段代码来表示cgi语言为c语言。
2. 同样,在Tomcat的CATALINA_BASE/conf/web.xml文件中,把关于对CGI进行映射的那段的注释去掉注意,这段内容指定了HTML链接到CGI脚本的访问方式。

去掉注释后的代码类似:

<servlet-mapping>
        <servlet-name>cgi</servlet-name>
        <url-pattern>/cgi-bin/*</url-pattern>
    </servlet-mapping>

注意:这里<url-pattern>的内容中的/cgi-bin/指定了浏览器访问的地址,与前面的<param-value>的内容/WEB-INF/cgi-bin对应。
3、配置权限
在conf/context

<Context privileged="true">

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->


</Context>
4、创建cgitest4.cpp
5、生成cgitest4.exe,并在WEB-INF下创建目录cgi,将cgitest4.exe放置其中
6、浏览器通过http://localhost:8080/yourweb/cgi-bin/cgitest4.exe即可访问
  8080为服务器端口,更改为自己的,yourweb也改成自己的网站目录

 

cgitest4.cpp

#include "stdio.h"
#include "stdafx.h"

void main()
{
   
    FILE* f = fopen("bbb.txt","w");
    fprintf(f,"hello world");
    fclose(f);
    printf("content-type:text/html;/r/n/r/n");
    printf("<html><body>hello world</body></html>");
  }

原创粉丝点击