模块  java.scripting
软件包  javax.script

Interface ScriptContext

  • 所有已知实现类:
    SimpleScriptContext

    public interface ScriptContext
    实现类的接口用于在托管应用程序中将脚本引擎与对象(如作用域绑定)连接起来。 每个范围都是一组命名属性,可以使用ScriptContext方法设置和检索其值。 ScriptContexts还公开了ScriptEngines可用于输入和输出的读者和写者。
    从以下版本开始:
    1.6
    • 字段详细信息

      • ENGINE_SCOPE

        static final int ENGINE_SCOPE
        EngineScope属性在单个 ScriptEngine的生命周期内可见,并为每个引擎维护一组属性。
        另请参见:
        常数字段值
      • GLOBAL_SCOPE

        static final int GLOBAL_SCOPE
        GlobalScope属性对同一ScriptEngineFactory创建的所有引擎都可见。
        另请参见:
        常数字段值
    • 方法详细信息

      • setBindings

        void setBindings​(Bindings bindings,                 int scope)
        Bindings实例与此ScriptContext的特定范围ScriptContext getAttributesetAttribute方法的调用必须映射到指定范围的Bindingsgetput方法。
        参数
        bindings - 与给定范围关联的 Bindings
        scope - 范围
        异常
        IllegalArgumentException - 如果没有为此类型的ScriptContexts中的指定范围值定义 Bindings
        NullPointerException - 如果范围的值为 ENGINE_SCOPE且指定的 Bindings为空。
      • getBindings

        Bindings getBindings​(int scope)
        获取与此 Bindings中的给定范围关联的 ScriptContext
        参数
        scope - 范围
        结果
        相关联的Bindings 如果尚未设置,则返回null
        异常
        IllegalArgumentException -如果没有 Bindings被用于在指定的范围值定义 ScriptContext这种类型。
      • setAttribute

        void setAttribute​(String name,                  Object value,                  int scope)
        设置给定范围中属性的值。 如果范围是GLOBAL_SCOPE并且没有为GLOBAL_SCOPE设置GLOBAL_SCOPE ,则setAttribute调用是无操作。
        参数
        name - 要设置的属性的名称
        value - 属性的值
        scope - 设置属性的范围
        异常
        IllegalArgumentException - 如果名称为空或范围无效。
        NullPointerException - 如果名称为null。
      • getAttribute

        Object getAttribute​(String name,                    int scope)
        获取给定范围内的属性的值。
        参数
        name - 要检索的属性的名称。
        scope - 检索属性的范围。
        结果
        属性的值。 返回null是给定范围中不存在的名称。
        异常
        IllegalArgumentException - 如果名称为空或作用域的值无效。
        NullPointerException - 如果名称为null。
      • removeAttribute

        Object removeAttribute​(String name,                       int scope)
        删除给定范围中的属性。
        参数
        name - 要删除的属性的名称
        scope - 删除属性的范围
        结果
        删除的值。
        异常
        IllegalArgumentException - 如果名称为空或范围无效。
        NullPointerException - 如果名称为null。
      • getAttribute

        Object getAttribute​(String name)
        检索在搜索顺序中最早发生的范围内具有给定名称的属性的值。 顺序由范围参数的数值确定(首先是最低范围值。)
        参数
        name - 要检索的属性的名称。
        结果
        定义具有给定名称的属性的最低范围中的属性的值。 如果任何范围中都不存在具有该名称的属性,则返回null。
        异常
        NullPointerException - 如果名称为null。
        IllegalArgumentException - 如果名称为空。
      • getAttributesScope

        int getAttributesScope​(String name)
        获取定义属性的最低范围。
        参数
        name - 属性的名称。
        结果
        最低范围。 如果在任何范围内未定义具有给定名称的属性,则返回-1。
        异常
        NullPointerException - 如果name为null。
        IllegalArgumentException - 如果名称为空。
      • getWriter

        Writer getWriter()
        返回显示输出时要使用的脚本的 Writer
        结果
        Writer
      • getErrorWriter

        Writer getErrorWriter()
        返回用于显示错误输出的 Writer
        结果
        Writer
      • setWriter

        void setWriter​(Writer writer)
        为显示输出时要使用的脚本设置 Writer
        参数
        writer - 新的 Writer
      • setErrorWriter

        void setErrorWriter​(Writer writer)
        设置用于显示错误输出的 Writer
        参数
        writer - The Writer
      • getReader

        Reader getReader()
        返回脚本用于读取输入的 Reader
        结果
        Reader
      • setReader

        void setReader​(Reader reader)
        为脚本设置 Reader以读取输入。
        参数
        reader - 新的 Reader
      • getScopes

        List<Integer> getScopes()
        返回ScriptContext中范围的所有有效值的不可变 List
        结果
        范围值列表