469 lines
35 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
compact3
</div>
<div class="subTitle">
javax.naming.ldap
</div>
<h2 class="title" title="Interface LdapContext">Interface LdapContext</h2>
</div><div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
All Superinterfaces:
</dt>
<dd>
<span><a href="../../../javax/naming/Context.html" title="javax.naming中的接口">Context</a> <a href="../../../javax/naming/directory/DirContext.html" title="javax.naming.directory中的接口">DirContext</a></span>
</dd>
</dl>
<dl>
<dt>
所有已知实现类:
</dt>
<dd>
<span><a href="../../../javax/naming/ldap/InitialLdapContext.html" title="javax.naming.ldap中的类">InitialLdapContext</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public interface <span class="typeNameLabel">LdapContext</span>
extends <a href="../../../javax/naming/directory/DirContext.html" title="interface in javax.naming.directory">DirContext</a></pre>
<div class="block">
<span>此接口表示您可以使用LDAPv3样式控件执行操作并执行LDAPv3样式扩展操作的上下文。</span>
<span>对于不需要此类控件或扩展操作的应用程序,应使用更通用的<tt>javax.naming.directory.DirContext</tt></span>
<h3> <span>使用细节关于控制</span> </h3>
<span>此界面提供对LDAP v3控件的支持。</span>
<span>在高级别,此支持允许用户程序设置在用户程序<tt>调用</tt> <tt>Context/DirContext</tt>方法的过程中执行的LDAP操作的请求控制并读取LDAP操作导致的响应控制。</span>
<span>在实现级别,有一些细节,用户程序和服务提供者的开发人员需要了解才能正确使用请求和响应控件。</span>
<h3> <span>请求控制</span> </h3>
<p> <span>有两种类型的请求控制:</span> </p>
<ul>
<li> <span>请求控制影响连接的创建方式</span> </li>
<li> <span>请求影响上下文方法的控件</span> </li>
</ul>
<span>当需要使用LDAP服务器建立或重新建立连接时将使用前者。</span>
<span>当所有其他LDAP操作发送到LDAP服务器时将使用后者。</span>
<span>为了区分这两种类型的请求控件是必要的因为JNDI是一个不直接处理连接的高级API。</span>
<span>服务提供商的工作是进行必要的连接管理。</span>
<span>因此,单个连接可以由多个上下文实例共享,并且服务提供商可以自由地使用其自己的算法来节省连接和网络使用。</span>
<span>因此当在上下文实例上调用方法时除了执行相应的LDAP操作之外服务提供商可能需要进行一些连接管理。</span>
<span>对于连接管理,它使用<em>连接请求控件</em> 而对于正常的LDAP操作它使用<em>上下文请求控件</em></span>
<p> <span>除非明确限定,否则术语“请求控件”是指上下文请求控件。</span> </p>
<h4> <span>上下文请求控制</span> </h4>
<span>上下文实例获取其请求控件有两种方式:</span>
<ol>
<li> <span><tt>ldapContext.newInstance(<strong>reqCtls</strong>)</tt></span> </li>
<li> <span><tt>ldapContext.setRequestControls(<strong>reqCtls</strong>)</tt></span> </li>
</ol>
<span>其中<tt>ldapContext</tt><tt>LdapContext</tt>一个实例。</span>
<span>指定<tt>null</tt><tt>reqCtls</tt>空数组表示不请求控件。</span>
<span><tt>newInstance()</tt>创建使用<tt>reqCtls</tt>上下文的新实例,而<tt>setRequestControls()</tt>更新现有上下文实例的请求控件到<tt>reqCtls。</tt></span>
<p> <span>与环境属性不同,上下文实例的请求控制<em>不会</em>由从其派生的上下文实例继承。</span> <span>派生上下文实例具有<tt>null</tt>作为其上下文请求控件。</span> <span>您必须使用<tt>setRequestControls()明确</tt>设置派生上下文实例的请求控制。</span> </p>
<p> <span>使用方法<tt>getRequestControls()检索</tt>上下文实例的请求控件。</span> </p>
<h4> <span>连接请求控制</span> </h4>
<span>连接请求控制有三种方式设置:</span>
<ol>
<li> <span><tt>new InitialLdapContext(env, <strong>connCtls</strong>)</tt></span> </li>
<li> <span><tt>refException.getReferralContext(env, <strong>connCtls</strong>)</tt></span> </li>
<li> <span><tt>ldapContext.reconnect(<strong>connCtls</strong>);</tt></span> </li>
</ol>
<span>其中<tt>refException</tt><tt>LdapReferralException</tt>一个实例<tt>ldapContext</tt><tt>LdapContext</tt>一个实例。</span>
<span>指定<tt>null</tt><tt>connCtls</tt>空数组表示无连接请求控件。</span>
<p> <span>与环境属性一样,上下文的连接请求控制由<em>从其导出</em>的上下文继承。</span> <span>通常,您使用<tt>InitialLdapContext</tt>构造函数或<tt>LdapReferralContext.getReferralContext()初始化</tt>连接请求控件。</span> <span>这些连接请求控件由共享相同连接的上下文继承,即从初始或引用上下文派生的上下文。</span> </p>
<p> <span>使用<tt>reconnect()</tt>更改上下文的连接请求控件。</span> <span>调用<tt>ldapContext.reconnect()</tt>仅影响ldapContext使用的<tt>连接</tt>以及从<tt>ldapContext派生的</tt>任何新的上下文<tt>实例</tt></span> <span>之前与ldapContext共享连接的<tt>上下文</tt>保持不变。</span> <span>也就是说,上下文的连接请求控件必须显式更改,并且不受另一个上下文的连接请求控件的更改的影响。</span> </p>
<p> <span>使用方法<tt>getConnectControls()检索</tt>上下文实例的连接请求控件。</span> </p>
<h4> <span>服务提供商要求</span> </h4>
<span>服务提供商通过以下方式支持连接和上下文请求控制。</span>
<span>上下文请求控件必须在每个上下文实例基础上关联,而连接请求控件必须在每个连接实例的基础上关联。</span>
<span>服务提供商必须在环境属性“java.naming.ldap.control.connect”中查找连接请求控件并将此环境属性传递给它创建的上下文实例。</span>
<h3> <span>响应控制</span> </h3>
<span>该方法<tt>LdapContext.getResponseControls()</tt>用于检索由作为调用<tt><tt>DirContext分之Context</tt></tt>操作的结果执行的LDAP操作生成的响应控制。</span>
<span>结果是由底层LDAP操作生成的所有响应控件包括任何隐式重新连接。</span>
<span>要获取重新连接响应控件,请使用<tt>reconnect()</tt>后跟<tt>getResponseControls()</tt></span>
<h3> <span>参数</span> </h3>
<span>作为<tt>参数</tt>传递给任何方法的数组Control[]由调用者拥有。</span>
<span>服务提供商不会修改数组或保留对它的引用,尽管它可能会保留对数组中单个的<tt>Control</tt>对象的引用。</span>
<span>由任何方法返回的<tt>Control[]</tt>数组是不可变的,并且随后可能不被调用者或服务提供者修改。</span>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.3
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/naming/ldap/InitialLdapContext.html" title="javax.naming.ldap中的类"><code>InitialLdapContext</code></a> <a href="../../../javax/naming/ldap/LdapReferralException.html#getReferralContext-java.util.Hashtable-javax.naming.ldap.Control:A-"><code>LdapReferralException.getReferralContext(java.util.Hashtable,javax.naming.ldap.Control[])</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- --> </a> <h3>Field Summary</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Field Summary table, listing fields, and an explanation">
<caption>
<span>Fields</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/LdapContext.html#CONTROL_FACTORIES">CONTROL_FACTORIES</a></span></code>
<div class="block">
用于指定要使用的控制工厂列表的环境属性的名称的常量。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.javax.naming.directory.DirContext">
<!-- --> </a> <h3>Fields inherited from interface javax.naming.directory.<a href="../../../javax/naming/directory/DirContext.html" title="interface in javax.naming.directory">DirContext</a></h3> <code><a href="../../../javax/naming/directory/DirContext.html#ADD_ATTRIBUTE">ADD_ATTRIBUTE</a>, <a href="../../../javax/naming/directory/DirContext.html#REMOVE_ATTRIBUTE">REMOVE_ATTRIBUTE</a>, <a href="../../../javax/naming/directory/DirContext.html#REPLACE_ATTRIBUTE">REPLACE_ATTRIBUTE</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.javax.naming.Context">
<!-- --> </a> <h3>Fields inherited from interface javax.naming.<a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a></h3> <code><a href="../../../javax/naming/Context.html#APPLET">APPLET</a>, <a href="../../../javax/naming/Context.html#AUTHORITATIVE">AUTHORITATIVE</a>, <a href="../../../javax/naming/Context.html#BATCHSIZE">BATCHSIZE</a>, <a href="../../../javax/naming/Context.html#DNS_URL">DNS_URL</a>, <a href="../../../javax/naming/Context.html#INITIAL_CONTEXT_FACTORY">INITIAL_CONTEXT_FACTORY</a>, <a href="../../../javax/naming/Context.html#LANGUAGE">LANGUAGE</a>, <a href="../../../javax/naming/Context.html#OBJECT_FACTORIES">OBJECT_FACTORIES</a>, <a href="../../../javax/naming/Context.html#PROVIDER_URL">PROVIDER_URL</a>, <a href="../../../javax/naming/Context.html#REFERRAL">REFERRAL</a>, <a href="../../../javax/naming/Context.html#SECURITY_AUTHENTICATION">SECURITY_AUTHENTICATION</a>, <a href="../../../javax/naming/Context.html#SECURITY_CREDENTIALS">SECURITY_CREDENTIALS</a>, <a href="../../../javax/naming/Context.html#SECURITY_PRINCIPAL">SECURITY_PRINCIPAL</a>, <a href="../../../javax/naming/Context.html#SECURITY_PROTOCOL">SECURITY_PROTOCOL</a>, <a href="../../../javax/naming/Context.html#STATE_FACTORIES">STATE_FACTORIES</a>, <a href="../../../javax/naming/Context.html#URL_PKG_PREFIXES">URL_PKG_PREFIXES</a></code></li>
</ul> </li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t3"><span><a href="javascript:show(4);">抽象方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code><a href="../../../javax/naming/ldap/ExtendedResponse.html" title="interface in javax.naming.ldap">ExtendedResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/LdapContext.html#extendedOperation-javax.naming.ldap.ExtendedRequest-">extendedOperation</a></span>(<a href="../../../javax/naming/ldap/ExtendedRequest.html" title="interface in javax.naming.ldap">ExtendedRequest</a> request)</code>
<div class="block">
执行扩展操作。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code><a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/LdapContext.html#getConnectControls--">getConnectControls</a></span>()</code>
<div class="block">
检索此上下文的连接请求控件。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/LdapContext.html#getRequestControls--">getRequestControls</a></span>()</code>
<div class="block">
检索对该上下文有效的请求控件。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code><a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/LdapContext.html#getResponseControls--">getResponseControls</a></span>()</code>
<div class="block">
检索由此上下文调用的最后一个方法生成的响应控件。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code><a href="../../../javax/naming/ldap/LdapContext.html" title="interface in javax.naming.ldap">LdapContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/LdapContext.html#newInstance-javax.naming.ldap.Control:A-">newInstance</a></span>(<a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a>[] requestControls)</code>
<div class="block">
创建使用请求控件初始化的此上下文的新实例。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/LdapContext.html#reconnect-javax.naming.ldap.Control:A-">reconnect</a></span>(<a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a>[] connCtls)</code>
<div class="block">
使用提供的控件和此上下文的环境重新连接到LDAP服务器。
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/LdapContext.html#setRequestControls-javax.naming.ldap.Control:A-">setRequestControls</a></span>(<a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a>[] requestControls)</code>
<div class="block">
设置随后在此上下文中调用的方法的请求控件。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.naming.directory.DirContext">
<!-- --> </a> <h3>Methods inherited from interface javax.naming.directory.<a href="../../../javax/naming/directory/DirContext.html" title="interface in javax.naming.directory">DirContext</a></h3> <code><a href="../../../javax/naming/directory/DirContext.html#bind-javax.naming.Name-java.lang.Object-javax.naming.directory.Attributes-">bind</a>, <a href="../../../javax/naming/directory/DirContext.html#bind-java.lang.String-java.lang.Object-javax.naming.directory.Attributes-">bind</a>, <a href="../../../javax/naming/directory/DirContext.html#createSubcontext-javax.naming.Name-javax.naming.directory.Attributes-">createSubcontext</a>, <a href="../../../javax/naming/directory/DirContext.html#createSubcontext-java.lang.String-javax.naming.directory.Attributes-">createSubcontext</a>, <a href="../../../javax/naming/directory/DirContext.html#getAttributes-javax.naming.Name-">getAttributes</a>, <a href="../../../javax/naming/directory/DirContext.html#getAttributes-javax.naming.Name-java.lang.String:A-">getAttributes</a>, <a href="../../../javax/naming/directory/DirContext.html#getAttributes-java.lang.String-">getAttributes</a>, <a href="../../../javax/naming/directory/DirContext.html#getAttributes-java.lang.String-java.lang.String:A-">getAttributes</a>, <a href="../../../javax/naming/directory/DirContext.html#getSchema-javax.naming.Name-">getSchema</a>, <a href="../../../javax/naming/directory/DirContext.html#getSchema-java.lang.String-">getSchema</a>, <a href="../../../javax/naming/directory/DirContext.html#getSchemaClassDefinition-javax.naming.Name-">getSchemaClassDefinition</a>, <a href="../../../javax/naming/directory/DirContext.html#getSchemaClassDefinition-java.lang.String-">getSchemaClassDefinition</a>, <a href="../../../javax/naming/directory/DirContext.html#modifyAttributes-javax.naming.Name-int-javax.naming.directory.Attributes-">modifyAttributes</a>, <a href="../../../javax/naming/directory/DirContext.html#modifyAttributes-javax.naming.Name-javax.naming.directory.ModificationItem:A-">modifyAttributes</a>, <a href="../../../javax/naming/directory/DirContext.html#modifyAttributes-java.lang.String-int-javax.naming.directory.Attributes-">modifyAttributes</a>, <a href="../../../javax/naming/directory/DirContext.html#modifyAttributes-java.lang.String-javax.naming.directory.ModificationItem:A-">modifyAttributes</a>, <a href="../../../javax/naming/directory/DirContext.html#rebind-javax.naming.Name-java.lang.Object-javax.naming.directory.Attributes-">rebind</a>, <a href="../../../javax/naming/directory/DirContext.html#rebind-java.lang.String-java.lang.Object-javax.naming.directory.Attributes-">rebind</a>, <a href="../../../javax/naming/directory/DirContext.html#search-javax.naming.Name-javax.naming.directory.Attributes-">search</a>, <a href="../../../javax/naming/directory/DirContext.html#search-javax.naming.Name-javax.naming.directory.Attributes-java.lang.String:A-">search</a>, <a href="../../../javax/naming/directory/DirContext.html#search-javax.naming.Name-java.lang.String-java.lang.Object:A-javax.naming.directory.SearchControls-">search</a>, <a href="../../../javax/naming/directory/DirContext.html#search-javax.naming.Name-java.lang.String-javax.naming.directory.SearchControls-">search</a>, <a href="../../../javax/naming/directory/DirContext.html#search-java.lang.String-javax.naming.directory.Attributes-">search</a>, <a href="../../../javax/naming/directory/DirContext.html#search-java.lang.String-javax.naming.directory.Attributes-java.lang.String:A-">search</a>, <a href="../../../javax/naming/directory/DirContext.html#search-java.lang.String-java.lang.String-java.lang.Object:A-javax.naming.directory.SearchControls-">search</a>, <a href="../../../javax/naming/directory/DirContext.html#search-java.lang.String-java.lang.String-javax.naming.directory.SearchControls-">search</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.naming.Context">
<!-- --> </a> <h3>Methods inherited from interface javax.naming.<a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a></h3> <code><a href="../../../javax/naming/Context.html#addToEnvironment-java.lang.String-java.lang.Object-">addToEnvironment</a>, <a href="../../../javax/naming/Context.html#bind-javax.naming.Name-java.lang.Object-">bind</a>, <a href="../../../javax/naming/Context.html#bind-java.lang.String-java.lang.Object-">bind</a>, <a href="../../../javax/naming/Context.html#close--">close</a>, <a href="../../../javax/naming/Context.html#composeName-javax.naming.Name-javax.naming.Name-">composeName</a>, <a href="../../../javax/naming/Context.html#composeName-java.lang.String-java.lang.String-">composeName</a>, <a href="../../../javax/naming/Context.html#createSubcontext-javax.naming.Name-">createSubcontext</a>, <a href="../../../javax/naming/Context.html#createSubcontext-java.lang.String-">createSubcontext</a>, <a href="../../../javax/naming/Context.html#destroySubcontext-javax.naming.Name-">destroySubcontext</a>, <a href="../../../javax/naming/Context.html#destroySubcontext-java.lang.String-">destroySubcontext</a>, <a href="../../../javax/naming/Context.html#getEnvironment--">getEnvironment</a>, <a href="../../../javax/naming/Context.html#getNameInNamespace--">getNameInNamespace</a>, <a href="../../../javax/naming/Context.html#getNameParser-javax.naming.Name-">getNameParser</a>, <a href="../../../javax/naming/Context.html#getNameParser-java.lang.String-">getNameParser</a>, <a href="../../../javax/naming/Context.html#list-javax.naming.Name-">list</a>, <a href="../../../javax/naming/Context.html#list-java.lang.String-">list</a>, <a href="../../../javax/naming/Context.html#listBindings-javax.naming.Name-">listBindings</a>, <a href="../../../javax/naming/Context.html#listBindings-java.lang.String-">listBindings</a>, <a href="../../../javax/naming/Context.html#lookup-javax.naming.Name-">lookup</a>, <a href="../../../javax/naming/Context.html#lookup-java.lang.String-">lookup</a>, <a href="../../../javax/naming/Context.html#lookupLink-javax.naming.Name-">lookupLink</a>, <a href="../../../javax/naming/Context.html#lookupLink-java.lang.String-">lookupLink</a>, <a href="../../../javax/naming/Context.html#rebind-javax.naming.Name-java.lang.Object-">rebind</a>, <a href="../../../javax/naming/Context.html#rebind-java.lang.String-java.lang.Object-">rebind</a>, <a href="../../../javax/naming/Context.html#removeFromEnvironment-java.lang.String-">removeFromEnvironment</a>, <a href="../../../javax/naming/Context.html#rename-javax.naming.Name-javax.naming.Name-">rename</a>, <a href="../../../javax/naming/Context.html#rename-java.lang.String-java.lang.String-">rename</a>, <a href="../../../javax/naming/Context.html#unbind-javax.naming.Name-">unbind</a>, <a href="../../../javax/naming/Context.html#unbind-java.lang.String-">unbind</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- --> </a> <h3>字段详细信息</h3> <a name="CONTROL_FACTORIES">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>CONTROL_FACTORIES</h4> <pre>static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> CONTROL_FACTORIES</pre>
<div class="block">
<span>用于指定要使用的控制工厂列表的环境属性的名称的常量。</span>
<span>属性的值应该是冒号分隔的工厂类的完全限定类名的列表,它将创建一个给定另一个控件的控件。</span>
<span>详见<tt>ControlFactory.getControlInstance()</tt></span>
<span>该属性可以在环境,小应用程序参数,系统属性或一个或多个资源文件中指定。</span>
<p> <span>该常量的值为“java.naming.factory.control”。</span> </p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/naming/ldap/ControlFactory.html" title="javax.naming.ldap中的类"><code>ControlFactory</code></a> <a href="../../../javax/naming/Context.html#addToEnvironment-java.lang.String-java.lang.Object-"><code>Context.addToEnvironment(java.lang.String, java.lang.Object)</code></a> <a href="../../../javax/naming/Context.html#removeFromEnvironment-java.lang.String-"><code>Context.removeFromEnvironment(java.lang.String)</code></a> <a href="../../../constant-values.html#javax.naming.ldap.LdapContext.CONTROL_FACTORIES">Constant Field Values</a></span>
</dd>
</dl> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="extendedOperation-javax.naming.ldap.ExtendedRequest-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>extendedOperation</h4> <pre><a href="../../../javax/naming/ldap/ExtendedResponse.html" title="interface in javax.naming.ldap">ExtendedResponse</a> extendedOperation(<a href="../../../javax/naming/ldap/ExtendedRequest.html" title="interface in javax.naming.ldap">ExtendedRequest</a> request)
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>执行扩展操作。</span>
<span>此方法用于支持LDAPv3扩展操作。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>request</code> - 要执行的非空请求。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>操作可能为空的响应。</span>
<span>null表示操作没有产生任何响应。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 执行扩展操作时是否发生错误。
</dd>
</dl> </li>
</ul> <a name="newInstance-javax.naming.ldap.Control:A-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>newInstance</h4> <pre><a href="../../../javax/naming/ldap/LdapContext.html" title="interface in javax.naming.ldap">LdapContext</a> newInstance(<a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a>[] requestControls)
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>创建使用请求控件初始化的此上下文的新实例。</span>
<span>此方法是为了多线程访问的目的创建此上下文的新实例的便利方法。</span>
<span>例如,如果多个线程想要使用不同的上下文请求控件,则每个线程都可以使用此方法来获取其上下文的自己的副本,并设置/获取上下文请求控件,而不必与其他线程同步。</span>
<p> <span>新上下文具有与上下文相同的环境属性和连接请求控件。</span> <span>有关详细信息,请参阅课程说明。</span> <span>如果这样做,实现也可能允许这个上下文和新的上下文共享相同的网络连接或其他资源,而不会妨碍任一上下文的独立性。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>requestControls</code> - 用于新上下文的可能的空请求控件。</span>
<span>如果为空,则无需请求控制即可初始化上下文。</span>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
非空值
<tt>LdapContext</tt>实例。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 创建新实例时是否发生错误。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/naming/ldap/InitialLdapContext.html" title="javax.naming.ldap中的类"><code>InitialLdapContext</code></a></span>
</dd>
</dl> </li>
</ul> <a name="reconnect-javax.naming.ldap.Control:A-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>reconnect</h4> <pre>void reconnect(<a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a>[] connCtls)
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>使用提供的控件和此上下文的环境重新连接到LDAP服务器。</span>
<p> <span>此方法是显式启动LDAP“绑定”操作的一种方法。</span> <span>例如您可以使用此方法设置LDAP“绑定”操作的请求控制或者显式连接到服务器以获取LDAP“绑定”操作返回的响应控件。</span> </p>
<p> <span>该方法将此上下文的<tt>connCtls</tt>设置为其新的连接请求控件。</span> <span>此上下文的上下文请求控件不受影响。</span> <span>在调用此方法之后,任何后续的隐式重新连接将使用<tt>connCtls</tt>完成。</span> <span><tt>connCtls</tt>也被用作从这个上下文导出的新上下文实例的连接请求控制。</span> <span>这些连接请求控制不受<tt>setRequestControls()的</tt>影响。</span> </p>
<p> <span>服务提供商的实现者应该在类描述中阅读“服务提供者”部分,了解实现细节。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>connCtls</code> - 可能使用的空控件。</span>
<span>如果为空,则不使用控件。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 如果重新连接时发生错误。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/naming/ldap/LdapContext.html#getConnectControls--"><code>getConnectControls()</code></a>
<a href="../../../javax/naming/ldap/LdapContext.html#newInstance-javax.naming.ldap.Control:A-"><code>newInstance(javax.naming.ldap.Control[])</code></a>
</dd>
</dl> </li>
</ul> <a name="getConnectControls--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getConnectControls</h4> <pre><a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a>[] getConnectControls()
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>检索此上下文的连接请求控件。</span>
<span>控制由JNDI实现所有并且是不可变的。</span>
<span>调用者都不能修改数组和控件。</span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>一个可能为空的控件数组。</span>
<span>null表示没有为此上下文设置连接控件。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 如果在获取请求控件时发生错误。
</dd>
</dl> </li>
</ul> <a name="setRequestControls-javax.naming.ldap.Control:A-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setRequestControls</h4> <pre>void setRequestControls(<a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a>[] requestControls)
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>设置随后在此上下文中调用的方法的请求控件。</span>
<span>请求控制由JNDI实现拥有并且是不可变的。</span>
<span>调用者都不能修改数组和控件。</span>
<p> <span>这将删除任何先前的请求控件,并添加<tt>requestControls</tt>以便在此上下文中调用的后续方法使用。</span> <span>此方法不影响此上下文的连接请求控件。</span> </p>
<p> <span>请注意, <tt>requestControls</tt>将有效直到下一次调用<tt>setRequestControls()</tt></span> <span>您需要显式调用<tt>setRequestControls()</tt><tt>null</tt>空数组来清除控件,如果你不希望他们更多地影响上下文方法。</span> <span>要检查哪些请求控件对此上下文有效,请使用<tt>getRequestControls()</tt></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>requestControls</code> - 可能使用的空控件。</span>
<span>如果为空,则不使用控件。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 如果在设置请求控件时发生错误。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/naming/ldap/LdapContext.html#getRequestControls--"><code>getRequestControls()</code></a>
</dd>
</dl> </li>
</ul> <a name="getRequestControls--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getRequestControls</h4> <pre><a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a>[] getRequestControls()
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>检索对该上下文有效的请求控件。</span>
<span>请求控制由JNDI实现拥有并且是不可变的。</span>
<span>调用者都不能修改数组和控件。</span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>一个可能为空的控件数组。</span>
<span>null表示没有为此上下文设置请求控件。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 如果在获取请求控件时发生错误。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/naming/ldap/LdapContext.html#setRequestControls-javax.naming.ldap.Control:A-"><code>setRequestControls(javax.naming.ldap.Control[])</code></a>
</dd>
</dl> </li>
</ul> <a name="getResponseControls--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>getResponseControls</h4> <pre><a href="../../../javax/naming/ldap/Control.html" title="interface in javax.naming.ldap">Control</a>[] getResponseControls()
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>检索由此上下文调用的最后一个方法生成的响应控件。</span>
<span>响应控制由JNDI实现拥有并且是不可变的。</span>
<span>调用者都不能修改数组和控件。</span>
<p> <span>这些响应控制可能是由成功或失败的操作生成的。</span> </p>
<p> <span>当调用可能返回响应控件的上下文方法时,将清除来自先前方法调用的响应控制。</span> <span><tt>getResponseControls()</tt>以从LDAP服务器接收的顺序返回由上下文方法使用的LDAP操作生成的所有响应控件。</span> <span>调用<tt>getResponseControls()</tt>不会清除响应控件。</span> <span>您可以多次调用它(并返回相同的控件),直到调用可能返回控件的下一个上下文方法。</span> </p>
<p></p>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>一个可能为null的控件数组。</span>
<span>如果为null则在此上下文中调用的上一个方法没有产生任何控件。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 如果在获取响应控件时发生错误。
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>