Module java.naming

Class InitialDirContext

java.lang.Object
javax.naming.InitialContext
javax.naming.directory.InitialDirContext
所有已实现的接口:
Context, DirContext
直接已知的子类:
InitialLdapContext

public class InitialDirContext extends InitialContext implements DirContext
这个类是执行目录操作的起始上下文。InitialContext类描述中的文档(包括同步的文档)也适用于这里。
自从:
1.3
参见:
  • Constructor Details

    • InitialDirContext

      protected InitialDirContext(boolean lazy) throws NamingException
      使用不初始化的选项构造一个初始的DirContext。当在调用InitialDirContext构造函数时环境参数的值尚未知时,子类中的构造函数可以使用此方法。子类的构造函数将调用此构造函数,计算环境的值,然后在返回之前调用init()。
      参数:
      lazy - true表示不初始化初始的DirContext;false等同于调用new InitialDirContext()
      抛出:
      NamingException - 如果遇到命名异常
      自从:
      1.3
      参见:
    • InitialDirContext

      public InitialDirContext() throws NamingException
      构造一个初始的DirContext。未提供环境属性。等同于new InitialDirContext(null)
      抛出:
      NamingException - 如果遇到命名异常
      参见:
    • InitialDirContext

      public InitialDirContext(Hashtable<?,?> environment) throws NamingException
      使用提供的环境构造一个初始的DirContext。环境属性在javax.naming.InitialContext类描述中讨论。

      如果提供的环境的java.naming.provider.url属性由使用ldap协议的URL(或URL列表)组成,则生成的LdapContext将使用由配置的LdapDnsProviders解析的LDAP服务器:

      1. 如果这是第一个使用ldap协议的java.naming.provider.url创建的InitialDirContext,则使用ServiceLoader机制使用系统类加载器来定位LdapDnsProvider实现。定位提供程序的顺序是特定于实现的,并且实现可以自由缓存已定位的提供程序。
      2. 每个提供程序的lookupEndpoints方法(如果已实例化)将与java.naming.provider.url属性中的每个URL和环境的组合一起调用一次,直到提供程序返回非空或所有提供程序都已用尽。如果没有LdapDnsProviders返回非空的结果,则实现将尽力确定一个端点。在加载或调用LdapDnsProvider时遇到的ServiceConfigurationError、Error或RuntimeException,如果有的话,将传播到调用线程。

      此构造函数不会修改environment或保存对其的引用,但可能会保存一个克隆。调用者不应在传递给构造函数后修改environment中的可变键和值。

      参数:
      environment - 用于创建初始DirContext的环境。Null表示空环境。
      抛出:
      NamingException - 如果遇到命名异常
  • Method Details

    • getAttributes

      public Attributes getAttributes(String name) throws NamingException
      从接口复制的描述: DirContext
      检索与命名对象关联的所有属性。有关详细信息,请参阅DirContext.getAttributes(Name)
      在接口中指定:
      getAttributes 在接口 DirContext
      参数:
      name - 要检索属性的对象的名称
      返回:
      name关联的属性集
      抛出:
      NamingException - 如果遇到命名异常
    • getAttributes

      public Attributes getAttributes(String name, String[] attrIds) throws NamingException
      从接口复制的描述: DirContext
      检索与命名对象关联的选定属性。有关详细信息,请参阅DirContext.getAttributes(Name, String[])
      在接口中指定:
      getAttributes 在接口 DirContext
      参数:
      name - 要检索属性的对象的名称
      attrIds - 要检索的属性的标识符。null表示应检索所有属性;空数组表示不应检索任何属性。
      返回:
      请求的属性;永不为null
      抛出:
      NamingException - 如果遇到命名异常
    • getAttributes

      public Attributes getAttributes(Name name) throws NamingException
      从接口复制的描述: DirContext
      检索与命名对象关联的所有属性。请参阅有关属性模型、属性类型名称和操作属性的类描述。
      指定者:
      getAttributes 在接口 DirContext
      参数:
      name - 要检索属性的对象的名称
      返回值:
      name关联的属性集。如果name没有属性,则返回一个空属性集;绝不为null。
      抛出:
      NamingException - 如果遇到命名异常
      参见:
    • getAttributes

      public Attributes getAttributes(Name name, String[] attrIds) throws NamingException
      从接口复制的描述: DirContext
      检索与命名对象关联的选定属性。有关属性模型、属性类型名称和操作属性,请参阅类描述。

      如果对象没有指定属性,目录将忽略不存在的属性,并返回对象确实具有的请求属性。

      目录可能返回比请求的属性更多的属性(请参阅类描述中的属性类型名称),但不允许返回任意不相关的属性。

      另请参阅类描述中的操作属性

      指定者:
      getAttributes 在接口 DirContext
      参数:
      name - 要检索属性的对象的名称
      attrIds - 要检索的属性的标识符。null表示应检索所有属性;空数组表示不应检索任何属性。
      返回值:
      请求的属性;绝不为null
      抛出:
      NamingException - 如果遇到命名异常
    • modifyAttributes

      public void modifyAttributes(String name, int mod_op, Attributes attrs) throws NamingException
      从接口复制的描述: DirContext
      修改与命名对象关联的属性。有关详细信息,请参阅DirContext.modifyAttributes(Name, int, Attributes)
      指定者:
      modifyAttributes 在接口 DirContext
      参数:
      name - 将更新其属性的对象的名称
      mod_op - 修改操作,其中之一:ADD_ATTRIBUTEREPLACE_ATTRIBUTEREMOVE_ATTRIBUTE
      attrs - 用于修改的属性;不得为null
      抛出:
      AttributeModificationException - 如果无法成功完成修改
      NamingException - 如果遇到命名异常
    • modifyAttributes

      public void modifyAttributes(Name name, int mod_op, Attributes attrs) throws NamingException
      从接口复制的描述: DirContext
      修改与命名对象关联的属性。未指定修改的顺序。在可能的情况下,修改是原子执行的。
      指定者:
      modifyAttributes 在接口 DirContext
      参数:
      name - 将更新其属性的对象的名称
      mod_op - 修改操作,其中之一:ADD_ATTRIBUTEREPLACE_ATTRIBUTEREMOVE_ATTRIBUTE
      attrs - 用于修改的属性;不得为null
      抛出:
      AttributeModificationException - 如果无法成功完成修改
      NamingException - 如果遇到命名异常
    • modifyAttributes

      public void modifyAttributes(String name, ModificationItem[] mods) throws NamingException
      从接口复制的描述: DirContext
      使用有序修改列表修改与命名对象关联的属性。有关详细信息,请参阅DirContext.modifyAttributes(Name, ModificationItem[])
      指定者:
      modifyAttributes 在接口 DirContext
      参数:
      name - 将更新其属性的对象的名称
      mods - 要执行的有序修改序列;不得为null
      抛出:
      AttributeModificationException - 如果无法成功完成修改
      NamingException - 如果遇到命名异常
    • modifyAttributes

      public void modifyAttributes(Name name, ModificationItem[] mods) throws NamingException
      从接口复制的描述: DirContext
      使用有序修改列表修改与命名对象关联的属性。修改按指定的顺序执行。每个修改指定一个修改操作代码和要操作的属性。在可能的情况下,修改是原子执行的。
      指定者:
      modifyAttributes 在接口 DirContext
      参数:
      name - 将更新其属性的对象的名称
      mods - 要执行的有序修改序列;不得为null
      抛出:
      AttributeModificationException - 如果无法成功完成修改
      NamingException - 如果遇到命名异常
      参见:
    • bind

      public void bind(String name, Object obj, Attributes attrs) throws NamingException
      从接口复制的描述: DirContext
      将名称绑定到对象,并关联属性。有关详细信息,请参阅DirContext.bind(Name, Object, Attributes)
      指定者:
      bind 在接口 DirContext
      参数:
      name - 要绑定的名称;不得为空
      obj - 要绑定的对象;可能为null
      attrs - 与绑定关联的属性
      抛出:
      NameAlreadyBoundException - 如果名称已经绑定
      InvalidAttributesException - 如果未提供绑定的一些“强制”属性
      NamingException - 如果遇到命名异常
    • bind

      public void bind(Name name, Object obj, Attributes attrs) throws NamingException
      从接口复制的描述: DirContext
      将名称绑定到对象,并关联属性。如果attrs为null,则生成的绑定将具有与obj关联的属性(如果objDirContext),否则没有属性。如果attrs为非null,则生成的绑定将具有attrs作为其属性;忽略与obj关联的任何属性。
      指定者:
      bind 在接口 DirContext
      参数:
      name - 要绑定的名称;不能为空
      obj - 要绑定的对象;可能为空
      attrs - 与绑定关联的属性
      抛出:
      NameAlreadyBoundException - 如果名称已经绑定
      InvalidAttributesException - 如果未提供绑定的一些“强制性”属性
      NamingException - 如果遇到命名异常
      参见:
    • rebind

      public void rebind(String name, Object obj, Attributes attrs) throws NamingException
      从接口复制的描述: DirContext
      将名称绑定到对象,并附带关联的属性,覆盖任何现有绑定。有关详细信息,请参阅DirContext.rebind(Name, Object, Attributes)
      指定者:
      rebind 在接口 DirContext
      参数:
      name - 要绑定的名称;不能为空
      obj - 要绑定的对象;可能为空
      attrs - 与绑定关联的属性
      抛出:
      InvalidAttributesException - 如果未提供绑定的一些“强制性”属性
      NamingException - 如果遇到命名异常
    • rebind

      public void rebind(Name name, Object obj, Attributes attrs) throws NamingException
      从接口复制的描述: DirContext
      将名称绑定到对象,并附带关联的属性,覆盖任何现有绑定。如果attrs为null且objDirContext,则使用obj的属性。如果attrs为null且obj不是DirContext,则保持不变与目录中已绑定对象相关联的任何现有属性。如果attrs为非null,则删除与目录中已绑定对象相关联的任何现有属性,并将attrs与命名对象关联。如果objDirContextattrs为非null,则忽略obj的属性。
      指定者:
      rebind 在接口 DirContext
      参数:
      name - 要绑定的名称;不能为空
      obj - 要绑定的对象;可能为空
      attrs - 与绑定关联的属性
      抛出:
      InvalidAttributesException - 如果未提供绑定的一些“强制性”属性
      NamingException - 如果遇到命名异常
      参见:
    • createSubcontext

      public DirContext createSubcontext(String name, Attributes attrs) throws NamingException
      从接口复制的描述: DirContext
      创建并绑定一个新的上下文,并附带关联的属性。有关详细信息,请参阅DirContext.createSubcontext(Name, Attributes)
      指定者:
      createSubcontext 在接口 DirContext
      参数:
      name - 要创建的上下文的名称;不能为空
      attrs - 与新创建的上下文关联的属性
      返回:
      新创建的上下文
      抛出:
      NameAlreadyBoundException - 如果名称已经绑定
      InvalidAttributesException - 如果attrs不包含创建所需的所有强制属性
      NamingException - 如果遇到命名异常
    • createSubcontext

      public DirContext createSubcontext(Name name, Attributes attrs) throws NamingException
      从接口复制的描述: DirContext
      创建并绑定一个新的上下文,并附带关联的属性。此方法使用给定名称创建一个新的子上下文,在目标上下文中绑定它(由名称除了终端原子组件的所有部分命名),并将提供的属性与新创建的对象关联。所有中间和目标上下文必须已经存在。如果attrs为null,则此方法等效于Context.createSubcontext()
      指定者:
      createSubcontext 在接口 DirContext
      参数:
      name - 要创建的上下文的名称;不能为空
      attrs - 与新创建的上下文关联的属性
      返回:
      新创建的上下文
      抛出:
      NameAlreadyBoundException - 如果名称已经绑定
      InvalidAttributesException - 如果attrs不包含创建所需的所有强制属性
      NamingException - 如果遇到命名异常
      参见:
    • getSchema

      public DirContext getSchema(String name) throws NamingException
      从接口复制的描述: DirContext
      检索与命名对象关联的模式。有关详细信息,请参阅DirContext.getSchema(Name)
      指定者:
      getSchema 在接口 DirContext
      参数:
      name - 要检索其模式的对象的名称
      返回:
      与上下文关联的模式;永不为null
      抛出:
      OperationNotSupportedException - 如果不支持模式
      NamingException - 如果遇到命名异常
    • getSchema

      public DirContext getSchema(Name name) throws NamingException
      从接口复制的描述: DirContext
      检索与命名对象关联的模式。模式描述了命名空间的结构和其中存储的属性的规则。模式指定可以添加到目录中的对象类型以及可以添加它们的位置;对象可以具有的强制和可选属性。对模式的支持范围是特定于目录的。

      此方法返回适用于命名对象的模式信息树的根。几个命名对象(甚至整个目录)可能共享相同的模式。

      模式树的结构和内容、修改模式树内容的权限以及此类修改对目录的影响等问题取决于底层目录。

      指定者:
      getSchema 在接口 DirContext
      参数:
      name - 要检索其模式的对象的名称
      返回值:
      与上下文关联的模式;永不为null
      抛出:
      OperationNotSupportedException - 如果不支持模式
      NamingException - 如果遇到命名异常
    • getSchemaClassDefinition

      public DirContext getSchemaClassDefinition(String name) throws NamingException
      从接口复制的描述: DirContext
      检索包含命名对象类定义的模式对象的上下文。有关详细信息,请参见DirContext.getSchemaClassDefinition(Name)
      指定者:
      getSchemaClassDefinition 在接口 DirContext
      参数:
      name - 要检索其对象类定义的对象的名称
      返回值:
      包含命名对象类定义的DirContext;永不为null
      抛出:
      OperationNotSupportedException - 如果不支持模式
      NamingException - 如果遇到命名异常
    • getSchemaClassDefinition

      public DirContext getSchemaClassDefinition(Name name) throws NamingException
      从接口复制的描述: DirContext
      检索包含命名对象类定义的模式对象的上下文。

      在目录模式中找到的信息类别之一是类定义。"对象类"定义指定对象的类型以及对象必须/可以具有的属性(强制和可选)。请注意,这里提到的"对象类"术语是指目录意义上的,而不是Java意义上的。例如,如果命名对象是"Person"类的目录对象,则getSchemaClassDefinition()将返回表示"Person"的(目录的)对象类定义的DirContext

      可以从对象类定义中检索的信息取决于目录。

      在JNDI 1.2之前,此方法返回表示命名对象的类定义的单个模式对象。自JNDI 1.2以来,此方法返回包含所有命名对象类定义的DirContext

      指定者:
      getSchemaClassDefinition 在接口 DirContext
      参数:
      name - 要检索其对象类定义的对象的名称
      返回值:
      包含命名对象类定义的DirContext;永不为null
      抛出:
      OperationNotSupportedException - 如果不支持模式
      NamingException - 如果遇到命名异常
    • search

      public NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes) throws NamingException
      从接口复制的描述: DirContext
      在单个上下文中搜索包含指定属性集的对象。有关详细信息,请参见DirContext.search(Name, Attributes)
      指定者:
      search 在接口 DirContext
      参数:
      name - 要搜索的上下文的名称
      matchingAttributes - 要搜索的属性
      返回值:
      SearchResult对象的枚举
      抛出:
      NamingException - 如果遇到命名异常
    • search

      public NamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes) throws NamingException
      从接口复制的描述: DirContext
      在单个上下文中搜索包含指定属性集的对象。此方法返回这些对象的所有属性。等效于将null作为attributesToReturn参数提供给search(Name, Attributes, String[])方法。
      有关详细信息,请参见DirContext.search(Name, Attributes, String[])
      指定者:
      search 在接口 DirContext
      参数:
      name - 要搜索的上下文的名称
      matchingAttributes - 要搜索的属性
      返回值:
      SearchResult对象的枚举
      抛出:
      NamingException - 如果遇到命名异常
      另请参见:
    • search

      public NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException
      从接口复制的描述: DirContext
      在单个上下文中搜索包含指定属性集的对象,并检索选定的属性。有关详细信息,请参见DirContext.search(Name, Attributes, String[])
      指定者:
      search 在接口 DirContext
      参数:
      name - 要搜索的上下文的名称
      matchingAttributes - 要搜索的属性
      attributesToReturn - 要返回的属性
      返回值:
      SearchResult对象的非null枚举
      抛出:
      NamingException - 如果遇到命名异常
    • search

      public NamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException
      从接口复制的描述: DirContext
      在单个上下文中搜索包含指定属性集的对象,并检索选定的属性。使用默认的SearchControls设置执行搜索。

      要选择对象,matchingAttributes中的每个属性必须与对象的某个属性匹配。如果matchingAttributes为空或为null,则返回目标上下文中的所有对象。

      matchingAttributes中的属性A1被认为与对象的属性A2匹配,如果A1A2具有相同的标识符,并且A1的每个值等于A2的某个值。这意味着值的顺序不重要,并且A2可能包含不在A1中找到的"额外"值而不影响比较。这也意味着如果A1没有值,则测试匹配等同于测试具有相同标识符的属性A2的存在。

      用于比较属性值的"相等性"的精确定义由底层目录服务定义。例如,它可能使用Object.equals方法,或者可能使用模式指定不同的相等性操作。对于基于除相等性之外的操作进行匹配(例如子字符串比较),请使用带有过滤器参数的search方法的版本。

      对此DirContext进行更改时,对此方法的先前调用返回的枚举的影响是未定义的。

      如果对象没有指定的属性,目录将忽略不存在的属性并返回对象确实具有的请求属性。

      目录可能返回比请求的更多属性(请参见类描述中的属性类型名称),但不允许返回任意的不相关属性。

      另请参见类描述中的操作属性

      指定者:
      search 在接口 DirContext
      参数:
      name - 要搜索的上下文的名称
      matchingAttributes - 要搜索的属性。如果为空或为null,则返回目标上下文中的所有对象。
      attributesToReturn - 要返回的属性。null表示返回所有属性;空数组表示不返回任何属性。
      返回:
      一个非空的SearchResult对象的枚举。每个SearchResult包含由attributesToReturn标识的属性和相应对象的名称,相对于由name指定的上下文命名。
      抛出:
      NamingException - 如果遇到命名异常
      参见:
    • search

      public NamingEnumeration<SearchResult> search(String name, String filter, SearchControls cons) throws NamingException
      从接口复制的描述: DirContext
      在指定的上下文或对象中搜索满足给定搜索过滤器的条目。根据搜索控件执行搜索。有关详细信息,请参阅DirContext.search(Name, String, SearchControls)
      指定者:
      search 在接口 DirContext
      参数:
      name - 要搜索的上下文或对象的名称
      filter - 用于搜索的过滤表达式;不得为null
      cons - 控制搜索的搜索控件。如果为null,则使用默认搜索控件(等效于(new SearchControls()))。
      返回:
      满足过滤器的对象的SearchResult的枚举。
      抛出:
      InvalidSearchFilterException - 如果底层目录不支持或不理解指定的搜索过滤器
      InvalidSearchControlsException - 如果搜索控件包含无效设置
      NamingException - 如果遇到命名异常
    • search

      public NamingEnumeration<SearchResult> search(Name name, String filter, SearchControls cons) throws NamingException
      从接口复制的描述: DirContext
      在指定的上下文或对象中搜索满足给定搜索过滤器的条目。根据搜索控件执行搜索。

      filter的格式和解释遵循RFC 2254,其中RFC中提到的attrvalue的解释如下。

      attr是属性的标识符。

      value是属性值的字符串表示。将此字符串表示转换为属性值是特定于目录的。

      例如,对于断言"someCount=127",attr是"someCount",value是"127"。提供程序根据属性ID("someCount")(以及可能的模式)确定属性值是整数。然后适当解析字符串"127"。

      过滤字符串中的任何非ASCII字符应由适当的Java(Unicode)字符表示,而不是编码为UTF-8八位组。或者,可以使用RFC 2254中描述的"反斜杠十六进制码"表示法。

      如果目录不支持其某些或所有属性的字符串表示,则可以使用接受对象形式的过滤参数的search形式。这样的目录的服务提供程序将过滤参数转换为其用于过滤评估的服务特定表示。请参阅search(Name, String, Object[], SearchControls)

      RFC 2254为过滤器定义了某些运算符,包括子字符串匹配、相等、近似匹配、大于、小于。这些运算符映射到底层目录中具有相应语义的运算符。例如,对于等于运算符,假设目录具有定义过滤器中属性的"相等性"的匹配规则。此规则将用于检查过滤器中指定的属性与目录中对象的属性的相等性。类似地,如果目录具有用于排序的匹配规则,则将使用此规则进行"大于"和"小于"比较。

      RFC 2254中定义的所有运算符并非都适用于所有属性。当运算符不适用时,将抛出异常InvalidSearchFilterException

      结果以SearchResult的枚举形式返回。每个SearchResult包含对象的名称和关于对象的其他信息(请参阅SearchResult)。名称是相对于搜索的目标上下文(由name参数命名)的,或者是URL字符串。如果目标上下文包含在枚举中(当cons指定搜索范围为SearchControls.OBJECT_SCOPESearchControls.SUBSTREE_SCOPE时可能发生),其名称为空字符串。如果cons参数指定返回属性,则SearchResult还可以包含匹配对象的属性。

      如果对象没有请求的属性,则将忽略该不存在的属性。对象具有的那些请求的属性将被返回。

      目录可能返回比请求的属性更多的属性(请参阅类描述中的属性类型名称),但不允许返回任意不相关的属性。

      另请参阅类描述中的操作属性

      指定者:
      search 在接口 DirContext
      参数:
      name - 要搜索的上下文或对象的名称
      filter - 用于搜索的过滤表达式;不得为null
      cons - 控制搜索的搜索控件。如果为null,则使用默认搜索控件(等效于(new SearchControls()))。
      返回:
      满足过滤器的对象的SearchResult的枚举;永不为null
      抛出:
      InvalidSearchFilterException - 如果底层目录不支持或不理解指定的搜索过滤器
      InvalidSearchControlsException - 如果搜索控件包含无效设置
      NamingException - 如果遇到命名异常
      参见:
    • search

      public NamingEnumeration<SearchResult> search(String name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException
      从接口复制的描述: DirContext
      在指定的上下文或对象中搜索满足给定搜索过滤器的条目。根据搜索控件执行搜索。有关详细信息,请参阅DirContext.search(Name, String, Object[], SearchControls)
      指定者:
      search 在接口 DirContext
      参数:
      name - 要搜索的上下文或对象的名称
      filterExpr - 用于搜索的过滤表达式。表达式可以包含形式为"{i}"的变量,其中i是非负整数。不能为null。
      filterArgs - 用于替换filterExpr中变量的参数数组。filterArgs[i]的值将替换"{i}"的每个出现。如果为null,则相当于一个空数组。
      cons - 控制搜索的搜索控件。如果为null,则使用默认的搜索控件(相当于(new SearchControls()))。
      返回:
      满足过滤条件的对象的SearchResult的枚举;永不为null
      抛出:
      InvalidSearchControlsException - 如果cons包含无效设置
      InvalidSearchFilterException - 如果filterExprfilterArgs表示无效的搜索过滤器
      NamingException - 如果遇到命名异常
    • search

      public NamingEnumeration<SearchResult> search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException
      从接口复制的描述: DirContext
      在指定的上下文或对象中搜索满足给定搜索过滤器的条目。根据搜索控件执行搜索。

      filterExpr的解释基于RFC 2254。它还可以包含形式为{i}的变量,其中i是整数,指的是filterArgs数组中的对象。否则,filterExpr的解释与方法search(Name, String, SearchControls)filter参数的解释相同。

      当搜索过滤器中出现变量{i}时,表示该位置将使用过滤器参数filterArgs[i]。这样的变量可以用于搜索过滤器语法中的attrvaluematchingrule产生的任何地方。当将字符串值的过滤器参数替换为变量时,过滤器将被解释为如果字符串替换为变量,则其中具有特殊意义的任何字符(如'*')都已根据RFC 2254的规则进行了转义。

      对于不使用字符串表示形式的目录的某些或所有属性的目录,与属性值对应的过滤器参数可能是String以外的类型。例如,支持非结构化二进制值属性的目录应接受字节数组作为过滤器参数。任何其他类型的过滤器参数的解释(如果有)由该目录的服务提供程序确定,该服务提供程序将过滤操作映射到底层目录中具有相应语义的操作。

      此方法返回结果的枚举。枚举中的每个元素都包含对象的名称和关于对象的其他信息(请参阅SearchResult)。名称要么相对于搜索的目标上下文(由name参数命名),要么是URL字符串。如果目标上下文包含在枚举中(当cons指定搜索范围为SearchControls.OBJECT_SCOPESearchControls.SUBSTREE_SCOPE时可能发生),其名称为空字符串。

      SearchResult还可以包含匹配对象的属性,如果cons参数指定返回属性。

      如果对象没有请求的属性,将忽略该不存在的属性。对象具有的那些请求的属性将被返回。

      目录可能返回比请求的属性更多的属性(请参阅类描述中的属性类型名称),但不允许返回任意的不相关属性。

      如果向此方法提供具有无效变量替换的搜索过滤器,则结果是未定义的。对此DirContext进行更改时,对此方法的先前调用返回的枚举的影响是未定义的。

      另请参阅类描述中的操作属性

      指定者:
      search 在接口 DirContext
      参数:
      name - 要搜索的上下文或对象的名称
      filterExpr - 用于搜索的过滤表达式。表达式可以包含形式为"{i}"的变量,其中i是非负整数。不能为null。
      filterArgs - 用于替换filterExpr中变量的参数数组。filterArgs[i]的值将替换"{i}"的每个出现。如果为null,则相当于一个空数组。
      cons - 控制搜索的搜索控件。如果为null,则使用默认的搜索控件(相当于(new SearchControls()))。
      返回:
      满足过滤条件的对象的SearchResult的枚举;永不为null
      抛出:
      InvalidSearchControlsException - 如果cons包含无效设置
      InvalidSearchFilterException - 如果filterExprfilterArgs表示无效的搜索过滤器
      NamingException - 如果遇到命名异常
      另请参阅: