部署 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的文件,并添加PermissionsCodebaseApplication-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.jardynamictree_applet.jnlpAppletPage.html放在本地计算机或 Web 服务器上的同一目录中。首选 Web 服务器。要从本地计算机运行,必须将应用程序添加到 exception 站点列表中,该列表由 Java 控制面板的“安全性”选项卡进行 管理。

  • 在浏览器中打开 Servlets 的 HTML 页面以查看 Servlets。当出现提示时,同意运行该 applet。检查 Java 控制台日志中是否有错误和调试消息。

下载源代码用于* Dynamic Tree Demo Applet *示例,以进行进一步试验。