所有类
javax.naming.ldap
类 PagedResultsControl
java.lang.Object
javax.naming.ldap.BasicControl
javax.naming.ldap.PagedResultsControl
-
所有已实现的接口:
-
Serializable, Control
-
public final class PagedResultsControl
- extends BasicControl
请求由 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
-
另请参见:
-
PagedResultsResponseControl
, 序列化表格
字段摘要 |
static String |
OID 分页结果控件的分配对象标识符为 1.2.840.113556.1.4.319。 |
从类 java.lang.Object 继承的方法 |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
OID
public static final String OID
-
分页结果控件的分配对象标识符为 1.2.840.113556.1.4.319。
-
另请参见:
-
常量字段值
PagedResultsControl
public PagedResultsControl(int pageSize,
boolean criticality)
throws IOException
-
构造一个控件来设置要在每页结果中返回的项数。
-
参数:
-
pageSize
- 要在一个页面中返回的项数。
-
criticality
- 如果为 true,则服务器必须遵从控件,按照 pageSize 的指示返回搜索结果或拒绝执行搜索。如果为 false,则服务器不必遵从控件。
-
抛出:
-
IOException
- 如果在将提供的参数编码到控件中时遇到错误。
PagedResultsControl
public PagedResultsControl(int pageSize,
byte[] cookie,
boolean criticality)
throws IOException
-
构造一个控件来设置要在每页结果中返回的项数。cookie 是由服务器提供的,可以从分页结果响应控件获取。
通过将 pageSize 设置为零并将 cookie 设置为从服务器收到的最后一个 cookie,可以放弃分页结果序列。
-
参数:
-
pageSize
- 要在一个页面中返回的项数。
-
cookie
- 服务器生成的 cookie(可能为 null)。
-
criticality
- 如果为 true,则服务器必须遵从控件,按照 pageSize 的指示返回搜索结果或拒绝执行搜索。如果为 false,则服务器不必遵从控件。
-
抛出:
-
IOException
- 如果在将提供的参数编码到控件中时遇到错误。
所有类