tomcat上部署CGI

之前學了Perl的基礎,本來打算只學Perl如何訪問數據庫就算了,不過發現CGI也還挺好玩的,順便學習一下吧,而且通過瀏覽器和數據庫進行交互好像也很酷。

現在CGI不是很流行了,基本上被Jsp/Servlet,.Net,PHP等取代了,反正這也不是Perl的主業。

CGI流行原因有很多,比如效率問題,對於每一個請求都會編譯執行一次腳本,雖然現在又mod_perl,但是感覺來的晚了些。此外編寫這個腳本還是比較費事的,像上面提到的幾種語言,簡單的拖拽都可以開發出一個漂亮的頁面。(CGI高手請無視我,至少對於新手感覺是這樣子的。)

====================================================================

如何在Tomcat上部署CGI?

1.首先你要有一個Tomcat服務器

  到Apache Tomcat官網上去下載,本文使用的是Tomcat 7系列。如果你選用的是更低的版本,可能本文的配置方法對你不適用。

2.想要運行Tomcat還需要java運行環境。

  需要到Oracle官網下載,本文使用爲jdk7

3.安裝jdk,設置環境變量,如果需要。以我機器上爲例:

JAVA_HOME:C:\Program Files (x86)\Java\jdk1.7.0_25    ---JDK安裝路徑

PATH:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

CATALINA_HOME:E:\apache-tomcat-7.0.53    ---Tomcat解壓位置

4.測試一下:在DOS命令行輸入startup.bat,服務器啓動,最終給出信息:INFO: Server startup in 3054 ms

  也可以在瀏覽器中輸入:http://localhost:8080/ 查看是否啓動成功

5.Tomcat7支持CGI,但是默認配置是關閉的需要進行如下配置

    1.修改Tomcat conf/web.xml中兩處代碼,默認是註釋掉的,去掉註釋即可

    <servlet>
        <servlet-name>cgi</servlet-name>
        <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
        <init-param>
          <param-name>debug</param-name>
          <param-value>0</param-value>
        </init-param>
        <init-param>
          <param-name>cgiPathPrefix</param-name>
          <param-value>WEB-INF/cgi</param-value>
        </init-param>
         <load-on-startup>5</load-on-startup>
    </servlet>

   

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

    2.修改Tomcat conf/context.xml

       在標籤<Context>中添加屬性 privileged = "true" ,此時,Tomcat才允許web應用使用容器內的Servlet

<Context privileged="true">

    3.此時Tomcat已經可以運行CGI程序了

       當一個CGI請求到達Tomcat時,CGIServlet會對其進行攔截,請求的格式爲 http://.../cgi-bin/xxxx,然後CGIServlet會到相應的項目的WEB-INF/cgi目錄下調用相應的CGI文件處理請求


6.測試

測試文件目錄

perl_cgi

  |---WEB-INF

       |---cgi

           |---hello.pl

hello.pl文件內容

#!C:/strawberry/perl/binperl.exe
print "Content-type: text/html\n\n";
print "Hello, world!\n"

在瀏覽器中輸入:http://localhost:8080/perl_cgi/cgi-bin/hello.pl

輸出結果:

Hello, world! 




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章