设置可信参数和安全属性

您可以在 RIA 的 Java 网络启动协议(JNLP)文件中为富 Internet 应用程序(RIA)设置某些 Java 虚拟机参数和安全属性。对于 Servlets,还可以在<applet>标签的java_arguments参数中设置参数。尽管有一组 预定义的安全属性,但是您也可以通过在属性名称前添加“ jnlp.”或“ javaws.”来定义新的安全属性。可以使用System.getProperty方法在 RIA 中检索属性。

考虑属性和参数演示 Servlets。在 Servlets 的 JNLP 文件appletpropsargs.jnlp中设置了以下 Java 虚拟机参数和属性。

  • -Xmx –等于“ 256M”的安全参数集

  • sun.java2d.noddraw –预定义的安全属性设置为“ true”

  • jnlp.myProperty –用户定义的安全属性集等于“用户定义的属性”

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
    <information>
        <title>Properties and Arguments Demo Applet</title>
        <vendor>Dynamic Team</vendor>
    </information>
    <resources>
        <!-- Application Resources -->
        <j2se version="1.6+"
              href="http://java.sun.com/products/autodl/j2se"
              <!-- secure java vm argument -->
              java-vm-args="-Xmx256M"/>
        <jar href="applet_PropertiesAndVMArgs.jar"
            main="true" />
            <!-- secure properties -->
        <property name="sun.java2d.noddraw"
            value="true"/>
        <property name="jnlp.myProperty"
            value="a user-defined property"/>
    </resources>
    <applet-desc 
         name="Properties and Arguments Demo Applet"
         main-class="PropertiesArgsDemoApplet"
         width="800"
         height="50">             
     </applet-desc>
     <update check="background"/>
</jnlp>

PropertiesArgsDemoApplet类使用System.getProperty方法来检索java.version属性和 JNLP 文件中设置的其他属性。 PropertiesArgsDemoApplet类还显示属性。

import javax.swing.JApplet;
import javax.swing.SwingUtilities;
import javax.swing.JLabel;

public class PropertiesArgsDemoApplet extends JApplet {
    public void init() {
        final String javaVersion = System.getProperty("java.version");
        final String  swing2dNoDrawProperty = System.getProperty("sun.java2d.noddraw");
        final String  jnlpMyProperty = System.getProperty("jnlp.myProperty");        

        try {
            SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {
                    createGUI(javaVersion, swing2dNoDrawProperty, jnlpMyProperty);
                }
            });
        } catch (Exception e) {
            System.err.println("createGUI didn't successfully complete");
        }
    }
    private void createGUI(String javaVersion, String swing2dNoDrawProperty, String jnlpMyProperty) {
        String text = "Properties: java.version = " + javaVersion + 
                ",  sun.java2d.noddraw = " + swing2dNoDrawProperty +
                ",   jnlp.myProperty = " + jnlpMyProperty;
        JLabel lbl = new JLabel(text);
        add(lbl);
    }
}

接下来显示属性和参数演示 Servlets。您还可以看到在AppletPage.html中运行的 Servlets。

A browser with JavaScript enabled is required for this page to operate properly\.  

Note:

如果看不到 Servlets 正在运行,则需要至少安装Java SE 开发套件(JDK)6 更新 10版本。

Note:

如果看不到示例正在运行,则可能需要在浏览器中启用 JavaScript 解释器,以便 Deployment Toolkit 脚本能够正常运行。

下载源代码用于“属性和参数演示 Servlets”示例,以进一步进行实验。

有关 RIA 可以访问的完整系统属性集,请参见System Properties