|
Spec-Zone .ru
спецификации, руководства, описания, API
|
javax.naming.ldap.BasicControl, который реализует javax.naming.ldap.Control, служит основной реализацией для того, чтобы расширить другие средства управления.
Пронумерованное страницы управление результатами полезно для клиентов LDAP, которые хотят получить результаты поиска управляемым способом, ограниченным размером страницы. Размер страницы может быть сконфигурирован клиентом согласно доступности его ресурсов, как пропускная способность и возможность обработки.
Сервер использует cookie (подобный механизму cookie сеанса HTTP), чтобы поддержать состояние запросов поиска, чтобы отследить результаты, отправляемые клиенту. Пронумерованное страницы управление результатами определяется в . Классы ниже обеспечивают функциональность, требуемую поддерживать пронумерованное страницы управление результатами.
Пример ниже иллюстрирует взаимодействие клиент-сервер между клиентом, делающим поиск, запрашивающий предел размера страницы 5. Весь набор результатов, возвращенный сервером, содержит 21 запись.
// Activate paged results
int pageSize = 5; // 5 entries per page
byte[] cookie = null;
int total;
ctx.setRequestControls(new Control[]{
new PagedResultsControl(pageSize, Control.CRITICAL) });
// Perform the search
NamingEnumeration results = ctx.search("", "(objectclass=*)",
new SearchControls());
// Iterate over a batch of search results sent by the server
while (results != null && results.hasMore()) {
// Display an entry
SearchResult entry = (SearchResult)results.next();
System.out.println(entry.getName());
// 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) });
Полный пример JNDI может быть найден
Отметьте: Пронумерованное страницы Управление Поиском поддерживается Windows Active Directory Server. Это не поддерживается версией 5.2 Сервера каталогов Java Sun