我想從服務器端腳本加載一個小程序,例如。一個Perl CGI程序等等。可以這樣做嗎?怎麼樣?如何從動態服務器端URL加載Java小程序?
<applet code=A21 width=256 height=256 archive="http://url/cgi-bin/test.cgi?R=applet">
在此先感謝您的一切幫助。
我想從服務器端腳本加載一個小程序,例如。一個Perl CGI程序等等。可以這樣做嗎?怎麼樣?如何從動態服務器端URL加載Java小程序?
<applet code=A21 width=256 height=256 archive="http://url/cgi-bin/test.cgi?R=applet">
在此先感謝您的一切幫助。
我還沒有做這件事很長時間(所以安全模型可能已經改變了我),但訣竅是配置服務器來處理一些翻譯。說你的網址:
http://example.com/applets/MyCode/1.0
您設置的URL轉換,這樣你處理http://example.com/applets與CGI腳本,然後把它/MyCode/1.0爲PATH_INFO
。你返回你需要返回的任何東西。
你爲什麼要這樣做?
從the doc:
出於安全原因,applet的 類加載器只能從applet的 啓動的 同一個代碼庫讀取。這意味着,檔案 archiveList中必須在同一 目錄,或者在, 代碼庫的子目錄
所以我懷疑這將是有問題的。
我能夠實現這一點。我使用的機制是將cgi腳本文件包裝在shell腳本中。這個包裝程序調用cgi腳本,然後它會在它作爲小程序的頁面中將特殊請求嵌入到原始URL中。然後腳本會再次運行並檢測到這個特殊請求。它會在沒有任何輸出的情況下中斷,但返回值是shell腳本會捕獲並輸出的jar/class文件。
Fetch.sh
run_the_cgi_script.cgi
情況下$?在
0) #normal script operation without special requests
#do nothing more
;;
1) #a special request that maps to Test3.class
echo "Content-type: application/java-archive"
echo ""
cat ./$myDIR/Test3.class;;
2) #a special request that maps to someclass.class
echo "Content-type: application/java-archive"
echo ""
cat ./$myDIR/someclass.class;;
3) #a special request that maps to somejar.jar
echo "Content-type: application/java-archive"
echo ""
cat ./$myDIR/somejar.jar;;
ESAC