JavaTM 2 Platform
Standard Ed. 6

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。
 
從類別 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
 
從類別 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 - 如果在將提供的參數編碼到控制元件中時遇到錯誤。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only