部署 Servlets
要部署 Java applet,请首先编译源代码,将其打包为 JAR 文件,然后对 JAR 文件进行签名。
Java applet 可以通过两种方式启动。
-
您可以使用 Java 网络启动协议(JNLP)启动 Servlets。使用 JNLP 启动的 Applet 可以访问强大的 JNLP API 和扩展。
-
或者,您可以通过直接在 applet 标记中指定 applet 的启动属性来启动 applet。但是,这种部署 Servlets 的旧方法对 Servlets 施加了严格的安全限制。
部署工具包脚本包含有用的 JavaScript 函数,可用于在网页中部署 Servlets。
如果您不熟悉这些部署技术,请先阅读Deployment In-Depth类,然后再 continue。
这是打包和部署 Servlets 的分步说明。动态树演示 Servlets 用于说明 Servlets 的部署。您可能需要设置构建脚本以执行以下某些步骤。
A browser with JavaScript enabled is required for this page to operate properly\.
Note:
如果看不到示例正在运行,则可能需要在浏览器中启用 JavaScript 解释器,以便 Deployment Toolkit 脚本能够正常运行。
- 编译 Servlets 的 Java 代码,并确保所有类文件和资源(例如图像)都在单独的目录中。
对于 DynamicTree 演示 Servlets,已编译的类位于build/classes/appletComponentArch
目录中。
- 创建一个文本文件,其中包含小应用程序需要的任何 JAR 文件清单属性。
对于 DynamicTree 演示 Servlets,在build/classes
目录中创建一个名为mymanifest.txt
的文件,并添加Permissions
,Codebase
和Application-Name
属性。Servlets 不需要访问用户的系统资源,因此请使用sandbox
作为权限。使用您将从中加载示例代码域的域,例如myserver.com
。将以下属性添加到mymanifest.txt
文件。
Permissions: sandbox
Codebase: myserver.com
Application-Name: Dynamic Tree Demo
还可以使用其他清单属性来限制 Servlets 仅使用受信任的代码,并为需要在特权 Java 代码和沙箱 Java 代码之间进行调用或者具有调用该 Servlets 的 JavaScript 代码的 Servlets 提供安全性。请参阅使用清单属性增强安全性类,以了解有关可用清单属性的更多信息。
- 创建一个包含您的 applet 的类文件和资源的 JAR 文件。将清单属性包括在上一步中创建的
mymanifest.txt
文件中。
例如,以下命令使用build/classes/appletComponentArch
目录中的类文件和build/classes
目录中的清单文件创建一个 JAR 文件。
% cd build/classes
% jar cvfm DynamicTreeDemo.jar mymanifest.txt appletComponentArch
请参阅JAR 文件中的打包程序类,以了解有关创建和使用 JAR 文件的更多信息。
- 在 Servlets 的 JAR 文件上签名,并在签名上加上时间戳。使用由受信任的证书颁发机构颁发的有效的当前代码签名证书,可以为您的用户提供安全运行 Servlets 的保证。
有关更多信息,请参见签名 JAR 文件类。
如果要使用签名的 JNLP 文件来提高安全性,请按照下一步所述创建 JNLP 文件,并在对 JAR 文件进行签名之前将其包含在 JAR 文件中。有关信息,请参见《 Java 平台标准版部署指南》中的签名的 JNLP 文件。
- 创建一个描述如何启动 Servlets 的 JNLP 文件。
这是用于启动动态树演示 Servlets 的 JNLP 文件。
dynamictree_applet.jnlp的来源如下:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
<information>
<title>Dynamic Tree Demo</title>
<vendor>Dynamic Team</vendor>
</information>
<resources>
<!-- Application Resources -->
<j2se version="1.7+"
href="http://java.sun.com/products/autodl/j2se" />
<jar href="DynamicTreeDemo.jar" main="true" />
</resources>
<applet-desc
name="Dynamic Tree Demo Applet"
main-class="components.DynamicTreeApplet"
width="300"
height="300">
</applet-desc>
<update check="background"/>
</jnlp>
请注意,JNLP 文件中没有用于请求其他权限的安全元素,因此,该 Servlets 仅在安全沙箱中运行。
主题JNLP 文件的结构描述了 JNLP 文件的语法和选项。
- 创建将显示 Servlets 的 HTML 页面。调用 Deployment Toolkit 函数来部署 Servlets。
在我们的示例中,动态树演示 Servlets 部署在AppletPage.html中。
<body>
<!-- ... -->
<script src="https://www.java.com/js/deployJava.js"></script>
<script>
var attributes = {
code:'components.DynamicTreeApplet', width:300, height:300} ;
var parameters = {jnlp_href: 'dynamictree_applet.jnlp'} ;
deployJava.runApplet(attributes, parameters, '1.7');
</script>
<!-- ... -->
</body>
- 将 Servlets 的 JAR 文件,JNLP 文件和 HTML 页面放置在适当的文件夹中。
对于此示例,将DynamicTreeDemo.jar
,dynamictree_applet.jnlp
和AppletPage.html
放在本地计算机或 Web 服务器上的同一目录中。首选 Web 服务器。要从本地计算机运行,必须将应用程序添加到 exception 站点列表中,该列表由 Java 控制面板的“安全性”选项卡进行 管理。
- 在浏览器中打开 Servlets 的 HTML 页面以查看 Servlets。当出现提示时,同意运行该 applet。检查 Java 控制台日志中是否有错误和调试消息。
下载源代码用于* Dynamic Tree Demo Applet *示例,以进行进一步试验。