WEB开发网
开发学院软件开发Java 在 Apache 目录服务器中存储 Java 对象,第 2 部分... 阅读

在 Apache 目录服务器中存储 Java 对象,第 2 部分:在 ApacheDS 中存储、搜索和检索 Java 对象(下)

 2010-04-19 00:00:00 来源:WEB开发网   
核心提示: 搜索已访问过的上下文在进入搜索和反序列化 Alice 的 MessagingPreferences 对象的步骤之前,您可能想回顾一下 图 1,在 Apache 目录服务器中存储 Java 对象,第 2 部分:在 ApacheDS 中存储、搜索和检索 Java 对象(下)(6),该图显示了位于 A

搜索已访问过的上下文

在进入搜索和反序列化 Alice 的 MessagingPreferences 对象的步骤之前,您可能想回顾一下 图 1,该图显示了位于 Alice 数据条目中的 Alice 的 MessagingPreferences 对象。所以,需要在 Alice 的数据条目中查找 MessagingPreferences 对象。

如何在数据条目 “内部进行查找” 呢?针对这一目的,我们将明确使用搜索上下文 的概念。在这个示例中,需要缩小在第一个应用程序(清单 6 所示的 SearchForAlice)中介绍的搜索上下文。

这项工作在 清单 8 的步骤 9 进行,在这一步骤中将把 Alice 的 RDN(uid=alice)与原来用于搜索 Alice 数据条目的上下文(ou=users,ou=system)合并在一起。生成的上下文(uid=alice,ou=users,ou=system)就可以用来查看 Alice 数据条目内部。

现在来看一下 FetchAliceMessagingPreferences 应用程序剩下的步骤。

构建和使用搜索控件

在 清单 8 的步骤 10 中,实例化了一个 SearchControls 对象,可以用它构建一些搜索控件。搜索控件有两个主要用途:

指定搜索结果中包含的数据类型。在这个示例中,因为您想要检索 Java 对象,所以将调用 SearchControls 对象的 setReturningObjFlag() 方法。这个方法在搜索控件中设置标志,以指定将要执行的获得某一对象的搜索操作。

指定搜索范围。“搜索范围” 意味着您想在特定数据条目中搜索,还是还想在比该条目更低的级别上进行搜索。通过调用 SearchControls 对象的 setSearchScope() 方法,可以设置搜索范围。

过滤搜索结果

在 清单 8 的步骤 11 中,制作了名为 “filter” 的字符串。可以看到 filter 字符串的值是 (|(javaClassName=MessagingPreferences) (javaClassName=ShippingPreferences))。括号中的这两个属性-值对为一个名为 javaClassName 的属性指定了不同的值。还请注意这两个属性-值对之前的 “OR”。这意味着要查询的是 MessagingPreferences 或 ShippingPreferences 对象。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Apache 目录 服务器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接