Пронумерованное страницы Управление Результатами (Учебные руководства Java™> Именование Java и Интерфейс Каталога> Новые функции в JDK 5.0 и JDK 6)


След: Именование Java и Интерфейс Каталога
Урок: Новые функции в JDK 5.0 и JDK 6
Пронумерованное страницы Управление Результатами
Домашняя страница > Именование Java и Интерфейс Каталога > Новые функции в JDK 5.0 и JDK 6

Пронумерованное страницы Управление Результатами

BasicControl

javax.naming.ldap.BasicControl, который реализует javax.naming.ldap.Control, служит основной реализацией для того, чтобы расширить другие средства управления.

Пронумерованное страницы Управление Результатами

Пронумерованное страницы управление результатами полезно для клиентов LDAP, которые хотят получить результаты поиска управляемым способом, ограниченным размером страницы. Размер страницы может быть сконфигурирован клиентом согласно доступности его ресурсов, как пропускная способность и возможность обработки.

Сервер использует cookie (подобный механизму cookie сеанса HTTP), чтобы поддержать состояние запросов поиска, чтобы отследить результаты, отправляемые клиенту. Пронумерованное страницы управление результатами определяется в RFC 2696. Классы ниже обеспечивают функциональность, требуемую поддерживать пронумерованное страницы управление результатами.

Как использовать Пронумерованное страницы Управление Результатами?

Пример ниже иллюстрирует взаимодействие клиент-сервер между клиентом, делающим поиск, запрашивающий предел размера страницы 5. Весь набор результатов, возвращенный сервером, содержит 21 запись.

  1. Клиент отправляет запрос поиска, просящий пронумерованные страницы результаты с размером страницы 5.
        // 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());
    
  2. Сервер отвечает записями плюс индикация относительно 21 полной записи в результате поиска и непрозрачном cookie, который будет использоваться клиентом, получая последующие страницы.
       // 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)
                     }
                 }
             }   
    
  3. Клиент отправляет идентичный запрос поиска, возвращая непрозрачный cookie, прося следующую страницу.
      // Re-activate paged results
             ctx.setRequestControls(new Control[]{
                 new PagedResultsControl(pageSize, cookie, Control.CRITICAL) });
    
  4. Сервер отвечает пятью записями плюс индикация, что есть больше записей, клиент повторяет поиск, выполняемый в шаге 4, пока нулевой cookie не возвращается сервером, который не указывает на больше записей, которое будет отправлено сервером.

Полный пример JNDI может быть найден here.


Отметьте: Пронумерованное страницы Управление Поиском поддерживается Windows Active Directory Server. Это не поддерживается версией 5.2 Сервера каталогов Java Sun



Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Стандартные Средства управления LDAP
Следующая страница: Управление Видом



Spec-Zone.ru - all specs in one place