- 所有已实现的接口:
Context
,DirContext
- 已知子类:
InitialLdapContext
- 自从:
- 1.3
- 参见:
-
字段摘要
在类 javax.naming.InitialContext 中声明的字段
defaultInitCtx, gotDefault, myProps
在接口 javax.naming.Context 中声明的字段
APPLET, AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES
在接口 javax.naming.directory.DirContext 中声明的字段
ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE
-
构造方法总结
构造方法修饰符构造方法描述构造初始 DirContext。protected
InitialDirContext
(boolean lazy) 构造一个初始 DirContext,并可选择不对其进行初始化。InitialDirContext
(Hashtable<?, ?> environment) 使用提供的环境构造初始 DirContext。 -
方法总结
修饰符和类型方法描述void
bind
(String name, Object obj, Attributes attrs) 将名称连同关联的属性绑定到对象。void
bind
(Name name, Object obj, Attributes attrs) 将名称连同关联的属性绑定到对象。createSubcontext
(String name, Attributes attrs) 创建并绑定新的上下文以及关联的属性。createSubcontext
(Name name, Attributes attrs) 创建并绑定新的上下文以及关联的属性。getAttributes
(String name) 检索与命名对象关联的所有属性。getAttributes
(String name, String[] attrIds) 检索与命名对象关联的选定属性。getAttributes
(Name name) 检索与命名对象关联的所有属性。getAttributes
(Name name, String[] attrIds) 检索与命名对象关联的选定属性。检索与命名对象关联的模式。检索与命名对象关联的模式。检索包含命名对象的类定义的架构对象的上下文。getSchemaClassDefinition
(Name name) 检索包含命名对象的类定义的架构对象的上下文。void
modifyAttributes
(String name, int mod_op, Attributes attrs) 修改与命名对象关联的属性。void
modifyAttributes
(String name, ModificationItem[] mods) 使用有序的修改列表修改与命名对象关联的属性。void
modifyAttributes
(Name name, int mod_op, Attributes attrs) 修改与命名对象关联的属性。void
modifyAttributes
(Name name, ModificationItem[] mods) 使用有序的修改列表修改与命名对象关联的属性。void
rebind
(String name, Object obj, Attributes attrs) 将名称连同关联的属性绑定到对象,重写任何现有绑定。void
rebind
(Name name, Object obj, Attributes attrs) 将名称连同关联的属性绑定到对象,重写任何现有绑定。search
(String name, String filterExpr, Object[] filterArgs, SearchControls cons) 在命名上下文或对象中搜索满足给定搜索过滤器的条目。search
(String name, String filter, SearchControls cons) 在命名上下文或对象中搜索满足给定搜索过滤器的条目。search
(String name, Attributes matchingAttributes) 在单个上下文中搜索包含一组指定属性的对象。search
(String name, Attributes matchingAttributes, String[] attributesToReturn) 在单个上下文中搜索包含一组指定属性的对象,并检索选定的属性。search
(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) 在命名上下文或对象中搜索满足给定搜索过滤器的条目。search
(Name name, String filter, SearchControls cons) 在命名上下文或对象中搜索满足给定搜索过滤器的条目。search
(Name name, Attributes matchingAttributes) 在单个上下文中搜索包含一组指定属性的对象。search
(Name name, Attributes matchingAttributes, String[] attributesToReturn) 在单个上下文中搜索包含一组指定属性的对象,并检索选定的属性。在类 javax.naming.InitialContext 中声明的方法
addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, doLookup, doLookup, getDefaultInitCtx, getEnvironment, getNameInNamespace, getNameParser, getNameParser, getURLOrDefaultInitCtx, getURLOrDefaultInitCtx, init, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind
在类 java.lang.Object 中声明的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
在接口 javax.naming.Context 中声明的方法
addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getEnvironment, getNameInNamespace, getNameParser, getNameParser, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind
-
构造方法详细信息
-
InitialDirContext
构造一个初始 DirContext,并可选择不对其进行初始化。当调用InitialDirContext
构造函数时环境参数的值未知时,子类中的构造函数可能会使用它。子类的构造函数将调用此构造函数,计算环境值,然后在返回前调用init()
。- 参数:
lazy
- true 表示不初始化初始 DirContext; false 相当于调用new InitialDirContext()
- 抛出:
NamingException
- 如果遇到命名异常- 自从:
- 1.3
- 参见:
-
InitialDirContext
构造初始 DirContext。没有提供环境属性。相当于new InitialDirContext(null)
。- 抛出:
NamingException
- 如果遇到命名异常- 参见:
-
InitialDirContext
使用提供的环境构造初始 DirContext。javax.naming.InitialContext
类描述中讨论了环境属性。如果所提供环境的
java.naming.provider.url
属性包含使用 ldap 协议的 URL(或 URL 列表),则生成的LdapContext
将使用由配置的LdapDnsProviders
解析的 LDAP 服务:- 如果这是使用 ldap 协议与
java.naming.provider.url
创建的第一个InitialDirContext
,则使用 ServiceLoader 机制来使用系统类加载器定位 LdapDnsProvider 实现。提供者定位的顺序是特定于实现的,实现可以自由缓存定位的提供者。 - 每个提供者的
lookupEndpoints
方法(如果已实例化)将使用java.naming.provider.url
属性中的每个 URL 和环境的组合调用一次,直到提供者返回非空或所有提供者都已用尽。如果 LdapDnsProviders 均未返回非空 result,则实现将尽最大努力确定端点。加载或调用 LdapDnsProvider 时抛出的 ServiceConfigurationError、Error
或RuntimeException
(如果遇到)将传播到调用线程。
此构造函数不会修改
environment
或保存对它的引用,但可能会保存一个克隆。environment
传递给构造函数后,调用者不应修改可变键和值。- 参数:
environment
- 用于创建初始 DirContext 的环境。 Null 表示空环境。- 抛出:
NamingException
- 如果遇到命名异常
- 如果这是使用 ldap 协议与
-
-
方法详情
-
getAttributes
从接口DirContext
复制的描述检索与命名对象关联的所有属性。有关详细信息,请参阅DirContext.getAttributes(Name)
。- 指定者:
getAttributes
在接口DirContext
中- 参数:
name
- 从中检索属性的对象的名称- 返回:
-
与
name
关联的属性集 - 抛出:
NamingException
- 如果遇到命名异常
-
getAttributes
从接口DirContext
复制的描述检索与命名对象关联的选定属性。有关详细信息,请参阅DirContext.getAttributes(Name, String[])
。- 指定者:
getAttributes
在接口DirContext
中- 参数:
name
- 从中检索属性的对象的名称attrIds
- 要检索的属性的标识符。 null 表示应检索所有属性;空数组表示不应检索任何内容。- 返回:
- 请求的属性;永不为空
- 抛出:
NamingException
- 如果遇到命名异常
-
getAttributes
从接口DirContext
复制的描述检索与命名对象关联的所有属性。请参阅有关属性模型、属性类型名称和操作属性的类描述。- 指定者:
getAttributes
在接口DirContext
中- 参数:
name
- 从中检索属性的对象的名称- 返回:
-
与
name
关联的属性集。如果名称没有属性,则返回空属性集;从不为空。 - 抛出:
NamingException
- 如果遇到命名异常- 参见:
-
getAttributes
从接口DirContext
复制的描述检索与命名对象关联的选定属性。请参阅有关属性模型、属性类型名称和操作属性的类描述。如果对象没有指定属性,目录将忽略不存在的属性并返回对象确实具有的请求属性。
目录可能会返回比请求更多的属性(请参阅类描述中的 Attribute Type Names),但不允许返回任意的、不相关的属性。
另请参阅类描述中的 Operational Attributes。
- 指定者:
getAttributes
在接口DirContext
中- 参数:
name
- 从中检索属性的对象的名称attrIds
- 要检索的属性的标识符。 null 表示应检索所有属性;空数组表示不应检索任何内容。- 返回:
- 请求的属性;永不为空
- 抛出:
NamingException
- 如果遇到命名异常
-
modifyAttributes
从接口DirContext
复制的描述修改与命名对象关联的属性。有关详细信息,请参阅DirContext.modifyAttributes(Name, int, Attributes)
。- 指定者:
modifyAttributes
在接口DirContext
中- 参数:
name
- 属性将被更新的对象的名称mod_op
- 修改操作,其中之一:ADD_ATTRIBUTE
、REPLACE_ATTRIBUTE
、REMOVE_ATTRIBUTE
。attrs
- 用于修改的属性;不能为空- 抛出:
AttributeModificationException
- 如果修改不能成功完成NamingException
- 如果遇到命名异常
-
modifyAttributes
从接口DirContext
复制的描述修改与命名对象关联的属性。未指定修改的顺序。在可能的情况下,修改以原子方式执行。- 指定者:
modifyAttributes
在接口DirContext
中- 参数:
name
- 属性将被更新的对象的名称mod_op
- 修改操作,其中之一:ADD_ATTRIBUTE
、REPLACE_ATTRIBUTE
、REMOVE_ATTRIBUTE
。attrs
- 用于修改的属性;不能为空- 抛出:
AttributeModificationException
- 如果修改不能成功完成NamingException
- 如果遇到命名异常- 参见:
-
modifyAttributes
从接口DirContext
复制的描述使用有序的修改列表修改与命名对象关联的属性。有关详细信息,请参阅DirContext.modifyAttributes(Name, ModificationItem[])
。- 指定者:
modifyAttributes
在接口DirContext
中- 参数:
name
- 属性将被更新的对象的名称mods
- 要执行的修改的有序序列;不能为空- 抛出:
AttributeModificationException
- 如果修改不能成功完成NamingException
- 如果遇到命名异常
-
modifyAttributes
从接口DirContext
复制的描述使用有序的修改列表修改与命名对象关联的属性。修改按指定的顺序执行。每个修改指定一个修改操作代码和一个对其进行操作的属性。在可能的情况下,修改以原子方式执行。- 指定者:
modifyAttributes
在接口DirContext
中- 参数:
name
- 属性将被更新的对象的名称mods
- 要执行的修改的有序序列;不能为空- 抛出:
AttributeModificationException
- 如果修改不能成功完成NamingException
- 如果遇到命名异常- 参见:
-
bind
从接口DirContext
复制的描述将名称连同关联的属性绑定到对象。有关详细信息,请参阅DirContext.bind(Name, Object, Attributes)
。- 指定者:
bind
在接口DirContext
中- 参数:
name
- 要绑定的名称;可能不为空obj
- 要绑定的对象;可能为空attrs
- 与绑定关联的属性- 抛出:
NameAlreadyBoundException
- 如果名称已经绑定InvalidAttributesException
- 如果未提供绑定的某些“强制”属性NamingException
- 如果遇到命名异常
-
bind
从接口DirContext
复制的描述将名称连同关联的属性绑定到对象。如果attrs
为 null,如果obj
为DirContext
,则生成的绑定将具有与obj
关联的属性,否则没有属性。如果attrs
不为空,则生成的绑定将具有attrs
作为其属性;与obj
关联的任何属性都将被忽略。- 指定者:
bind
在接口DirContext
中- 参数:
name
- 要绑定的名称;可能不为空obj
- 要绑定的对象;可能为空attrs
- 与绑定关联的属性- 抛出:
NameAlreadyBoundException
- 如果名称已经绑定InvalidAttributesException
- 如果未提供绑定的某些“强制”属性NamingException
- 如果遇到命名异常- 参见:
-
rebind
从接口DirContext
复制的描述将名称连同关联的属性绑定到对象,覆盖任何现有绑定。有关详细信息,请参阅DirContext.rebind(Name, Object, Attributes)
。- 指定者:
rebind
在接口DirContext
中- 参数:
name
- 要绑定的名称;可能不为空obj
- 要绑定的对象;可能为空attrs
- 与绑定关联的属性- 抛出:
InvalidAttributesException
- 如果未提供绑定的某些“强制”属性NamingException
- 如果遇到命名异常
-
rebind
从接口DirContext
复制的描述将名称连同关联的属性绑定到对象,覆盖任何现有绑定。如果attrs
为空且obj
为DirContext
,则使用obj
中的属性。如果attrs
为空且obj
不是DirContext
,则与已绑定在目录中的对象关联的任何现有属性保持不变。如果attrs
不为空,则删除与目录中已绑定的对象关联的任何现有属性,并将attrs
与命名对象关联。如果obj
是DirContext
且attrs
非空,则忽略obj
的属性。- 指定者:
rebind
在接口DirContext
中- 参数:
name
- 要绑定的名称;可能不为空obj
- 要绑定的对象;可能为空attrs
- 与绑定关联的属性- 抛出:
InvalidAttributesException
- 如果未提供绑定的某些“强制”属性NamingException
- 如果遇到命名异常- 参见:
-
createSubcontext
从接口DirContext
复制的描述创建并绑定新的上下文以及关联的属性。有关详细信息,请参阅DirContext.createSubcontext(Name, Attributes)
。- 指定者:
createSubcontext
在接口DirContext
中- 参数:
name
- 要创建的上下文的名称;可能不为空attrs
- 与新创建的上下文关联的属性- 返回:
- 新创建的上下文
- 抛出:
NameAlreadyBoundException
- 如果名称已经绑定InvalidAttributesException
- 如果attrs
不包含创建所需的所有强制属性NamingException
- 如果遇到命名异常
-
createSubcontext
从接口DirContext
复制的描述创建并绑定新的上下文以及关联的属性。此方法使用给定的名称创建一个新的子上下文,将其绑定到目标上下文(由名称的终端原子组件以外的所有内容命名),并将提供的属性与新创建的对象相关联。所有中间上下文和目标上下文必须已经存在。如果attrs
为 null,则此方法等效于Context.createSubcontext()
。- 指定者:
createSubcontext
在接口DirContext
中- 参数:
name
- 要创建的上下文的名称;可能不为空attrs
- 与新创建的上下文关联的属性- 返回:
- 新创建的上下文
- 抛出:
NameAlreadyBoundException
- 如果名称已经绑定InvalidAttributesException
- 如果attrs
不包含创建所需的所有强制属性NamingException
- 如果遇到命名异常- 参见:
-
getSchema
从接口DirContext
复制的描述检索与命名对象关联的模式。有关详细信息,请参阅DirContext.getSchema(Name)
。- 指定者:
getSchema
在接口DirContext
中- 参数:
name
- 要检索其模式的对象的名称- 返回:
- 与上下文关联的模式;永不为空
- 抛出:
OperationNotSupportedException
- 如果模式不受支持NamingException
- 如果遇到命名异常
-
getSchema
从接口DirContext
复制的描述检索与命名对象关联的模式。该模式描述了有关命名空间结构和其中存储的属性的规则。架构指定了哪些类型的对象可以添加到目录中以及可以添加到哪里;对象可以具有哪些强制性和可选属性。模式的支持范围是特定于目录的。此方法返回适用于命名对象的模式信息树的根。几个命名对象(甚至整个目录)可能共享相同的模式。
架构树的结构和内容、修改架构树内容的权限以及此类修改对目录的影响等问题都取决于底层目录。
- 指定者:
getSchema
在接口DirContext
中- 参数:
name
- 要检索其模式的对象的名称- 返回:
- 与上下文关联的模式;永不为空
- 抛出:
OperationNotSupportedException
- 如果模式不受支持NamingException
- 如果遇到命名异常
-
getSchemaClassDefinition
从接口DirContext
复制的描述检索包含命名对象的类定义的架构对象的上下文。有关详细信息,请参阅DirContext.getSchemaClassDefinition(Name)
。- 指定者:
getSchemaClassDefinition
在接口DirContext
中- 参数:
name
- 要检索其对象类定义的对象的名称- 返回:
DirContext
包含命名对象的类定义;永不为空- 抛出:
OperationNotSupportedException
- 如果模式不受支持NamingException
- 如果遇到命名异常
-
getSchemaClassDefinition
从接口DirContext
复制的描述检索包含命名对象的类定义的架构对象的上下文。在目录架构中找到的一类信息是 class definitions 。 “对象类”定义指定对象的type 以及对象必须/可以具有的属性(强制和可选)。请注意,这里提到的术语“对象类”是目录意义上的,而不是 Java 意义上的。例如,如果命名对象是“Person”类的目录对象,
getSchemaClassDefinition()
将返回一个DirContext
表示(目录的)对象类定义“Person”。可以从对象类定义中检索的信息是依赖于目录的。
在 JNDI 1.2 之前,此方法返回表示命名对象的类定义的单个模式对象。从 JNDI 1.2 开始,此方法返回一个包含所有命名对象的类定义的
DirContext
。- 指定者:
getSchemaClassDefinition
在接口DirContext
中- 参数:
name
- 要检索其对象类定义的对象的名称- 返回:
DirContext
包含命名对象的类定义;永不为空- 抛出:
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
对象的非空枚举- 抛出:
NamingException
- 如果遇到命名异常
-
search
public NamingEnumeration <SearchResult > search(Name name, Attributes matchingAttributes, String [] attributesToReturn) throws NamingException 从接口DirContext
复制的描述在单个上下文中搜索包含一组指定属性的对象,并检索选定的属性。使用默认的SearchControls
设置执行搜索。对于要选择的对象,
matchingAttributes
中的每个属性都必须与对象的某些属性相匹配。如果matchingAttributes
为空或 null,则返回目标上下文中的所有对象。一个属性A1在
matchingAttributes
中被认为与属性 A 匹配2对象的 if A1和A2具有相同的标识符,并且A的每个值1等于 A 的某个值2.这意味着值的顺序并不重要,而且A2可能包含在 A 中找不到的“额外”值1不影响比较。这也意味着如果A1没有值,则测试匹配等同于测试属性 A 是否存在2具有相同的标识符。用于比较属性值的“相等性”的精确定义由底层目录服务定义。例如,它可能使用
Object.equals
方法,或者可能使用模式来指定不同的相等操作。对于基于除相等性以外的操作(例如子字符串比较)的匹配,请使用带有过滤器参数的search
方法版本。当对此
DirContext
进行更改时,对先前调用此方法返回的枚举的影响是不确定的。如果对象没有指定的属性,目录将忽略不存在的属性并返回对象确实具有的请求属性。
目录可能会返回比请求更多的属性(请参阅类描述中的 Attribute Type Names),但不允许返回任意的、不相关的属性。
另请参阅类描述中的 Operational Attributes。
- 指定者:
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
- 用于搜索的过滤器表达式;不能为空cons
- 控制搜索的搜索控件。如果为空,则使用默认搜索控件(相当于(new SearchControls())
)。- 返回:
-
满足过滤器的对象的
SearchResult
枚举。 - 抛出:
InvalidSearchFilterException
- 如果底层目录不支持或不理解指定的搜索过滤器InvalidSearchControlsException
- 如果搜索控件包含无效设置NamingException
- 如果遇到命名异常
-
search
public NamingEnumeration <SearchResult > search(Name name, String filter, SearchControls cons) throws NamingException 从接口DirContext
复制的描述在命名上下文或对象中搜索满足给定搜索过滤器的条目。按照搜索控件的指定执行搜索。filter
的格式和解释遵循 RFC 2254,RFC 中提到的attr
和value
的解释如下。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
s 的枚举形式返回。每个SearchResult
包含对象的名称和有关该对象的其他信息(请参阅 SearchResult)。该名称要么是相对于搜索的目标上下文(由name
参数命名),要么是一个 URL 字符串。如果目标上下文包含在枚举中(当cons
指定搜索范围为SearchControls.OBJECT_SCOPE
或SearchControls.SUBSTREE_SCOPE
时可能),则其名称为空字符串。如果cons
参数指定返回属性,则SearchResult
也可能包含匹配对象的属性。如果对象没有请求的属性,则该不存在的属性将被忽略。对象确实具有的那些请求的属性将被返回。
目录可能会返回比请求更多的属性(请参阅类描述中的 Attribute Type Names),但不允许返回任意的、不相关的属性。
另请参阅类描述中的 Operational Attributes。
- 指定者:
search
在接口DirContext
中- 参数:
name
- 要搜索的上下文或对象的名称filter
- 用于搜索的过滤器表达式;不能为空cons
- 控制搜索的搜索控件。如果为空,则使用默认搜索控件(相当于(new SearchControls())
)。- 返回:
-
满足过滤器的对象的
SearchResult
枚举;永不为空 - 抛出:
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
是一个非负整数。不能为空。filterArgs
- 用于替换filterExpr
中变量的参数数组。filterArgs[i]
的值将替换每次出现的“{i}
”。如果为null,相当于一个空数组。cons
- 控制搜索的搜索控件。如果为空,则使用默认搜索控件(相当于(new SearchControls())
)。- 返回:
-
满足过滤器的对象的
SearchResult
枚举;永不为空 - 抛出:
InvalidSearchControlsException
- 如果cons
包含无效设置InvalidSearchFilterException
- 如果filterExpr
和filterArgs
表示无效的搜索过滤器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]
。此类变量可用于 attr 、 value 或 matchingrule 产生式出现在 RFC 2254 第 4 节的过滤器语法中的任何地方。当字符串值过滤器参数替换变量时,过滤器被解释为好像字符串是在变量的位置,过滤器中具有特殊意义的任何字符(例如'*'
)已根据 RFC 2254 的规则进行了转义。对于部分或全部属性不使用字符串表示的目录,对应于属性值的过滤器参数可能是 String 以外的类型。例如,支持非结构化二进制值属性的目录应该接受字节数组作为过滤器参数。任何其他类型的过滤器参数的解释(如果有的话)由该目录的服务提供者确定,它将过滤器操作映射到底层目录中具有相应语义的操作。
此方法返回结果的枚举。枚举中的每个元素都包含对象的名称和有关对象的其他信息(请参阅
SearchResult
)。该名称要么是相对于搜索的目标上下文(由name
参数命名),要么是一个 URL 字符串。如果目标上下文包含在枚举中(当cons
指定搜索范围为SearchControls.OBJECT_SCOPE
或SearchControls.SUBSTREE_SCOPE
时可能),则其名称为空字符串。如果
cons
参数指定返回属性,SearchResult
也可能包含匹配对象的属性。如果对象没有请求的属性,则该不存在的属性将被忽略。对象确实具有的那些请求的属性将被返回。
目录可能会返回比请求更多的属性(请参阅类描述中的 Attribute Type Names),但不允许返回任意的、不相关的属性。
如果向此方法提供具有无效变量替换的搜索过滤器,则结果未定义。对此 DirContext 进行更改时,对先前调用此方法返回的枚举的影响是不确定的。
另请参阅类描述中的 Operational Attributes。
- 指定者:
search
在接口DirContext
中- 参数:
name
- 要搜索的上下文或对象的名称filterExpr
- 用于搜索的过滤器表达式。该表达式可能包含“{i}
”形式的变量,其中i
是一个非负整数。不能为空。filterArgs
- 用于替换filterExpr
中变量的参数数组。filterArgs[i]
的值将替换每次出现的“{i}
”。如果为null,相当于一个空数组。cons
- 控制搜索的搜索控件。如果为空,则使用默认搜索控件(相当于(new SearchControls())
)。- 返回:
-
满足过滤器的对象的
SearchResult
枚举;永不为空 - 抛出:
InvalidSearchControlsException
- 如果cons
包含无效设置InvalidSearchFilterException
- 如果filterExpr
和filterArgs
表示无效的搜索过滤器NamingException
- 如果遇到命名异常- 参见:
-