JavaTM 2 Platform
Standard Ed. 6

javax.naming.directory
類別 InitialDirContext

java.lang.Object
  繼承者 javax.naming.InitialContext
      繼承者 javax.naming.directory.InitialDirContext
所有已實作的介面:
Context, DirContext
直接已知子類別:
InitialLdapContext

public class InitialDirContext
extends InitialContext
implements DirContext

此類別是執行目錄操作的初始上下文。InitialContext 的類別描述中的文檔(包括關於同步的那些文檔)在此處同樣適用。

從以下版本開始:
1.3
另請參見:
InitialContext

欄位摘要
 
從類別 javax.naming.InitialContext 繼承的欄位
defaultInitCtx, gotDefault, myProps
 
從介面 javax.naming.directory.DirContext 繼承的欄位
ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE
 
從介面 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
 
建構子摘要
  InitialDirContext()
          建構一個初始 DirContext。
protected InitialDirContext(boolean lazy)
          建構一個具有不進行初始化的選項的初始 DirContext。
  InitialDirContext(Hashtable<?,?> environment)
          使用所提供的環境建構一個初始 DirContext。
 
方法摘要
 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)
          在命名上下文或物件中搜尋符合給定搜尋過濾器的項。
 
從類別 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

protected InitialDirContext(boolean lazy)
                     throws NamingException
建構一個具有不進行初始化的選項的初始 DirContext。如果子類別在調用 InitialDirContext 建構子時仍然未知環境屬性的值,則可以在其中使用此建構子。子類別的建構子將調用此建構子,計算環境的值,然後在返回之前調用 init()

參數:
lazy - 為 true 表示不初始化該初始 DirContext;為 false 等效於調用 new InitialDirContext()
拋出:
NamingException - 如果遇到命名異常
從以下版本開始:
1.3
另請參見:
InitialContext.init(Hashtable)

InitialDirContext

public InitialDirContext()
                  throws NamingException
建構一個初始 DirContext。不提供環境屬性。等效於 new InitialDirContext(null)

拋出:
NamingException - 如果遇到命名異常
另請參見:
InitialDirContext(Hashtable)

InitialDirContext

public InitialDirContext(Hashtable<?,?> environment)
                  throws NamingException
使用所提供的環境建構一個初始 DirContext。環境屬性已在 javax.naming.InitialContext 類別描述中討論。

此建構子不會修改 environment 或保存一個對它的參考,但可能保存一個副本。

參數:
environment - 用於創建初始 DirContext 的環境。null 指示一個空環境。
拋出:
NamingException - 如果遇到命名異常
方法詳細資訊

getAttributes

public Attributes getAttributes(String name)
                         throws NamingException
從介面 DirContext 複製的描述
檢索所有與命名物件關聯的屬性。有關詳細資訊,請參閱 DirContext.getAttributes(Name)

指定者:
介面 DirContext 中的 getAttributes
參數:
name - 物件名,通過該物件名檢索屬性
返回:
name 關聯的屬性集
拋出:
NamingException - 如果遇到命名異常

getAttributes

public Attributes getAttributes(String name,
                                String[] attrIds)
                         throws NamingException
從介面 DirContext 複製的描述
檢索與命名物件關聯的選定屬性。有關詳細資訊,請參閱 DirContext.getAttributes(Name, String[])

指定者:
介面 DirContext 中的 getAttributes
參數:
name - 物件名,通過該物件名檢索屬性
attrIds - 要檢索的屬性的標識符。null 指示應該檢索所有屬性;空陣列指示不應檢索任何屬性。
返回:
請求的屬性;永遠不為 null
拋出:
NamingException - 如果遇到命名異常

getAttributes

public Attributes getAttributes(Name name)
                         throws NamingException
從介面 DirContext 複製的描述
檢索與命名物件關聯的所有屬性。請參閱關於屬性模型、屬性型別名稱和操作屬性的類別描述。

指定者:
介面 DirContext 中的 getAttributes
參數:
name - 物件名,通過該物件名檢索屬性
返回:
name 關聯的屬性集。如果名稱沒有屬性,則返回空屬性集;永遠不為 null。
拋出:
NamingException - 如果遇到命名異常
另請參見:
DirContext.getAttributes(String), DirContext.getAttributes(Name, String[])

getAttributes

public Attributes getAttributes(Name name,
                                String[] attrIds)
                         throws NamingException
從介面 DirContext 複製的描述
檢索與命名物件關聯的選定屬性。請參閱關於屬性模型、屬性型別名稱和操作屬性的類別描述。

如果物件沒有指定的屬性,則目錄將忽略不存在的屬性,並返回那些物件所具有的請求屬性。

目錄返回的屬性可能多於請求(請參閱類別描述中的屬性型別名稱),但不允許返回任意的、無關的屬性。

另請參閱類別描述中的操作屬性

指定者:
介面 DirContext 中的 getAttributes
參數:
name - 物件名,通過該物件名檢索屬性
attrIds - 要檢索的屬性的標識符。null 指示應該檢索所有屬性;空陣列指示不應檢索任何屬性。
返回:
請求的屬性;永遠不為 null
拋出:
NamingException - 如果遇到命名異常

modifyAttributes

public void modifyAttributes(String name,
                             int mod_op,
                             Attributes attrs)
                      throws NamingException
從介面 DirContext 複製的描述
修改與命名物件關聯的屬性。有關詳細資訊,請參閱 DirContext.modifyAttributes(Name, int, Attributes)

指定者:
介面 DirContext 中的 modifyAttributes
參數:
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 複製的描述
修改與命名物件關聯的屬性。沒有指定修改的順序。在可能的情況下,將以原子方式執行修改。

指定者:
介面 DirContext 中的 modifyAttributes
參數:
name - 屬性將被更新的物件的名稱
mod_op - 修改操作,為以下操作之一:ADD_ATTRIBUTEREPLACE_ATTRIBUTEREMOVE_ATTRIBUTE
attrs - 要用於修改的屬性;不能為 null
拋出:
AttributeModificationException - 如果不能成功完成修改
NamingException - 如果遇到命名異常
另請參見:
DirContext.modifyAttributes(Name, ModificationItem[])

modifyAttributes

public void modifyAttributes(String name,
                             ModificationItem[] mods)
                      throws NamingException
從介面 DirContext 複製的描述
使用有序的修改列表修改與命名物件關聯的屬性。有關詳細資訊,請參閱 DirContext.modifyAttributes(Name, ModificationItem[])

指定者:
介面 DirContext 中的 modifyAttributes
參數:
name - 屬性將被更新的物件的名稱
mods - 要執行的修改的有序序列;不能為 null
拋出:
AttributeModificationException - 如果不能成功完成修改
NamingException - 如果遇到命名異常

modifyAttributes

public void modifyAttributes(Name name,
                             ModificationItem[] mods)
                      throws NamingException
從介面 DirContext 複製的描述
使用有序的修改列表修改與命名物件關聯的屬性。按指定的順序執行修改。每個修改指定一個修改操作程式碼和一個對其執行操作的屬性。在可能的情況下,將以原子方式執行修改。

指定者:
介面 DirContext 中的 modifyAttributes
參數:
name - 屬性將被更新的物件的名稱
mods - 要執行的修改的有序序列;不能為 null
拋出:
AttributeModificationException - 如果不能成功完成修改
NamingException - 如果遇到命名異常
另請參見:
DirContext.modifyAttributes(Name, int, Attributes), ModificationItem

bind

public void bind(String name,
                 Object obj,
                 Attributes attrs)
          throws NamingException
從介面 DirContext 複製的描述
將名稱與關聯的屬性一起綁定到一個物件。有關詳細資訊,請參閱 DirContext.bind(Name, Object, Attributes)

指定者:
介面 DirContext 中的 bind
參數:
name - 要綁定的名稱;不能為空
obj - 要綁定的物件;可能為 null
attrs - 要與綁定關聯的屬性
拋出:
NameAlreadyBoundException - 如果已經綁定了 name
InvalidAttributesException - 如果沒有提供綁定的某些“強制”屬性
NamingException - 如果遇到命名異常

bind

public void bind(Name name,
                 Object obj,
                 Attributes attrs)
          throws NamingException
從介面 DirContext 複製的描述
將名稱與關聯的屬性一起綁定到一個物件。如果 attrs 為 null,則 objDirContext 時所得綁定將具有與 obj 關聯的屬性,否則不具有屬性。如果 attrs 為非 null,則所得綁定的屬性將為 attrs;所有與 obj 關聯的屬性都將被忽略。

指定者:
介面 DirContext 中的 bind
參數:
name - 要綁定的名稱;不能為空
obj - 要綁定的物件;可能為 null
attrs - 要與綁定關聯的屬性
拋出:
NameAlreadyBoundException - 如果已經綁定了 name
InvalidAttributesException - 如果沒有提供綁定的某些“強制”屬性
NamingException - 如果遇到命名異常
另請參見:
Context.bind(Name, Object), DirContext.rebind(Name, Object, Attributes)

rebind

public void rebind(String name,
                   Object obj,
                   Attributes attrs)
            throws NamingException
從介面 DirContext 複製的描述
將名稱與關聯的屬性一起綁定到一個物件,並覆寫任何現有綁定。有關詳細資訊,請參閱 DirContext.rebind(Name, Object, Attributes)

指定者:
介面 DirContext 中的 rebind
參數:
name - 要綁定的名稱;不能為空
obj - 要綁定的物件;可能為 null
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 的屬性。

指定者:
介面 DirContext 中的 rebind
參數:
name - 要綁定的名稱;不能為空
obj - 要綁定的物件;可能為 null
attrs - 要與綁定關聯的屬性
拋出:
InvalidAttributesException - 如果沒有提供綁定的某些“強制”屬性
NamingException - 如果遇到命名異常
另請參見:
Context.bind(Name, Object), DirContext.bind(Name, Object, Attributes)

createSubcontext

public DirContext createSubcontext(String name,
                                   Attributes attrs)
                            throws NamingException
從介面 DirContext 複製的描述
創建並綁定新的上下文及關聯的屬性。有關詳細資訊,請參閱 DirContext.createSubcontext(Name, Attributes)

指定者:
介面 DirContext 中的 createSubcontext
參數:
name - 要創建的上下文的名稱;不能為空
attrs - 要與新創建的上下文關聯的屬性
返回:
新創建的上下文
拋出:
NameAlreadyBoundException - 如果已經綁定了名稱
InvalidAttributesException - 如果 attrs 不包含創建所需要的所有強制屬性
NamingException - 如果遇到命名異常

createSubcontext

public DirContext createSubcontext(Name name,
                                   Attributes attrs)
                            throws NamingException
從介面 DirContext 複製的描述
創建並綁定新的上下文及關聯的屬性。此方法利用給定名稱創建新的子上下文,將其綁定在目標上下文(由名稱最終原子元件外的所有元件命名)中,並將提供的屬性與新創建的物件關聯起來。所有中間和目標上下文都必須已經存在。如果 attrs 為 null,則此方法等效於 Context.createSubcontext()

指定者:
介面 DirContext 中的 createSubcontext
參數:
name - 要創建的上下文的名稱;不能為空
attrs - 要與新創建的上下文關聯的屬性
返回:
新創建的上下文
拋出:
NameAlreadyBoundException - 如果已經綁定了名稱
InvalidAttributesException - 如果 attrs 不包含創建所需要的所有強制屬性
NamingException - 如果遇到命名異常
另請參見:
Context.createSubcontext(Name)

getSchema

public DirContext getSchema(String name)
                     throws NamingException
從介面 DirContext 複製的描述
檢索與命名物件關聯的網要。有關詳細資訊,請參閱 DirContext.getSchema(Name)

指定者:
介面 DirContext 中的 getSchema
參數:
name - 網要要被檢索的物件的名稱
返回:
與上下文關聯的網要;永遠不為 null
拋出:
OperationNotSupportedException - 如果不支持網要
NamingException - 如果遇到命名異常

getSchema

public DirContext getSchema(Name name)
                     throws NamingException
從介面 DirContext 複製的描述
檢索與命名物件關聯的網要。網要描述一些關於名稱空間的結構及其中所存儲屬性的規則。網要指定可以被添加到目錄中的物件型別、添加物件的位置,以及對象可以具有的強制和可選屬性。網要的支持範圍是特定於目錄的。

此方法返回可用於命名物件的網要資訊階層樹的根。多個命名物件(或者甚至整個目錄)可以共享同一個網要。

諸如網要階層樹的結構和內容、修改網要階層樹內容的權限以及對目錄進行這種修改的效果等問題都與基礎目錄有關。

指定者:
介面 DirContext 中的 getSchema
參數:
name - 網要要被檢索的物件的名稱
返回:
與上下文關聯的網要;永遠不為 null
拋出:
OperationNotSupportedException - 如果不支持網要
NamingException - 如果遇到命名異常

getSchemaClassDefinition

public DirContext getSchemaClassDefinition(String name)
                                    throws NamingException
從介面 DirContext 複製的描述
檢索包含命名物件類別定義的網要物件的上下文。有關詳細資訊,請參閱 DirContext.getSchemaClassDefinition(Name)

指定者:
介面 DirContext 中的 getSchemaClassDefinition
參數:
name - 物件類別定義要被檢索的物件的名稱
返回:
包含命名物件的類別定義的 DirContext;永遠不為 null
拋出:
OperationNotSupportedException - 如果不支持網要
NamingException - 如果遇到命名異常

getSchemaClassDefinition

public DirContext getSchemaClassDefinition(Name name)
                                    throws NamingException
從介面 DirContext 複製的描述
檢索包含命名物件類別定義的網要物件的上下文。

目錄網要中存在的一種資訊是類別定義。“物件類別”定義指定物件的型別 和物件必須/可以具有的屬性(強制和可選)。注意,這裡參考的術語“物件類別”是指目錄中而不是 Java 中的物件類別。例如,如果命名物件是 "Person" 類別的目錄物件,則 getSchemaClassDefinition() 將返回 DirContext,它表示 "Person" 的(目錄)物件類別定義。

可以從物件類別定義檢索的資訊與目錄有關。

在 JNDI 1.2 之前,此方法返回表示命名物件類別定義的單個網要物件。從 JNDI 1.2 開始,此方法返回包含所有命名物件類別定義的 DirContext

指定者:
介面 DirContext 中的 getSchemaClassDefinition
參數:
name - 物件類別定義要被檢索的物件的名稱
返回:
包含命名物件的類別定義的 DirContext;永遠不為 null
拋出:
OperationNotSupportedException - 如果不支持網要
NamingException - 如果遇到命名異常

search

public NamingEnumeration<SearchResult> search(String name,
                                              Attributes matchingAttributes)
                                       throws NamingException
從介面 DirContext 複製的描述
在單個上下文中搜尋包含指定屬性集的物件。有關詳細資訊,請參閱 DirContext.search(Name, Attributes)

指定者:
介面 DirContext 中的 search
參數:
name - 要搜尋的上下文的名稱
matchingAttributes - 要搜尋的屬性
返回:
SearchResult 物件的列舉
拋出:
NamingException - 如果遇到命名異常

search

public NamingEnumeration<SearchResult> search(Name name,
                                              Attributes matchingAttributes)
                                       throws NamingException
從介面 DirContext 複製的描述
在單個上下文中搜尋包含指定屬性集的物件。此方法返回這些物件的所有屬性。這等效於向方法 search(Name, Attributes, String[]) 提供 null 作為 atributesToReturn 參數。
有關詳細資訊,請參閱 DirContext.search(Name, Attributes, String[])

指定者:
介面 DirContext 中的 search
參數:
name - 要搜尋的上下文的名稱
matchingAttributes - 要搜尋的屬性
返回:
SearchResult 物件的列舉
拋出:
NamingException - 如果遇到命名異常
另請參見:
DirContext.search(Name, Attributes, String[])

search

public NamingEnumeration<SearchResult> search(String name,
                                              Attributes matchingAttributes,
                                              String[] attributesToReturn)
                                       throws NamingException
從介面 DirContext 複製的描述
在單個上下文中搜尋包含指定屬性集的物件,並檢索選定的屬性。有關詳細資訊,請參閱 DirContext.search(Name, Attributes, String[])

指定者:
介面 DirContext 中的 search
參數:
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 的某個值相等,則認為 A1A2 比對。這意味著值的順序無關緊要,並且 A2 可以包含 A1 沒有的“額外”值,這些值對比較沒有影響。它還意味著如果 A1 沒有值,則測試是否比對等效於測試是否存在具有相同標識符的屬性 A2

在比較屬性值時使用的“相等性”的精確定義由基礎目錄服務定義。例如,它可能使用 Object.equals 方法或某種網要來指定不同的相等性操作。對於基於操作而非相等性的比對(如子字元串比較),需要使用帶有過濾器參數的 search 方法。

當對此 DirContext 作出更改時,對以前調用此方法返回的列舉的影響是不確定的。

如果物件沒有指定的屬性,則目錄將忽略不存在的屬性,並返回那些物件所具有的請求屬性。

目錄返回的屬性可能多於請求(請參閱類別描述中的屬性型別名稱),但不允許返回任意的、無關的屬性。

另請參閱類別描述中的操作屬性

指定者:
介面 DirContext 中的 search
參數:
name - 要搜尋的上下文的名稱
matchingAttributes - 要搜尋的屬性。如果為空或 null,則返回目標上下文中的所有物件。
attributesToReturn - 要返回的屬性。null 指示要返回所有屬性;空陣列指示不返回任何屬性。
返回:
SearchResult 物件的非 null 列舉。每個 SearchResult 都包含 attributesToReturn 所標識的屬性和相應物件的名稱,該名稱相對於 name 指定的上下文命名。
拋出:
NamingException - 如果遇到命名異常
另請參見:
SearchControls, SearchResult, DirContext.search(Name, String, Object[], SearchControls)

search

public NamingEnumeration<SearchResult> search(String name,
                                              String filter,
                                              SearchControls cons)
                                       throws NamingException
從介面 DirContext 複製的描述
在命名上下文或物件中搜尋符合給定搜尋過濾器的項。按照搜尋控制元件的指定執行搜尋。有關詳細資訊,請參見 DirContext.search(Name, String, SearchControls)

指定者:
介面 DirContext 中的 search
參數:
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"。

應該使用適當的 Java (Unicode) 字元表示過濾器字元串中的所有非 ASCII 字元,不能將其編碼為 UTF-8 八位組。或者,也可以使用 RFC 2254 中描述的“十六進制編碼的反斜槓(backslash-hexcode)”符號。

如果目錄不支持部分或全部其屬性的字元串表示形式,則可以使用過濾器參數的形式為 Object 的 search 方法。然後,這種目錄的服務提供者會將過濾器參數轉換為其特定於服務的表示形式,以供過濾器計算使用。請參閱 search(Name, String, Object[], SearchControls)

RFC 2254 為過濾器定義了某些操作符,包括子字元串比對、相等性、近似比對、大於、小於。這些操作符被映射到基礎目錄中具有相應語義的操作符。例如,對於相等操作符,假定目錄具有比對的規則來定義過濾器中屬性的“相等性”。則此規則將用於檢查濾器中指定的屬性與目錄中的物件屬性的相等性。類似地,如果目錄具有用於排序的比對規則,則此規則將用於進行“大於”和“小於”比較。

並不是 RFC 2254 中定義的所有操作符都可用於所有屬性。當操作符不可用時,拋出異常 InvalidSearchFilterException

結果返回在 SearchResult 的列舉中。每個 SearchResult 都包含物件名和關於該物件的其他資訊(請參閱 SearchResult)。名稱或者相對於搜尋的目標上下文(由 name 參數命名),或者為 URL 字元串。如果目標上下文包括在列舉(這可能發生在 cons 指定 SearchControls.OBJECT_SCOPESearchControls.SUBSTREE_SCOPE 的搜尋範圍時)中,則其名稱為空字元串。SearchResult 還可能包含比對物件的屬性,如果 cons 參數指定返回該屬性的話。

如果物件不具有請求的屬性,則忽略不存在的屬性。僅返回那些物件具有的請求的屬性。

目錄返回的屬性可能多於請求(請參閱類別描述中的屬性型別名稱),但是不允許返回任意的、無關的屬性。

另請參閱類別描述中的操作屬性

指定者:
介面 DirContext 中的 search
參數:
name - 要搜尋的上下文或物件的名稱
filter - 要用於搜尋的過濾器表達式;不能為 null
cons - 控制搜尋的搜尋控制元件。如果為 null,則使用預設的搜尋控制元件(等效於 (new SearchControls()))。
返回:
符合過濾器的物件的 SearchResult 所組成的列舉;永遠不為 null
拋出:
InvalidSearchFilterException - 如果基礎目錄不支持或者不理解指定的搜尋過濾器
InvalidSearchControlsException - 如果搜尋控制元件包含無效的設置
NamingException - 如果遇到命名異常
另請參見:
DirContext.search(Name, String, Object[], SearchControls), SearchControls, SearchResult

search

public NamingEnumeration<SearchResult> search(String name,
                                              String filterExpr,
                                              Object[] filterArgs,
                                              SearchControls cons)
                                       throws NamingException
從介面 DirContext 複製的描述
在命名上下文或物件中搜尋符合給定搜尋過濾器的項。按照搜尋控制元件的指定執行搜尋。有關詳細資訊,請參見 DirContext.search(Name, String, Object[], SearchControls)

指定者:
介面 DirContext 中的 search
參數:
name - 要搜尋的上下文或物件的名稱。
filterExpr - 要用於搜尋的過濾器表達式。表達式可能包含形式為 "{i}"(其中 i 為非負整數)的變數。不能為 null。
filterArgs - 要替換 filterExpr 中的變數的參數所組成的陣列。filterArgs[i] 的值將取代每個出現的 "{i}"。如果為 null,則等效於空陣列。
cons - 控制搜尋的搜尋控制元件。如果為 null,則使用預設的搜尋控制元件(等效於 (new SearchControls()))。
返回:
符合過濾器的物件的 SearchResult 所組成的列舉;永遠不為 null
拋出:
InvalidSearchControlsException - 如果 cons 套件含無效設置
InvalidSearchFilterException - 如果帶有 filterArgsfilterExpr 表示無效的搜尋過濾器
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 第 4 節的過濾器語法中出現,這些變數就可以使用。當使用字元串值的過濾器參數替換變數時,過濾器被解釋為好像給定了取代變數的字元串,同時根據 RFC 2254 的規則轉義了過濾器中具有特殊意義的所有字元(如 '*')。

對於部分或全部屬性不使用的字元串表示形式的目錄,對應於屬性值的過濾器參數可能是 String 以外的型別。例如,支持非結構化二進制值屬性的目錄應該接受位元組陣列作為過濾器參數。任何其他型別的過濾器參數的解釋(如果有)由該目錄的服務提供者確定,該服務提供者將過濾器操作映射到基礎目錄中具有相應語義的操作上。

此方法返回結果的列舉。每個列舉元素都包含物件名和關於該物件的其他資訊(請參閱 SearchResult)。名稱或者相對於搜尋的目標上下文(由 name 參數命名),或者為 URL 字元串。如果目標上下文包括在列舉(這可能發生在 cons 指定 SearchControls.OBJECT_SCOPESearchControls.SUBSTREE_SCOPE 的搜尋範圍時)中,則其名稱為空字元串。

SearchResult 還可能包含比對物件的屬性,如果 cons 參數指定返回該屬性的話。

如果物件不具有請求的屬性,則忽略不存在的屬性。僅返回那些物件具有的請求的屬性。

目錄返回的屬性可能多於請求(請參閱類別描述中的屬性型別名稱),但是不允許返回任意的、無關的屬性。

如果為此方法提供帶有無效變數替換項的搜尋過濾器,則結果是不確定的。當對此 DirContext 作出更改時,對以前調用此方法返回的列舉的影響是不確定的。

另請參閱類別描述中的操作屬性

指定者:
介面 DirContext 中的 search
參數:
name - 要搜尋的上下文或物件的名稱
filterExpr - 要用於搜尋的過濾器表達式。表達式可能包含形式為 "{i}"(其中 i 為非負整數)的變數。不能為 null。
filterArgs - 要替換 filterExpr 中的變數的參數所組成的陣列。filterArgs[i] 的值將取代每個出現的 "{i}"。如果為 null,則等效於空陣列。
cons - 控制搜尋的搜尋控制元件。如果為 null,則使用預設的搜尋控制元件(等效於 (new SearchControls()))。
返回:
符合過濾器的物件的 SearchResult 所組成的列舉;永遠不為 null
拋出:
InvalidSearchControlsException - 如果 cons 套件含無效設置
InvalidSearchFilterException - 如果帶有 filterArgsfilterExpr 表示無效的搜尋過濾器
NamingException - 如果遇到命名異常
另請參見:
DirContext.search(Name, Attributes, String[]), MessageFormat

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only