CGI

欢马劈雪     最近更新时间:2020-08-04 05:37:59

573

简介

CGI(通用网关接口)定义了一种 Web 服务器与外部内容生成程序的交互方式,这里所说的外部内容生成程序通常被称为 CGI 程序或 CGI 脚本。

当你使用 Tomcat 做为 HTTP 服务器,并且需要 CGI 支持时,可以在 Tomcat 中添加 CGI 支持。Tomcat 的 CGI 支持很大程度上能够跟 Apache 的httpd's 相兼容,但也存在一些局限(比如只有一个 cgi-bin 目录)。

CGI 支持是通过 servlet 类 org.apache.catalina.servlets.CGIServlet 来实现的。一般而言,该 servlet 与 URL 模式“/cgi-bin/*” 相对应。

Tomcat 默认不支持 CGI。

安装

警告:CGI 脚本用于执行 Tomcat JVM 外部的程序。如果使用 Java 的 SecurityManager,则它将绕过 catalina.policy 中配置的安全策略。

为了启用 CGI 支持:

  1. 在默认的 $CATALINA_BASE/conf/web.xml 文件中,存在被注释掉的用于 CGI servlet 的范例 servlet 及 servlet-mapping 元素。在 Web 应用中启用 CGI 支持,需要将 servlet 和 servlet-mapping 声明都复制到 Web 应用的 WEB-INF/web.xml 文件中。

  2. 在 Web 应用中的 Context 元素中设置 privileged="true"

    只有享有特权的上下文才能被允许使用 CGI servlet。注意,修改全局$CATALINA_BASE/conf/context.xml 文件会影响所有的 Web 应用。查阅 Context 文档来了解详情。

配置

下面是用来配置 CGI servlet 行为的一些 Servlet 初始参数:

展开阅读全文