我创建了一个简单的 HTML,其中包含以下表单:
<form action="WEB-INF/cgi/run.pl" method="post">
<table border="0" cellspacing="0">
<tbody>
<tr><th align="center" bgcolor="F7F5F2"> <p class="normal">Submission Form</p> </th></tr>
<tr><td align="center" bgcolor="F7F5F2"> <p class="normal">Insert your text below:</p> </td></tr>
<tr><td><textarea wrap="virtual" name="seq_data" rows="15" cols="80"></textarea></td></tr>
</tbody></table>
or upload a file : <input type="file" name="file" size="29" border="0"><br><br>
<input class="normalc" value="Submit Query" type="submit">
<input class="normalc" value="Clear Form" type="reset"><p></p>
</form>
我需要将表单中的数据作为输入传递给 perl 脚本 (run.pl)。
在网上搜索时,我读到: 1) 我需要通过 apache tomcat 测试我的网站。我已经安装了 apache 7.0 版并通过删除围绕此 servlet 的 XML 注释修改了 Tomcat 7.0/conf/web.xml 文件:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
我还创建了放置 perl 脚本的目录“WEB-INF/cgi”。
2) 我需要修改我的 Perl 脚本,但我找不到我应该添加什么以便将数据从 html 表单传递到我的脚本。
除了修改Tomcat和Perl脚本,不知道还有没有必要的步骤。 我已经阅读了许多相关主题,但仍然找不到分步指南。请帮忙。
最佳答案
当网络服务器收到 HTTP 请求时,它通常会以资源的内容作为响应。但是,如果 URL 指定了 Common Gateway Interface (CGI) 资源,它将运行它并返回程序的输出。
服务器的配置指定了 CGI 和非 CGI 资源之间的区别,这可以基于文件扩展名 - .cgi
、.pl
等。 - 或者文件在服务器目录结构中的位置。
服务器通过其 STDIN 将 HTTP 请求中的信息以及进程的环境变量传递给 CGI 程序。一般来说,PUT
或 POST
请求的参数将出现在 STDIN 中,而 GET
请求的参数将插入到环境变量中。
程序的工作是根据这些参数构建所需的响应并将它们打印到 STDOUT。它还可能使用数据库信息和其他系统信息。此输出将被服务器用作 HTTP 响应的内容。
你应该看看 Perl CGI module
它将此接口(interface)包装在方便的子例程中。
关于html - 将数据从 HTML 表单传递到 Perl 脚本的步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11817809/