JavaTM 2 Platform
Standard Ed. 6

javax.naming.ldap
類別 InitialLdapContext

java.lang.Object
  繼承者 javax.naming.InitialContext
      繼承者 javax.naming.directory.InitialDirContext
          繼承者 javax.naming.ldap.InitialLdapContext
所有已實作的介面:
Context, DirContext, LdapContext

public class InitialLdapContext
extends InitialDirContext
implements LdapContext

此類別是執行 LDAPv3 樣式的擴展操作和控制元件的初始上下文。

有關同步的詳細資訊和如何創建初始上下文的策略,請參閱 javax.naming.InitialContextjavax.naming.InitialDirContext

請求控制元件

創建初始上下文 (InitialLdapContext) 時,可以指定請求控制元件列表。這些控制元件將用作由上下文或從上下文派生的上下文執行的所有隱式 LDAP“綁定”操作的請求控制元件。它們被稱為連接請求控制元件。使用 getConnectControls() 獲取上下文的連接請求控制元件。

提供給初始上下文建構子的請求控制元件不能 用作後續上下文操作(如搜尋和尋找)的上下文請求控制元件。上下文請求控制元件可以通過使用 setRequestControls() 設置和更新。

請求控制元件可以有如下兩個與上下文關聯的不同集合:連接請求控制元件和上下文請求控制元件。對於那些需要發送不能同時應用於上下文操作和任何隱式 LDAP“綁定”操作的關鍵控制元件的應用程序而言,這一點是必需的。典型的使用者程序將執行以下操作:

 InitialLdapContext lctx = new InitialLdapContext(env, critConnCtls);
 lctx.setRequestControls(critModCtls);
 lctx.modifyAttributes(name, mods);
 Controls[] respCtls =  lctx.getResponseControls();
它首先指定用於創建初始上下文 (critConnCtls) 的關鍵控制元件,然後設置上下文的請求控制元件 (critModCtls) 進行上下文操作。如果出於某種原因 lctx 需要重新連接到伺服器,則它將使用 critConnCtls。有關請求控制元件的更多討論,請參見 LdapContext 介面。

服務提供者的實作方應該參閱 LdapContext 類別描述中的 "Service Provider" 一節,以獲取實作的詳細資訊。

從以下版本開始:
1.3
另請參見:
LdapContext, InitialContext, InitialDirContext, NamingManager.setInitialContextFactoryBuilder(javax.naming.spi.InitialContextFactoryBuilder)

欄位摘要
 
從類別 javax.naming.InitialContext 繼承的欄位
defaultInitCtx, gotDefault, myProps
 
從介面 javax.naming.ldap.LdapContext 繼承的欄位
CONTROL_FACTORIES
 
從介面 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
 
建構子摘要
InitialLdapContext()
          不使用任何環境屬性或連接請求控制元件建構初始上下文。
InitialLdapContext(Hashtable<?,?> environment, Control[] connCtls)
          使用環境屬性或連接請求控制元件建構初始上下文。
 
方法摘要
 ExtendedResponse extendedOperation(ExtendedRequest request)
          執行擴展操作。
 Control[] getConnectControls()
          檢索對此上下文有效的連接請求控制元件。
 Control[] getRequestControls()
          檢索對此上下文有效的請求控制元件。
 Control[] getResponseControls()
          檢索對此上下文調用的最後一個方法所產生的回應控制元件。
 LdapContext newInstance(Control[] reqCtls)
          創建此上下文的新實例,使用請求控制元件進行初始化。
 void reconnect(Control[] connCtls)
          使用提供的控制元件和此上下文的環境重新連接到 LDAP 伺服器。
 void setRequestControls(Control[] requestControls)
          為在此上下文上後續調用的方法設置請求控制元件。
 
從類別 javax.naming.directory.InitialDirContext 繼承的方法
bind, bind, createSubcontext, createSubcontext, getAttributes, getAttributes, getAttributes, getAttributes, getSchema, getSchema, getSchemaClassDefinition, getSchemaClassDefinition, modifyAttributes, modifyAttributes, modifyAttributes, modifyAttributes, rebind, rebind, search, search, search, search, search, search, search, search
 
從類別 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.directory.DirContext 繼承的方法
bind, bind, createSubcontext, createSubcontext, getAttributes, getAttributes, getAttributes, getAttributes, getSchema, getSchema, getSchemaClassDefinition, getSchemaClassDefinition, modifyAttributes, modifyAttributes, modifyAttributes, modifyAttributes, rebind, rebind, search, search, search, search, search, search, search, search
 
從介面 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
 

建構子詳細資訊

InitialLdapContext

public InitialLdapContext()
                   throws NamingException
不使用任何環境屬性或連接請求控制元件建構初始上下文。與 new InitialLdapContext(null) 等效。

拋出:
NamingException - 如果遇到命名異常

InitialLdapContext

public InitialLdapContext(Hashtable<?,?> environment,
                          Control[] connCtls)
                   throws NamingException
使用環境屬性或連接請求控制元件建構初始上下文。有關環境屬性的討論,請參閱 javax.naming.InitialContext

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

connCtls 用作基礎上下文實例的連接請求控制元件。有關詳細資訊請參閱類別描述。

參數:
environment - 用於創建初始 DirContext 的環境。null 指示空環境。
connCtls - 初始上下文的連接請求控制元件。如果為 null,則不使用任何連接請求控制元件。
拋出:
NamingException - 如果遇到命名異常
另請參見:
reconnect(javax.naming.ldap.Control[]), LdapContext.reconnect(javax.naming.ldap.Control[])
方法詳細資訊

extendedOperation

public ExtendedResponse extendedOperation(ExtendedRequest request)
                                   throws NamingException
從介面 LdapContext 複製的描述
執行擴展操作。 此方法用於支持 LDAPv3 擴展操作。

指定者:
介面 LdapContext 中的 extendedOperation
參數:
request - 要執行的非 null 請求。
返回:
操作的回應(可能為 null)。null 表示操作沒有產生任何回應。
拋出:
NamingException - 如果在執行擴展操作時出錯。

newInstance

public LdapContext newInstance(Control[] reqCtls)
                        throws NamingException
從介面 LdapContext 複製的描述
創建此上下文的新實例,使用請求控制元件進行初始化。 此方法是為了進行多執行緒存取而創建此上下文新實例的便捷方法。例如,如果多個執行緒要使用不同的上下文請求控制元件,則每個執行緒可以使用此方法獲取它自己的此上下文的副本,並設置/獲取上下文請求控制元件,無需與其他執行緒同步。

新上下文與此上下文具有相同的環境屬性和連接請求控制元件。有關詳細資訊請參閱類別描述。實作可能還允許此上下文和新上下文共享同一個網路連接或其他資源,如果這樣做不妨礙這兩種上下文各自的獨立性。

指定者:
介面 LdapContext 中的 newInstance
參數:
reqCtls - 要用於新上下文的請求控制元件(可能為 null)。如果為 null,則不使用任何請求控制元件初始化上下文。
返回:
非 null LdapContext 實例。
拋出:
NamingException - 如果在創建新實例時出錯。
另請參見:
InitialLdapContext

reconnect

public void reconnect(Control[] connCtls)
               throws NamingException
從介面 LdapContext 複製的描述
使用提供的控制元件和此上下文的環境重新連接到 LDAP 伺服器。

此方法是一種顯式啟動 LDAP“綁定”操作的方式。例如,可以使用此方法為 LDAP“綁定”操作設置請求控制元件,或者顯式連接到伺服器以獲取由 LDAP“綁定”操作返回的回應控制元件。

此方法將此上下文的 connCtls 設置為其新連接請求控制元件。此上下文的上下文請求控制元件將不受影響。調用此方法後,所有後續隱式重接將使用 connCtls 完成。connCtls 還可用作從此上下文派生的新上下文實例的連接請求控制元件。這些連接請求控制元件將不受 setRequestControls() 的影響。

服務提供者的實作方應該讀取類別描述中的“服務提供者”一節,以獲取實作詳細資訊。

指定者:
介面 LdapContext 中的 reconnect
參數:
connCtls - 要使用的控制元件(可能為 null)。如果為 null,則不使用任何控制元件。
拋出:
NamingException - 如果重接時出錯。
另請參見:
LdapContext.getConnectControls(), LdapContext.newInstance(javax.naming.ldap.Control[])

getConnectControls

public Control[] getConnectControls()
                             throws NamingException
從介面 LdapContext 複製的描述
檢索對此上下文有效的連接請求控制元件。JNDI 實作所擁有的控制元件是不可變的。調用者既不能修改陣列也不能修改控制元件。

指定者:
介面 LdapContext 中的 getConnectControls
返回:
控制元件陣列(可能為 null)。null 表示沒有為此上下文設置任何連接控制元件。
拋出:
NamingException - 如果在獲取請求控制元件時出錯。

setRequestControls

public void setRequestControls(Control[] requestControls)
                        throws NamingException
從介面 LdapContext 複製的描述
為在此上下文上後續調用的方法設置請求控制元件。JNDI 實作所擁有的請求控制元件是不可變的。調用者既不能修改陣列也不能修改控制元件。

此操作移除所有以前的請求控制元件,並添加 requestControls 供在此上下文上調用的後續方法使用。此方法不影響此上下文的連接請求控制元件。

注意,在下一次調用 setRequestControls() 之前 requestControls 一直有效。如果不想讓這些控制元件繼續影響上下文方法,則需要使用 null 或空陣列作為參數顯式調用 setRequestControls() 來清除它們。要檢查對此上下文有效的請求控制元件,請使用 getRequestControls()

指定者:
介面 LdapContext 中的 setRequestControls
參數:
requestControls - 要使用的控制元件(可能為 null)。如果為 null,則不使用任何控制元件。
拋出:
NamingException - 如果在設置請求控制元件時出錯。
另請參見:
LdapContext.getRequestControls()

getRequestControls

public Control[] getRequestControls()
                             throws NamingException
從介面 LdapContext 複製的描述
檢索對此上下文有效的請求控制元件。JNDI 實作所擁有的請求控制元件是不可變的。調用者既不能修改陣列也不能修改控制元件。

指定者:
介面 LdapContext 中的 getRequestControls
返回:
控制元件陣列(可能為 null)。null 表示沒有為此上下文設置任何請求控制元件。
拋出:
NamingException - 如果在獲取請求控制元件時出錯。
另請參見:
LdapContext.setRequestControls(javax.naming.ldap.Control[])

getResponseControls

public Control[] getResponseControls()
                              throws NamingException
從介面 LdapContext 複製的描述
檢索對此上下文調用的最後一個方法所產生的回應控制元件。JNDI 實作所擁有的回應控制元件是不可變的。調用者既不能修改陣列也不能修改控制元件。

這些回應控制元件可能由成功或失敗的操作產生。

調用可能返迴響應控制元件的上下文方法時,上一個方法調用產生的回應控制元件將被清除。getResponseControls()(按照從 LDAP 伺服器收到回應控制元件的順序) 返回上下文方法使用的 LDAP 操作產生的所有回應控制元件。調用 getResponseControls() 不清除回應控制元件。在調用可能返回控制元件的下一個上下文方法之前,可以多次調用它(並返回相同的控制元件)。

指定者:
介面 LdapContext 中的 getResponseControls
返回:
控制元件陣列(可能為 null)。如果為 null,則對此上下文調用的上一個方法不會產生任何控制元件。
拋出:
NamingException - 如果在獲取回應控制元件時出錯。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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