1. 将applet打成jar包并签名(网上有签名方法, 也可以到我的资源里去下载签名applet的shell脚本)
2. 嵌入页面
<object
classid = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
codebase = "http://java.sun.com/update/1.6.0/jinstall-6u10-windows-i586.cab#Version=6,0,0,32"
WIDTH = "400" HEIGHT = "100" NAME = "MyApplet" >
<PARAM NAME = CODE VALUE = "javaapp1.JavaApp1.class" />
<PARAM NAME = CODEBASE VALUE = "./appletlib/" />
<PARAM NAME = ARCHIVE VALUE = "JavaApp1.jar,commons-logging-1.1.1.jar" />
<PARAM NAME = NAME VALUE = "progressApplet" />
<param name="Authorization" value='<%=request.getHeader("Authorization")%>'/>
<param name="Cookie" value='<%=request.getHeader("Cookie")%>'/>
<param name = "type" value = "application/x-java-applet;version=1.6"/>
<param name = "scriptable" value = "true"/>
<comment>
<embed id="_applet"
type = "application/x-java-applet;version=1.6" \
CODE = "javaapp1.JavaApp1.class" \
JAVA_CODEBASE = "./appletlib/" \
ARCHIVE = "JavaApp1.jar,commons-logging-1.1.1.jar" \
NAME = "MyApplet" \
WIDTH = "400" \
HEIGHT = "100"
scriptable = true
Authorization = "<%=request.getHeader("Authorization")%>"
Cookie ='<%=request.getHeader("Cookie")%>'
pluginspage = "http://java.sun.com/products/plugin/index.html#download">
<noembed>
</noembed>
</embed>
</comment>
</object>
说明:
1. CODE代表applet所对应的主Class, 也就是继承了Applet类或者JApplet类的Class
2. ARCHIVE代表Applet以及所依赖的jar包
上例中JavaApp1.jar是applet, commons-logging-1.1.1.jar是applet里面记log所依赖的包
3. JAVA_CODEBASE指ARCHIVE里面所列出的jar包的地址
4. NAME可以随便写
5. Authorization和Cookie都是自定义的参数
就是把jsp的参数传入到applet中去
在applet的init方法中调用以下语句获取参数:
authorization = getParameter("Authorization");
cookie = getParameter("Cookie");
6.object和embed标签是为了让IE及其他浏览器都支持
applet无法显示的常见原因:
1. applet没有签名(如果签名还会有警告, 那么对applet依赖的其他jar包也要签名)
2. CODE写得不正确 (要把package的路径带全, 与jar保持一致)
3. JAVA_CODEBASE写得不正确
JAVA_CODEBASE = "./appletlib/" 这里是相对路径
如果相对路径找不到, 那就尝试获取web全路径
例如:JAVA_CODEBASE="http://1.1.1.1:8080/appletlib/"
4. 在linux下确保firefox支持java applet
以firefox3.6为例:
键入shell命令
# mkdir ~/.mozilla/plugins
# ln –s /usr/local/jdk1.6.0_29/jre/lib/amd64/libnpjp2.so ~/.mozilla/plugins/
如果是32位系统就是i386, 64位系统就是amd64
然后重启firefox就可以了