当使用 Java 网络启动协议(JNLP)部署 applet 时,Java 插件软件会从网络下载 JNLP 文件后启动 applet。从 Java SE 7 发行版开始,您可以通过将 JNLP 文件嵌入到网页本身中来减少小应用程序启动所花费的时间,从而可以避免第一次加载小应用程序时出现额外的网络请求。这将导致 applet 在 Web 浏览器上快速启动。
在网页中部署 Servlets 时,可以将 Base64 编码的 JNLP 文件嵌入到jnlp_embedded参数中。 元素的属性应满足以下限制:
href属性应包含相对路径。
不应指定codebase属性。这意味着代码库将从派生 applet 的网页的 URL 派生。
以下步骤描述了如何在网页中嵌入 JNLP 文件以部署 Servlets。
为 Servlets 创建一个JNLP文件。接下来显示一个示例文件。
Dynamic Tree Demo
Dynamic Team
"dist/applet_ComponentArch_DynamicTreeDemo/DynamicTreeDemo.jar"
main="true" />
name="Dynamic Tree Demo Applet"
main-class="appletComponentArch.DynamicTreeApplet"
width="300"
height="300">
使用 Base64 方案对 JNLP 文件的内容进行编码。您可以使用任何 Base64 编码工具来编码 JNLP 文件。检查工具的使用情况,以创建具有 Base64 编码的字符串。可以使用的一些工具和网站的示例如下:
UNIX 命令– base64,uuencode
在网页中部署 applet 时,请指定jnlp_embedded参数,并将其值设置为 Base64 编码的 JNLP 字符串。确保仅包括实际的 Base64 字节,而没有任何编码工具特定的页眉或页脚。
var attributes = {} ;
var parameters = {jnlp_href: 'dynamictree_applet.jnlp',
jnlp_embedded: 'PCEtLSANCi8qDQogKiBDb ... bmxwPg=='
} ;
deployJava.runApplet(attributes, parameters, '1.6');
一些编码工具可能会将编码后的字符串 包装成多行 76 列。要在 JavaScript 代码中使用此多行属性值,请将该属性值指定为一组 String 联的字符串。如果 Servlets 是直接使用 HTML 标记部署的,则可以按原样包含多行属性值。
在浏览器中打开AppletPage.html,以查看通过使用嵌入在网页中的 JNLP 文件启动的动态树演示 Servlets。
Note:
如果看不到 Servlets 正在运行,则需要至少安装Java SE 开发套件(JDK)7版本。
Note:
如果看不到示例正在运行,则可能需要在浏览器中启用 JavaScript 解释器,以便 Deployment Toolkit 脚本能够正常运行。
下载源代码用于* Embedded JNLP *示例,以进行进一步试验。