java.lang.Object
javax.naming.ldap.BasicControl
javax.naming.ldap.PagedResultsControl
- 所有已实现的接口:
Serializable
,Control
请求 LDAP 服务以指定大小的批次返回搜索操作的结果。请求者通过它调用搜索操作的速率来控制返回批次的速率。
以下代码示例显示了如何使用该类:
// Open an LDAP association
LdapContext ctx = new InitialLdapContext();
// Activate paged results
int pageSize = 20; // 20 entries per page
byte[] cookie = null;
int total;
ctx.setRequestControls(new Control[]{
new PagedResultsControl(pageSize, Control.CRITICAL) });
do {
// Perform the search
NamingEnumeration results =
ctx.search("", "(objectclass=*)", new SearchControls());
// Iterate over a batch of search results
while (results != null && results.hasMore()) {
// Display an entry
SearchResult entry = (SearchResult)results.next();
System.out.println(entry.getName());
System.out.println(entry.getAttributes());
// Handle the entry's response controls (if any)
if (entry instanceof HasControls) {
// ((HasControls)entry).getControls();
}
}
// Examine the paged results control response
Control[] controls = ctx.getResponseControls();
if (controls != null) {
for (int i = 0; i < controls.length; i++) {
if (controls[i] instanceof PagedResultsResponseControl) {
PagedResultsResponseControl prrc =
(PagedResultsResponseControl)controls[i];
total = prrc.getResultSize();
cookie = prrc.getCookie();
} else {
// Handle other response controls (if any)
}
}
}
// Re-activate paged results
ctx.setRequestControls(new Control[]{
new PagedResultsControl(pageSize, cookie, Control.CRITICAL) });
} while (cookie != null);
// Close the LDAP association
ctx.close();
...
此类为 RFC 2696 中定义的分页结果实现 LDAPv3 控件。控件的值具有以下 ASN.1 定义:
realSearchControlValue ::= SEQUENCE {
size INTEGER (0..maxInt),
-- requested page size from client
-- result set size estimate from server
cookie OCTET STRING
}
- 自从:
- 1.5
- 参见:
-
字段摘要
字段在类 javax.naming.ldap.BasicControl 中声明的字段
criticality, id, value
在接口 javax.naming.ldap.Control 中声明的字段
CRITICAL, NONCRITICAL
-
构造方法总结
构造方法构造方法描述PagedResultsControl
(int pageSize, boolean criticality) 构造一个控件以设置每页结果返回的条目数。PagedResultsControl
(int pageSize, byte[] cookie, boolean criticality) 构造一个控件以设置每页结果返回的条目数。 -
方法总结
在类 javax.naming.ldap.BasicControl 中声明的方法
getEncodedValue, getID, isCritical
-
字段详细信息
-
OID
分页结果控件的分配对象标识符是 1.2.840.113556.1.4.319。- 参见:
-
-
构造方法详细信息
-
PagedResultsControl
构造一个控件以设置每页结果返回的条目数。- 参数:
pageSize
- 页面中返回的条目数。criticality
- 如果为真,则服务必须遵守该控件并返回由 pageSize 指示的搜索结果,否则拒绝执行搜索。如果为 false,则服务无需遵守该控制。- 抛出:
IOException
- 如果在将提供的参数编码到控件中时遇到错误。
-
PagedResultsControl
构造一个控件以设置每页结果返回的条目数。 cookie 由服务提供,可以从分页结果响应控件中获取。通过将 pageSize 设置为零并将 cookie 设置为从服务接收到的最后一个 cookie,可以放弃一系列分页结果。
- 参数:
pageSize
- 页面中返回的条目数。cookie
- 一个可能为空的服务生成的 cookie。criticality
- 如果为真,则服务必须遵守该控件并返回由 pageSize 指示的搜索结果,否则拒绝执行搜索。如果为 false,则服务无需遵守该控制。- 抛出:
IOException
- 如果在将提供的参数编码到控件中时遇到错误。
-