国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JAVA-CGI HowTo

2019-11-18 11:03:41
字體:
來源:轉載
供稿:網友

 

1. 簡介
由於 java 的設計方式程式設計師沒有簡易的方法可以取得系統的環境變數.由於 Java 發展工具 (JDK) 建立的方式,呼叫一個程式必須使用多重表徵(tokens),這和標準的 Html forms/CGI 運作方式不易配合.有一些辦法可以克服這些限制,而我就實作了其中一種.詳情請見下述.

1.1. 預備知識
我假定你有 HTML 與 CGI 概念的一般知識,而且了解關於你的 HTTP 伺服器的最基本知識.你也應該知道如何寫 Java 程式,否則這些都沒有意義.

1.2. 這份文件
本文的最新版本可以從此找到: http://www.orbits.com/software/Java_CGI.html.

1.3. 軟體套件
本文所提到的軟體套件的最新版本可由匿名 FTP 取得ftp://ftp.orbits.com/pub/software/java_cgi-0.4.tgz. 這套件包含本文的 SGML 原始檔.

這些套件的散布必須依據 GNU Library General Public License. 本文可依 linux HOWTO 的版權聲明散布.

假如你使用本軟體,請將某些參考指向 http://www.orbits.com/software/Java_CGI.html,以便讓其它人能找到 Java CGI 的類別.

2. 設定伺服器以執行 Java CGI 程式 (解釋篇)
這一節教你安裝我的 Java CGI 套件,以及大量的解釋,讓你能夠了解你的行為會導致什麼結果.假如你只想安裝程式而不想了解為什麼,直接跳到 設定伺服器以執行 Java CGI 程式 (簡略篇).

2.1. 系統需求
本軟體應該能在已安裝 Java 程式發展工具的任何類 UNIX 的 web 伺服器上安裝.我將它裝在執行 apache 伺服器的 Debian Linux 系統上.假如你發覺它無法在愕乃歐魃顯俗鰨胗胛伊? dhs@orbits.com.

不幸的是,Java 執行時期解譯器似乎是吃記憶體的怪物 -- 假如你將使用許多 Java CGI 程式的話你可能要再丟數 MB 的 RAM 到你的伺服器里.

2.2. Java CGI 輔助軟體
我寫的輔助軟體就叫做 Java CGI.你可從 ftp://www.orbits.com/pub/software/java_cgi-0.4.tgz 取得(版本號碼可能會改變).

2.3. 解開原始檔
找一個合適的目錄將套件解開. (假如你還沒有標準放置軟體的地方,我建議你放在 /usr/local/src.) 用這個指令解開套件:

gzip -dc java_cgi-0.4.tgz tar -xvf -

這會產生一個叫 java_cgi-0.4 的目錄.在那里你可以找到本文其它地方提到的檔案. (假如版本號碼改變了,就改用那套件里的.)

2.4. 決定你的本地目錄策略
你必須決定讓你的 Java CGI 程式住在那里.一般來說,你會希望放在和你的 cgi-bin 平行的目錄.我的 apache 伺服器設定使用 /var/web/cgi-bin 為 cgi-bin 目錄,因此我用 /var/web/javacgi 作為放置 Java CGI 程式的地方.你可能不會想讓將你的 Java CGI 程式放進某一已存在的 CLASSPATH 目錄.編輯 Makefile 來反應你的系統配置.確定你用 root 簽入然後執行 make install.這將編譯 Java 程式,修改 java.cgi 指令稿以符合你的系統,并且將程式安裝進適當的位置.假如你希望擁有本文的 HTML 版本以及一份 HTML 測試文件,改用 make all.

2.5. 測試你的安裝
由本套件安裝的 HTML 文件叫做 javacgitest.html, javaemailtest.html 以及 javahtmltest.html.假如你在前節使用 make all,它們會放在你於 Makefile 中指定的 WEBDIR 目錄中.假如不是,你可以執行 make test 從 javacgitest.html-dist, javaemailtest.html-dist 以及 javahtmltest.html-dist 來建立它們.

當你確定你的安裝可以正確運作後,你可能希望從你的 JAVACGI 目錄移除 CGI_Test, Email_Test 以及 HTML_Test 類別,還有從 WEBDIR 目錄移除 javacgitest.html, javaemailtest.html 以及javahtmltest.html,因為它們會顯示應該只有伺服器治理者才看得到的使用者資訊.

3. 設定伺服器以執行 Java CGI 程式 (簡略篇)

從ftp://www.orbits.com/pub/software/java_cgi-0.4.tgz. 取回 Java CGI 套件.(版本號碼可能會改變.)
用這個指令解開套件:
gzip -dc java_cgi-0.4.tgz tar -xvf -

(假如版本號碼改變了,就改用那套件里的.)
修改在新產生的 java_cgi-0.4 目錄里的 Makefile 以符合你的系統.
以 root 身份,執行 make install.這將編譯 Java 程式,加上你系統特定的資訊并安裝許多檔案.假如你希望擁有本文的 HTML 版本以及一份 HTML 測試文件,改用 make all.
然後應該就可以用了.
4. 執行一個 Java CGI 程式
4.1. 以 CGI 模式執行 Java 程式的障礙
從 web 伺服器執行 Java 程式有兩個主要的問題:

4.1.1. 你不能像一般執行檔一樣執行 Java 程式
你必需執行 Java 的執行時刻(run-time)解譯器并且以命令列的方式提供初始類別(程式執行所需).在一個 HTML form 里面沒有辦法提供命令列給 web 伺服器.

4.1.2. Java 程式沒有一般的方法可以取得環境變數
Java 程式所需的每個環境變數都必需被傳入. (在 Java 程式中)沒有類似 C 語言的 getenv() 函數.

4.2. 執行 Java CGI 解決問題
為了處理這些困難,我寫了一個 CGI 指令稿程式,提供 Java 解譯器所需的資訊.

4.2.1. java.cgi 指令稿
這個指令稿治理 HTTP 伺服器與你希望使用的 Java CGI 程式之間的互動.它從 server 端提供的資料中取出你想要執行程式的名稱.它將所有的環境變數資料將髹到一個暫存檔里.然後,它將這個檔案以及程式名稱加命令列中,執行 Java 的執行時刻解譯器.

java.cgi 指令稿的設定與安裝在 決定你的本地目錄策略 一節說明.

4.2.2. 從 HTML form 中引發 java.cgi
使用 Java CGI 程式的 HTML form 以下面的方式指定其行為:

<form action="/cgi-bin/java.cgi/CGI_Test" method="POST">

其中 /cgi-bin/ 是你本地端的 CGI 二進位執行檔目錄, java.cgi 是答應我們從 web 上執行 Java 程式的前端,而 CGI_Test 是一個欲執行的 Java 程式名稱的例子.

5. 使用 Java CGI 類別
目前為止支援三個主要類別 -- CGI, Email 以及 HTML.我正在考慮分別加上處理 MIME 格式輸入與輸出的類別 -- MIMEin & MIMEout.

也有一些用來支援和測試的類別. CGI_Test, Email_Test 以及 HTML_Test 是拿來測試你的安裝用的.你也可拿來當做你自己程式中使用這些類別庫的起點. Text 類別是 Email 與 HTML 的基底類別.

5.1. CGI
5.1.1. 類別語法
public class CGI

5.1.2. 類別描述
CGI 類別持有的「CGI 資訊」 -- web 伺服器所設定的環境變數以及按下 submit 時由 form 所傳送來的名稱/數值.所有的資訊都被存放在類別物件 PRoperties 中.

這個類別位於 ``Orbits.net'' 包裝(package)中.

5.1.3. 成員摘要

--------------------------------------------------------------------------------

CGI()         //  建構子
getNames()    //  取得名稱的串列
getValue()    //  取得指定名稱的值

--------------------------------------------------------------------------------

5.1.4. 請參閱



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沂水县| 枝江市| 都安| 济南市| 新建县| 彭阳县| 南岸区| 泗洪县| 普宁市| 阿拉尔市| 延庆县| 天峻县| 桐梓县| 林州市| 新乡县| 云南省| 浑源县| 克山县| 龙海市| 岢岚县| 三明市| 长宁区| 甘孜| 宜兴市| 霍城县| 太白县| 宜兰县| 玉溪市| 岢岚县| 伽师县| 宁夏| 海城市| 阳谷县| 额济纳旗| 阿尔山市| 锡林郭勒盟| 宣城市| 策勒县| 前郭尔| 兴宁市| 阳东县|