Module  java.scripting
软件包  javax.script

Interface ScriptContext

  • 所有已知实现类:
    SimpleScriptContext


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

      • ENGINE_SCOPE

        static final int ENGINE_SCOPE
        EngineScope属性在单个 ScriptEngine的生存期内可见,并为每个引擎维护一组属性。
        另请参见:
        Constant Field Values
      • GLOBAL_SCOPE

        static final int GLOBAL_SCOPE
        由相同ScriptEngineFactory创建的所有引擎都可以看到GlobalScope属性。
        另请参见:
        Constant Field Values
    • 方法详细信息

      • setBindings

        void setBindings​(Bindings bindings,
                         int scope)
        Bindings实例与此ScriptContext的特定范围相关ScriptContext 调用该getAttributesetAttribute方法必须映射到getput的方法Bindings指定的范围。
        参数
        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设置绑定,则setAttribute调用是无操作的。
        参数
        name - 要设置的属性的名称
        value - 属性的值
        scope - 设置属性的范围
        异常
        IllegalArgumentException - 如果名称为空或范围无效。
        NullPointerException - 如果名称为空。
      • getAttribute

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

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

        Object getAttribute​(String name)
        在搜索顺序中最早出现的范围内检索具有给定名称的属性值。 顺序由作用域参数的数值确定(最低范围值首先)
        参数
        name - 要检索的属性的名称。
        结果
        定义具有给定名称的属性的最低范围内的属性值。 如果在任何范围内都不存在名称的属性,则返回null。
        异常
        NullPointerException - 如果名称为空。
        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 - Writer
      • getReader

        Reader getReader​()
        返回一个 Reader以供脚本使用以读取输入。
        结果
        Reader
      • setReader

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

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