模块  java.naming
软件包  javax.naming.ldap

Class InitialLdapContext

  • 实现的所有接口
    ContextDirContextLdapContext

    public class InitialLdapContext
    extends InitialDirContext
    implements LdapContext
    此类是执行LDAPv3样式扩展操作和控件的起始上下文。

    有关同步的详细信息,请参阅javax.naming.InitialContextjavax.naming.InitialDirContext ,以及有关如何创建初始上下文的策略。

    请求控制

    创建初始上下文( InitialLdapContext )时,可以指定请求控件列表。 这些控件将用作由上下文或上下文派生的上下文执行的任何隐式LDAP“绑定”操作的请求控件。 这些称为连接请求控件 使用getConnectControls()获取上下文的连接请求控件。

    提供给初始上下文构造函数的请求控件不用作后续上下文操作(如搜索和查找)的上下文请求控件。 使用setRequestControls()设置和更新上下文请求控件。

    如图所示,可以存在与上下文相关联的两组不同的请求控件:连接请求控件和上下文请求控件。 对于那些需要发送可能不适用于上下文操作和任何隐式LDAP“绑定”操作的关键控件的应用程序,这是必需的。 典型的用户程序将执行以下操作:

     InitialLdapContext lctx = new InitialLdapContext(env, critConnCtls);
     lctx.setRequestControls(critModCtls);
     lctx.modifyAttributes(name, mods);
     Controls[] respCtls =  lctx.getResponseControls();
    
    它首先指定用于创建初始上下文的关键控件( critConnCtls ),然后为上下文操作设置上下文的请求控件( critModCtls )。 如果由于某种原因lctx需要重新连接到服务器,它将使用critConnCtls 有关请求控件的更多讨论,请参见LdapContext界面。

    服务提供者实现者应阅读LdapContext类描述中的“服务提供者”部分以获取实现细节。

    从以下版本开始:
    1.3
    另请参见:
    LdapContextInitialContextInitialDirContextNamingManager.setInitialContextFactoryBuilder(javax.naming.spi.InitialContextFactoryBuilder)
    • 构造方法详细信息

      • InitialLdapContext

        public InitialLdapContext()
                           throws NamingException
        使用无环境属性或连接请求控件构造初始上下文。 相当于new InitialLdapContext(null, null)
        异常
        NamingException - 如果遇到命名异常
      • InitialLdapContext

        public InitialLdapContext​(Hashtable<?,​?> environment,
                                  Control[] connCtls)
                           throws NamingException
        使用环境属性和连接请求控件构造初始上下文。 有关环境属性的讨论,请参见javax.naming.InitialContext

        此构造函数不会修改其参数或保存对它们的引用,但可以保存克隆或副本。 传递给构造函数后,调用者不应在environment修改可变键和值。

        connCtls用作底层上下文实例的连接请求控件。 有关详细信息,请参阅类说明。

        参数
        environment - 用于创建初始DirContext的环境。 Null表示空的环境。
        connCtls - 初始上下文的连接请求控件。 如果为null,则不使用连接请求控件。
        异常
        NamingException - 如果遇到命名异常
        另请参见:
        LdapContext.reconnect(javax.naming.ldap.Control[]), LdapContext.reconnect(javax.naming.ldap.Control[])