- 所有已实现的接口:
-
Context
,DirContext
- 直接已知的子类:
-
InitialLdapContext
- 自从:
- 1.3
- 参见:
-
Field Summary
Fields declared in class javax.naming.InitialContext
defaultInitCtx, gotDefault, myProps
Fields declared in interface 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
Fields declared in interface javax.naming.directory.DirContext
ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE
-
Constructor Summary
ModifierConstructorDescription构造一个初始的DirContext。protected
InitialDirContext
(boolean lazy) 构造一个初始的DirContext,并提供不初始化的选项。InitialDirContext
(Hashtable<?, ?> environment) 使用提供的环境构造一个初始的DirContext。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
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) 在单个上下文中搜索包含指定属性集的对象,并检索选定的属性。Methods declared in class 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
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods declared in interface 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
-
Constructor Details
-
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返回非空的结果,则实现将尽力确定一个端点。在加载或调用LdapDnsProvider时遇到的ServiceConfigurationError、Error或RuntimeException,如果有的话,将传播到调用线程。
此构造函数不会修改environment或保存对其的引用,但可能会保存一个克隆。调用者不应在传递给构造函数后修改environment中的可变键和值。
- 参数:
-
environment
- 用于创建初始DirContext的环境。Null表示空环境。 - 抛出:
-
NamingException
- 如果遇到命名异常
-
-
Method Details
-
getAttributes
从接口复制的描述:DirContext
检索与命名对象关联的所有属性。有关详细信息,请参阅DirContext.getAttributes(Name)
。- 在接口中指定:
-
getAttributes
在接口DirContext
- 参数:
-
name
- 要检索属性的对象的名称 - 返回:
-
与
name
关联的属性集 - 抛出:
-
NamingException
- 如果遇到命名异常
-
getAttributes
从接口复制的描述:DirContext
检索与命名对象关联的选定属性。有关详细信息,请参阅DirContext.getAttributes(Name, String[])
。- 在接口中指定:
-
getAttributes
在接口DirContext
- 参数:
-
name
- 要检索属性的对象的名称 -
attrIds
- 要检索的属性的标识符。null表示应检索所有属性;空数组表示不应检索任何属性。 - 返回:
- 请求的属性;永不为null
- 抛出:
-
NamingException
- 如果遇到命名异常
-
getAttributes
从接口复制的描述:DirContext
检索与命名对象关联的所有属性。请参阅有关属性模型、属性类型名称和操作属性的类描述。- 指定者:
-
getAttributes
在接口DirContext
中 - 参数:
-
name
- 要检索属性的对象的名称 - 返回值:
-
与
name
关联的属性集。如果name
没有属性,则返回一个空属性集;绝不为null。 - 抛出:
-
NamingException
- 如果遇到命名异常 - 参见:
-
getAttributes
从接口复制的描述:DirContext
检索与命名对象关联的选定属性。有关属性模型、属性类型名称和操作属性,请参阅类描述。如果对象没有指定属性,目录将忽略不存在的属性,并返回对象确实具有的请求属性。
目录可能返回比请求的属性更多的属性(请参阅类描述中的属性类型名称),但不允许返回任意不相关的属性。
另请参阅类描述中的操作属性。
- 指定者:
-
getAttributes
在接口DirContext
中 - 参数:
-
name
- 要检索属性的对象的名称 -
attrIds
- 要检索的属性的标识符。null表示应检索所有属性;空数组表示不应检索任何属性。 - 返回值:
- 请求的属性;绝不为null
- 抛出:
-
NamingException
- 如果遇到命名异常
-
modifyAttributes
从接口复制的描述:DirContext
修改与命名对象关联的属性。有关详细信息,请参阅DirContext.modifyAttributes(Name, int, Attributes)
。- 指定者:
-
modifyAttributes
在接口DirContext
中 - 参数:
-
name
- 将更新其属性的对象的名称 -
mod_op
- 修改操作,其中之一:ADD_ATTRIBUTE
、REPLACE_ATTRIBUTE
、REMOVE_ATTRIBUTE
。 -
attrs
- 用于修改的属性;不得为null - 抛出:
-
AttributeModificationException
- 如果无法成功完成修改 -
NamingException
- 如果遇到命名异常
-
modifyAttributes
从接口复制的描述:DirContext
修改与命名对象关联的属性。未指定修改的顺序。在可能的情况下,修改是原子执行的。- 指定者:
-
modifyAttributes
在接口DirContext
中 - 参数:
-
name
- 将更新其属性的对象的名称 -
mod_op
- 修改操作,其中之一:ADD_ATTRIBUTE
、REPLACE_ATTRIBUTE
、REMOVE_ATTRIBUTE
。 -
attrs
- 用于修改的属性;不得为null - 抛出:
-
AttributeModificationException
- 如果无法成功完成修改 -
NamingException
- 如果遇到命名异常
-
modifyAttributes
从接口复制的描述:DirContext
使用有序修改列表修改与命名对象关联的属性。有关详细信息,请参阅DirContext.modifyAttributes(Name, ModificationItem[])
。- 指定者:
-
modifyAttributes
在接口DirContext
中 - 参数:
-
name
- 将更新其属性的对象的名称 -
mods
- 要执行的有序修改序列;不得为null - 抛出:
-
AttributeModificationException
- 如果无法成功完成修改 -
NamingException
- 如果遇到命名异常
-
modifyAttributes
从接口复制的描述:DirContext
使用有序修改列表修改与命名对象关联的属性。修改按指定的顺序执行。每个修改指定一个修改操作代码和要操作的属性。在可能的情况下,修改是原子执行的。- 指定者:
-
modifyAttributes
在接口DirContext
中 - 参数:
-
name
- 将更新其属性的对象的名称 -
mods
- 要执行的有序修改序列;不得为null - 抛出:
-
AttributeModificationException
- 如果无法成功完成修改 -
NamingException
- 如果遇到命名异常 - 参见:
-
bind
从接口复制的描述:DirContext
将名称绑定到对象,并关联属性。有关详细信息,请参阅DirContext.bind(Name, Object, Attributes)
。- 指定者:
-
bind
在接口DirContext
中 - 参数:
-
name
- 要绑定的名称;不得为空 -
obj
- 要绑定的对象;可能为null -
attrs
- 与绑定关联的属性 - 抛出:
-
NameAlreadyBoundException
- 如果名称已经绑定 -
InvalidAttributesException
- 如果未提供绑定的一些“强制”属性 -
NamingException
- 如果遇到命名异常
-
bind
从接口复制的描述:DirContext
将名称绑定到对象,并关联属性。如果attrs
为null,则生成的绑定将具有与obj
关联的属性(如果obj
是DirContext
),否则没有属性。如果attrs
为非null,则生成的绑定将具有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
为null且obj
是DirContext
,则使用obj
的属性。如果attrs
为null且obj
不是DirContext
,则保持不变与目录中已绑定对象相关联的任何现有属性。如果attrs
为非null,则删除与目录中已绑定对象相关联的任何现有属性,并将attrs
与命名对象关联。如果obj
是DirContext
且attrs
为非null,则忽略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
- 要检索其模式的对象的名称 - 返回:
- 与上下文关联的模式;永不为null
- 抛出:
-
OperationNotSupportedException
- 如果不支持模式 -
NamingException
- 如果遇到命名异常
-
getSchema
从接口复制的描述:DirContext
检索与命名对象关联的模式。模式描述了命名空间的结构和其中存储的属性的规则。模式指定可以添加到目录中的对象类型以及可以添加它们的位置;对象可以具有的强制和可选属性。对模式的支持范围是特定于目录的。此方法返回适用于命名对象的模式信息树的根。几个命名对象(甚至整个目录)可能共享相同的模式。
模式树的结构和内容、修改模式树内容的权限以及此类修改对目录的影响等问题取决于底层目录。
- 指定者:
-
getSchema
在接口DirContext
中 - 参数:
-
name
- 要检索其模式的对象的名称 - 返回值:
- 与上下文关联的模式;永不为null
- 抛出:
-
OperationNotSupportedException
- 如果不支持模式 -
NamingException
- 如果遇到命名异常
-
getSchemaClassDefinition
从接口复制的描述:DirContext
检索包含命名对象类定义的模式对象的上下文。有关详细信息,请参见DirContext.getSchemaClassDefinition(Name)
。- 指定者:
-
getSchemaClassDefinition
在接口DirContext
中 - 参数:
-
name
- 要检索其对象类定义的对象的名称 - 返回值:
-
包含命名对象类定义的
DirContext
;永不为null - 抛出:
-
OperationNotSupportedException
- 如果不支持模式 -
NamingException
- 如果遇到命名异常
-
getSchemaClassDefinition
从接口复制的描述: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匹配,如果A1和A2具有相同的标识符,并且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中提到的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
的枚举形式返回。每个SearchResult
包含对象的名称和关于对象的其他信息(请参阅SearchResult)。名称是相对于搜索的目标上下文(由name
参数命名)的,或者是URL字符串。如果目标上下文包含在枚举中(当cons
指定搜索范围为SearchControls.OBJECT_SCOPE
或SearchControls.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
- 如果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的规则进行了转义。对于不使用字符串表示形式的目录的某些或所有属性的目录,与属性值对应的过滤器参数可能是String以外的类型。例如,支持非结构化二进制值属性的目录应接受字节数组作为过滤器参数。任何其他类型的过滤器参数的解释(如果有)由该目录的服务提供程序确定,该服务提供程序将过滤操作映射到底层目录中具有相应语义的操作。
此方法返回结果的枚举。枚举中的每个元素都包含对象的名称和关于对象的其他信息(请参阅
SearchResult
)。名称要么相对于搜索的目标上下文(由name
参数命名),要么是URL字符串。如果目标上下文包含在枚举中(当cons
指定搜索范围为SearchControls.OBJECT_SCOPE
或SearchControls.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
- 如果filterExpr
与filterArgs
表示无效的搜索过滤器 -
NamingException
- 如果遇到命名异常 - 另请参阅:
-