tomcat CGI支持

2022-08-30  本文已影响0人  与狼共舞666

目录

介绍

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

在 Tomcat 中,当您使用 Tomcat 作为 HTTP 服务器并需要 CGI 支持时,可以添加 CGI 支持。通常,当您不想运行像 Apache httpd 这样的 Web 服务器时,这会在开发过程中完成。Tomcat 的 CGI 支持在很大程度上与 Apache httpd 兼容,但有一些限制(例如,只有一个 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-INF/web.xmlWeb 应用程序的文件中。

    取消注释文件中的 servlet 和 servlet-mapping $CATALINA_BASE/conf/web.xml可以同时为所有已安装的 Web 应用程序启用 CGI。

  2. 为您的 Web 应用程序设置privileged="true"Context 元素。

    只有被标记为特权的上下文才允许使用 CGI servlet。请注意,修改全局$CATALINA_BASE/conf/context.xml 文件会影响所有 Web 应用程序。有关详细信息,请参阅 上下文文档

配置

有几个 servlet 初始化参数可用于配置 CGI servlet 的行为。

执行的 CGI 脚本取决于 CGI Servlet 的配置以及请求如何映射到 CGI Servlet。CGI 搜索路径从 Web 应用程序根目录 + File.separator + cgiPathPrefix 开始。然后 搜索pathInfo,除非它是null- 在这种情况下搜索servletPath

搜索从第一个路径段开始,一次扩展一个路径段,直到没有留下路径段(导致 404)或找到脚本。任何剩余的路径段都将传递给 PATH_INFO环境变量中的脚本。

上一篇 下一篇

猜你喜欢

热点阅读