public class InitialDirContext extends InitialContext implements DirContext
InitialContext
defaultInitCtx, gotDefault, myProps
ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE
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
Modifier | Constructor and Description |
---|---|
|
InitialDirContext()
构造一个初始DirContext。
|
protected |
InitialDirContext(boolean lazy)
构造一个初始DirContext,可选择不初始化它。
|
|
InitialDirContext(Hashtable<?,?> environment)
使用提供的环境构建初始DirContext。
|
Modifier and Type | Method and Description |
---|---|
void |
bind(Name name, Object obj, Attributes attrs)
将名称绑定到对象,以及关联的属性。
|
void |
bind(String name, Object obj, Attributes attrs)
将名称绑定到对象,以及关联的属性。
|
DirContext |
createSubcontext(Name name, Attributes attrs)
创建和绑定新的上下文以及关联的属性。
|
DirContext |
createSubcontext(String name, Attributes attrs)
创建和绑定新的上下文以及关联的属性。
|
Attributes |
getAttributes(Name name)
检索与命名对象关联的所有属性。
|
Attributes |
getAttributes(Name name, String[] attrIds)
检索与命名对象关联的所选属性。
|
Attributes |
getAttributes(String name)
检索与命名对象关联的所有属性。
|
Attributes |
getAttributes(String name, String[] attrIds)
检索与命名对象关联的所选属性。
|
DirContext |
getSchema(Name name)
检索与命名对象关联的模式。
|
DirContext |
getSchema(String name)
检索与命名对象关联的模式。
|
DirContext |
getSchemaClassDefinition(Name name)
检索包含命名对象的类定义的模式对象的上下文。
|
DirContext |
getSchemaClassDefinition(String name)
检索包含命名对象的类定义的模式对象的上下文。
|
void |
modifyAttributes(Name name, int mod_op, Attributes attrs)
修改与命名对象关联的属性。
|
void |
modifyAttributes(Name name, ModificationItem[] mods)
使用有序的修改列表修改与命名对象关联的属性。
|
void |
modifyAttributes(String name, int mod_op, Attributes attrs)
修改与命名对象关联的属性。
|
void |
modifyAttributes(String name, ModificationItem[] mods)
使用有序的修改列表修改与命名对象关联的属性。
|
void |
rebind(Name name, Object obj, Attributes attrs)
将名称绑定到对象以及关联的属性,覆盖任何现有绑定。
|
void |
rebind(String name, Object obj, Attributes attrs)
将名称绑定到对象以及关联的属性,覆盖任何现有绑定。
|
NamingEnumeration<SearchResult> |
search(Name name, Attributes matchingAttributes)
在单个上下文中搜索包含指定属性集的对象。
|
NamingEnumeration<SearchResult> |
search(Name name, Attributes matchingAttributes, String[] attributesToReturn)
在单个上下文中搜索包含指定属性集的对象,并检索所选属性。
|
NamingEnumeration<SearchResult> |
search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons)
在命名的上下文或对象中搜索满足给定搜索过滤器的条目。
|
NamingEnumeration<SearchResult> |
search(Name name, String filter, SearchControls cons)
在命名的上下文或对象中搜索满足给定搜索过滤器的条目。
|
NamingEnumeration<SearchResult> |
search(String name, Attributes matchingAttributes)
在单个上下文中搜索包含指定属性集的对象。
|
NamingEnumeration<SearchResult> |
search(String name, Attributes matchingAttributes, String[] attributesToReturn)
在单个上下文中搜索包含指定属性集的对象,并检索所选属性。
|
NamingEnumeration<SearchResult> |
search(String name, String filterExpr, Object[] filterArgs, SearchControls cons)
在命名的上下文或对象中搜索满足给定搜索过滤器的条目。
|
NamingEnumeration<SearchResult> |
search(String name, String filter, SearchControls cons)
在命名的上下文或对象中搜索满足给定搜索过滤器的条目。
|
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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
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
protected InitialDirContext(boolean lazy) throws NamingException
lazy
- 真正的手段不初始化初始DirContext;
false相当于调用new InitialDirContext()
NamingException
- 如果遇到命名异常
InitialContext.init(Hashtable)
public InitialDirContext() throws NamingException
NamingException
- 如果遇到命名异常
InitialDirContext(Hashtable)
public InitialDirContext(Hashtable<?,?> environment) throws NamingException
此构造函数不会修改environment或保存对其的引用 ,但可以保存克隆。 在environment传递给构造函数后,调用者不应修改可变键和值。
environment
- 用于创建初始DirContext的环境。
空指示空的环境。
NamingException
- 如果遇到命名异常
public Attributes getAttributes(String name) throws NamingException
DirContext
复制
DirContext.getAttributes(Name)
。
getAttributes
在界面
DirContext
name
- 从中检索属性的对象的名称
name
NamingException
- 如果遇到命名异常
public Attributes getAttributes(String name, String[] attrIds) throws NamingException
DirContext
复制
DirContext.getAttributes(Name, String[])
。
getAttributes
在界面
DirContext
name
- 从中检索属性的对象的名称
attrIds
- 要检索的属性的标识符。
null表示应检索所有属性;
一个空数组表示不应该检索。
NamingException
- 如果遇到命名异常
public Attributes getAttributes(Name name) throws NamingException
DirContext
复制
getAttributes
在界面
DirContext
name
- 从中检索属性的对象的名称
name
。
如果name没有属性,返回一个空属性集;
从不为空。
NamingException
- 如果遇到命名异常
DirContext.getAttributes(String)
,
DirContext.getAttributes(Name, String[])
public Attributes getAttributes(Name name, String[] attrIds) throws NamingException
DirContext
复制
如果对象没有指定属性,则该目录将忽略不存在的属性,并返回该对象具有的请求属性。
目录可能会返回比所请求的更多属性(请参阅类描述中的属性类型名称 ),但不允许返回任意的,不相关的属性。
请参阅类描述也操作属性 。
getAttributes
在界面
DirContext
name
- 从中检索属性的对象的名称
attrIds
- 要检索的属性的标识符。
null表示应检索所有属性;
一个空数组表示不应该检索。
NamingException
- 如果遇到命名异常
public void modifyAttributes(String name, int mod_op, Attributes attrs) throws NamingException
DirContext
复制
DirContext.modifyAttributes(Name, int, Attributes)
。
modifyAttributes
在界面
DirContext
name
- 其属性将被更新的对象的名称
mod_op
-修改操作的一个:
ADD_ATTRIBUTE
,
REPLACE_ATTRIBUTE
,
REMOVE_ATTRIBUTE
。
attrs
- 用于修改的属性;
可能不为空
AttributeModificationException
- 如果修改不能成功完成
NamingException
- 如果遇到命名异常
public void modifyAttributes(Name name, int mod_op, Attributes attrs) throws NamingException
DirContext
复制
modifyAttributes
在界面
DirContext
name
- 其属性将被更新的对象的名称
mod_op
-修改操作的一个:
ADD_ATTRIBUTE
,
REPLACE_ATTRIBUTE
,
REMOVE_ATTRIBUTE
。
attrs
- 用于修改的属性;
可能不为空
AttributeModificationException
- 如果修改无法成功完成
NamingException
- 如果遇到命名异常
DirContext.modifyAttributes(Name, ModificationItem[])
public void modifyAttributes(String name, ModificationItem[] mods) throws NamingException
DirContext
复制
DirContext.modifyAttributes(Name, ModificationItem[])
。
modifyAttributes
在接口
DirContext
name
- 其属性将被更新的对象的名称
mods
- 要执行的有序修改序列;
可能不为空
AttributeModificationException
- 如果修改不能成功完成
NamingException
- 如果遇到命名异常
public void modifyAttributes(Name name, ModificationItem[] mods) throws NamingException
DirContext
复制
modifyAttributes
在界面
DirContext
name
- 其属性将被更新的对象的名称
mods
- 要执行的有序修改序列;
可能不为空
AttributeModificationException
- 如果修改不能成功完成
NamingException
- 如果遇到命名异常
DirContext.modifyAttributes(Name, int, Attributes)
, ModificationItem
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
- 如果遇到命名异常
public void bind(Name name, Object obj, Attributes attrs) throws NamingException
DirContext
复制
bind
在界面
DirContext
name
- 要绑定的名称
可能不是空的
obj
- 要绑定的对象;
可能为null
attrs
- 与绑定关联的属性
NameAlreadyBoundException
- 如果名称已经绑定
InvalidAttributesException
- 如果不提供绑定的某些“强制”属性
NamingException
- 如果遇到命名异常
Context.bind(Name, Object)
,
DirContext.rebind(Name, Object, Attributes)
public void rebind(String name, Object obj, Attributes attrs) throws NamingException
DirContext
复制
DirContext.rebind(Name, Object, Attributes)
。
rebind
在界面
DirContext
name
- 要绑定的名称
可能不是空的
obj
- 要绑定的对象;
可能为null
attrs
- 与绑定关联的属性
InvalidAttributesException
- 如果不提供绑定的某些“强制”属性
NamingException
- 如果遇到命名异常
public void rebind(Name name, Object obj, Attributes attrs) throws NamingException
DirContext
复制
rebind
在界面
DirContext
name
- 要绑定的名称
可能不是空的
obj
- 要绑定的对象;
可能为null
attrs
- 与绑定关联的属性
InvalidAttributesException
- 如果不提供绑定的某些“强制”属性
NamingException
- 如果遇到命名异常
Context.bind(Name, Object)
,
DirContext.bind(Name, Object, Attributes)
public DirContext createSubcontext(String name, Attributes attrs) throws NamingException
DirContext
复制
DirContext.createSubcontext(Name, Attributes)
。
createSubcontext
在界面
DirContext
name
- 要创建的上下文的名称;
可能不是空的
attrs
- 与新创建的上下文关联的属性
NameAlreadyBoundException
- 如果名称已经绑定
InvalidAttributesException
- 如果
attrs
不包含创建所需的所有必需属性
NamingException
- 如果遇到命名异常
public DirContext createSubcontext(Name name, Attributes attrs) throws NamingException
DirContext
复制
createSubcontext
在界面
DirContext
name
- 要创建的上下文的名称;
可能不是空的
attrs
- 与新创建的上下文关联的属性
NameAlreadyBoundException
- 如果名称已经绑定
InvalidAttributesException
- 如果
attrs
不包含创建所需的所有必需属性
NamingException
- 如果遇到命名异常
Context.createSubcontext(Name)
public DirContext getSchema(String name) throws NamingException
DirContext
复制
DirContext.getSchema(Name)
。
getSchema
在界面
DirContext
name
- 要检索其模式的对象的名称
OperationNotSupportedException
- 如果不支持模式
NamingException
- 如果遇到命名异常
public DirContext getSchema(Name name) throws NamingException
DirContext
复制
此方法返回适用于命名对象的模式信息树的根。 几个命名对象(甚至是整个目录)可能共享相同的模式。
诸如架构树的结构和内容,修改模式树的内容的权限以及此类修改对目录的影响等问题取决于底层目录。
getSchema
在界面
DirContext
name
- 要检索其模式的对象的名称
OperationNotSupportedException
- 如果不支持模式
NamingException
- 如果遇到命名异常
public DirContext getSchemaClassDefinition(String name) throws NamingException
DirContext
复制
DirContext.getSchemaClassDefinition(Name)
。
getSchemaClassDefinition
在界面
DirContext
name
- 要检索其对象类定义的对象的名称
OperationNotSupportedException
- 如果不支持模式
NamingException
- 如果遇到命名异常
public DirContext getSchemaClassDefinition(Name name) throws NamingException
DirContext
复制
目录模式中找到的一类信息是类定义 。 “对象类”定义指定对象的类型以及对象必须/可以具有的属性(强制和可选)。 请注意,这里所指的术语“对象类”在目录中是以Java的方式而不是目录。 例如,如果命名对象是“Person”类的目录对象, 那么getSchemaClassDefinition()将返回一个DirContext,表示(目录)的对象类定义“Person”。
可以从对象类定义检索的信息与目录相关。
在JNDI 1.2之前,此方法返回一个表示命名对象的类定义的模式对象。 从JNDI 1.2开始,此方法返回一个DirContext包含所有命名对象类定义的。
getSchemaClassDefinition
在界面
DirContext
name
- 要检索其对象类定义的对象的名称
OperationNotSupportedException
- 如果不支持模式
NamingException
- 如果遇到命名异常
public NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes) throws NamingException
DirContext
复制
DirContext.search(Name, Attributes)
。
search
在界面
DirContext
name
- 要搜索的上下文的名称
matchingAttributes
- 要搜索的属性
NamingException
- 如果遇到命名异常
public NamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes) throws NamingException
DirContext
复制
search(Name, Attributes, String[])
。
DirContext.search(Name, Attributes, String[])
完整的说明。
search
在界面
DirContext
name
- 要搜索的上下文的名称
matchingAttributes
- 要搜索的属性
NamingException
- 如果遇到命名异常
DirContext.search(Name, Attributes, String[])
public NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException
DirContext
复制
DirContext.search(Name, Attributes, String[])
。
search
在接口
DirContext
name
- 要搜索的上下文的名称
matchingAttributes
- 要搜索的属性
attributesToReturn
- 要返回的属性
NamingException
- 如果遇到命名异常
public NamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException
DirContext
复制
SearchControls
设置执行。
对于要选择的对象,matchingAttributes中的每个matchingAttributes
必须匹配对象的某些属性。 如果matchingAttributes
为空或为null,则返回目标上下文中的所有对象。
在属性A 1 matchingAttributes
被认为是匹配的属性A 2的物体的,如果A 1和A 2具有相同的标识符,和A 1的每个值等于A 2的某个值。 这意味着值的顺序不重要,并且A 2可能包含在A 1中找不到的“额外”值,而不影响比较。 这也意味着如果A 1没有值,则匹配的测试等同于测试具有相同标识符的属性A 2的存在。
用于比较属性值的“等同”的精确定义由底层目录服务定义。 例如,它可能使用Object.equals
方法,或者可能使用模式来指定不同的相等操作。 对于基于除等于的操作(如子串比较)进行匹配,请使用采用过滤器参数的版本search
。
当对此进行更改DirContext时,对此方法的先前调用返回的对枚举的影响是未定义的。
如果对象没有指定属性,该目录将忽略不存在的属性,并返回对象所具有的请求属性。
目录可能会返回比所请求的更多属性(请参阅类描述中的属性类型名称 ),但不允许返回任意的,不相关的属性。
请参阅类描述也操作属性 。
search
在界面
DirContext
name
- 要搜索的上下文的名称
matchingAttributes
- 要搜索的属性。
如果为空,则返回目标上下文中的所有对象。
attributesToReturn
- 要返回的属性。
null表示要返回的所有属性;
一个空数组表示不返回任何数组。
attributesToReturn
和相对于由name
命名的上下文相对应的对象的名称。
NamingException
- 如果遇到命名异常
SearchControls
, SearchResult
, DirContext.search(Name, String, Object[], SearchControls)
public NamingEnumeration<SearchResult> search(String name, String filter, SearchControls cons) throws NamingException
DirContext
复制
search
在界面
DirContext
name
- 要搜索的上下文或对象的名称
filter
- 用于搜索的过滤器表达式;
可能不为空
cons
- 控制搜索的搜索控件。
如果为空,则使用默认搜索控件(相当于(new SearchControls()) )。
InvalidSearchFilterException
- 如果指定的搜索过滤器不被底层目录支持或理解
InvalidSearchControlsException
- 搜索控件是否包含无效设置
NamingException
- 如果遇到命名异常
public NamingEnumeration<SearchResult> search(Name name, String filter, SearchControls cons) throws NamingException
DirContext
复制
的格式和解释filter
遵循RFC 2254,解释如下attr
和value
RFC中提及。
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为过滤器定义了某些运算符,包括子串匹配,等式,近似匹配,大于,小于。 这些运算符映射到基础目录中具有相应语义的运算符。 例如,对于equals运算符,假设目录具有定义过滤器中属性“等于”的匹配规则。 该规则将用于检查过滤器中指定的属性与目录中对象属性的相等性。 类似地,如果目录具有用于排序的匹配规则,则该规则将用于进行“大于”和“小于”比较。
并非RFC 2254中定义的所有运算符都适用于所有属性。 当操作员不适用时,抛出异常InvalidSearchFilterException
。
结果以枚举SearchResult s的形式返回。 每个SearchResult包含对象的名称和有关对象的其他信息(请参阅SearchResult)。 该名称是相对于搜索的目标上下文(由name
参数命名的),或者它是一个URL字符串。 如果目标上下文包含在枚举中( cons
指定SearchControls.OBJECT_SCOPE
或SearchControls.SUBSTREE_SCOPE
的搜索范围是可能的),其名称为空字符串。 SearchResult也可以包含匹配对象的属性,如果cons参数指定返回属性。
如果对象没有请求的属性,则该不存在的属性将被忽略。 将返回对象确实拥有的那些请求的属性。
目录可能会返回比所请求的更多属性(请参阅类描述中的属性类型名称 ),但不允许返回任意不相关的属性。
请参阅类描述也操作属性 。
search
在界面
DirContext
name
- 要搜索的上下文或对象的名称
filter
- 用于搜索的过滤器表达式;
可能不为空
cons
- 控制搜索的搜索控件。
如果为空,则使用默认搜索控件(相当于(new SearchControls()) )。
InvalidSearchFilterException
- 如果指定的搜索过滤器不受底层目录的支持或理解
InvalidSearchControlsException
- 如果搜索控件包含无效设置
NamingException
- 如果遇到命名异常
DirContext.search(Name, String, Object[], SearchControls)
, SearchControls
, SearchResult
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}
,其中i
是非负整数。
可能不为空
filterArgs
- 在filterExpr中替换变量的参数filterExpr
。
filterArgs[i]
的值将替换每次出现的“ {i}
”。
如果为空,则相当于一个空数组。
cons
- 控制搜索的搜索控件。
如果为空,则使用默认搜索控件(相当于(new SearchControls()) )。
InvalidSearchControlsException
- 如果
cons包含无效设置
InvalidSearchFilterException
-如果
filterExpr与
filterArgs表示无效的搜索过滤器
NamingException
- 如果遇到命名异常
public NamingEnumeration<SearchResult> search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException
DirContext
复制
filterExpr的filterExpr
基于RFC 2254.它还可以包含{i}格式的{i}
,其中i
是一个整数,表示filterArgs
数组中的对象。 filterExpr的filterExpr
与方法search(Name, String, SearchControls)
的filter
参数的search(Name, String, SearchControls)
。
当变量{i}
出现在搜索过滤器中时,表示在该位置使用过滤器参数filterArgs[i]
。 在RFC 2254第4节的过滤器语法中出现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}
,其中i
是非负整数。
可能不为空
filterArgs
- 在filterExpr中替换变量的参数filterExpr
。
filterArgs[i]
的值将取代每个“ {i}
”的发生。
如果为空,则相当于一个空数组。
cons
- 控制搜索的搜索控件。
如果为空,则使用默认搜索控件(相当于(new SearchControls()) )。
InvalidSearchControlsException
- 如果
cons包含无效设置
InvalidSearchFilterException
-如果
filterExpr与
filterArgs表示无效的搜索过滤器
NamingException
- 如果遇到命名异常
DirContext.search(Name, Attributes, String[])
, MessageFormat
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.