如何从动态服务器端URL加载Java小程序?

时间:2010-01-14 07:50:37

标签: java applet cgi

我想从服务器端脚本加载applet,例如。一个Perl CGI程序等可以这样做吗?如何?

<applet code=A21 width=256 height=256 archive="http://url/cgi-bin/test.cgi?R=applet">

提前感谢所有帮助。

3 个答案:

答案 0 :(得分:1)

我还没有这么做(因此安全模型可能已经改变了我),但诀窍是配置服务器来处理一些翻译。假设您有URL:

 http://example.com/applets/MyCode/1.0

您设置了网址转换,以便使用CGI脚本处理 http://example.com/applets ,然后将 /MyCode/1.0 作为{ {1}}。你返回任何你需要返回的东西。

你为什么要这样做?

答案 1 :(得分:1)

我能够实现这个目标。我使用的机制是cgi脚本文件包装在shell脚本中。这个包装器调用cgi脚本,然后它会在原始url中嵌入一个特殊请求,在它作为applet的页面中。然后该脚本将再次运行并检测此特殊请求。它会在没有任何输出但是返回值的情况下中断,shellcript会捕获并输出jar / classfile。

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

答案 2 :(得分:0)

来自the doc

  

出于安全考虑,小程序   类加载器只能从中读取   与applet相同的代码库   开始了。这意味着档案   在archiveList中必须是相同的   目录为或在子目录中,   代码库

所以我怀疑这会有问题。