本教程是针对JDK 8编写的。本页中描述的示例和实践不利用后续版本中引入的改进,并可能使用已不再可用的技术。
请参阅Java语言变化,了解Java SE 9及后续版本中更新的语言功能的摘要。
请参阅JDK发布说明,了解所有JDK版本中的新功能、增强功能以及已删除或弃用选项的信息。
许多命名服务都扩展了一个目录服务。目录服务将名称与对象关联起来,还将这些对象与属性关联起来。
目录服务 = 命名服务 + 包含属性的对象
您不仅可以通过名称查找对象,还可以获取对象的属性或根据其属性搜索对象。
一个例子是电话公司的目录服务。它将订户的姓名映射到他的地址和电话号码。计算机的目录服务非常类似于电话公司的目录服务,因为两者都可以用于存储诸如电话号码和地址等信息。然而,计算机的目录服务更强大,因为它可以在线使用,并且可以用于存储用户、程序甚至计算机本身和其他计算机可以利用的各种信息。
一个目录对象代表计算环境中的一个对象。目录对象可以用于表示打印机、人员、计算机或网络等。目录对象包含描述其所代表对象的属性。
目录对象可以具有属性。例如,打印机可以由一个具有速度、分辨率和颜色属性的目录对象来表示。用户可以由一个具有用户的电子邮件地址、各种电话号码、邮政地址和计算机帐户信息的目录对象来表示。
属性具有属性标识符和一组属性值。属性标识符是一个标记,独立于其值标识属性。例如,两个不同的计算机帐户可能具有一个"mail"属性;"mail"是属性标识符。属性值是属性的内容。例如,电子邮件地址可能有:
属性标识符 : 属性值 mail john.smith@example.com
目录是一组相互连接的目录对象。目录服务是提供用于在目录中创建、添加、删除和修改与对象关联的属性的操作的服务。该服务通过自己的接口访问。
有许多目录服务的例子。
您可以通过向目录服务提供其名称来查找目录对象。另外,许多目录(如基于LDAP的目录)支持所谓的搜索概念。在搜索时,您可以提供一个查询,其中包含一个逻辑表达式,您可以在该表达式中指定对象必须具有的属性。该查询称为搜索过滤器。这种搜索方式有时称为反向查找或基于内容的搜索。目录服务将搜索满足搜索过滤器的对象并返回。
例如,您可以查询目录服务以找到: