文档

Java™ 教程
隐藏目录
目录和LDAP包
路径: Java 命名和目录接口
课程: JNDI 概述

目录和 LDAP 包

目录包

javax.naming.directory包扩展了javax.naming包,提供了访问目录服务和命名服务的功能。该包允许应用程序检索与目录中存储的对象关联的属性,并使用指定的属性搜索对象。

目录上下文

DirContext接口表示一个目录上下文。通过扩展Context接口,DirContext也作为命名上下文。这意味着任何目录对象也可以提供命名上下文。它定义了用于检查和更新与目录条目关联的属性的方法。

属性
使用getAttributes()方法检索与目录条目(由您提供名称)关联的属性。使用modifyAttributes()方法修改属性。您可以使用此操作添加、替换或删除属性和/或属性值。
搜索
DirContext包含执行基于内容的目录搜索的方法。在最简单和最常见的用法中,应用程序指定一组属性,可能具有要匹配的特定值,并将此属性集提交给search()方法。其他重载的search()形式支持更复杂的搜索过滤器。

LDAP包

javax.naming.ldap包包含了使用LDAP v3特定功能的类和接口,这些功能不被更通用的javax.naming.directory包所覆盖。事实上,大多数使用LDAP的JNDI应用程序将发现javax.naming.directory包已经足够,不需要使用javax.naming.ldap包。该包主要用于需要使用"扩展"操作、控件或主动通知的应用程序。

"扩展"操作
除了指定了搜索和修改等明确定义的操作外,LDAP v3(RFC 2251) 还指定了一种在LDAP客户端和服务器之间传输尚未定义的操作的方式。这些操作被称为"扩展"操作。"扩展"操作可以由标准组织(如互联网工程任务组(IETF))或供应商定义。
控制器
LDAP v3 允许任何请求或响应通过尚未定义的修饰符进行增强,这些修饰符称为"控制器"。与请求一起发送的控制器称为"请求控制器",与响应一起发送的控制器称为"响应控制器"。控制器可以由标准组织(如IETF)或供应商定义。请求控制器和响应控制器不一定是配对的,也就是说,并不是每个发送的请求控制器都需要有相应的响应控制器,反之亦然。
非请求通知
除了客户端和服务器之间的正常请求/响应交互方式外,LDAP v3 还指定了"非请求通知",即从服务器异步地向客户端发送的消息,而不是响应于任何客户端请求。

LDAP上下文

LdapContext 接口表示执行"扩展"操作、发送请求控制器和接收响应控制器的上下文。如何使用这些特性的示例在JNDI教程的控制器和扩展课程中有描述。


上一页: 命名包
下一页: 事件和服务提供者包