Java教程是针对JDK 8编写的。本页面描述的示例和实践不利用后续版本中引入的改进,并且可能使用已不再可用的技术。
请参阅Java语言更改,了解Java SE 9及其后续版本中更新的语言功能的摘要。
请参阅JDK发布说明,了解所有JDK发布的新功能、增强功能和已删除或已弃用选项的信息。
Context接口包含用于创建和销毁子上下文的方法,即将一个上下文绑定在同类型的另一个上下文中。
这里描述的示例使用具有属性的对象,并在目录中创建一个子上下文。您可以使用这些DirContext方法将属性与对象关联,该绑定或子上下文在添加到命名空间时。例如,您可以创建一个Person对象并将其绑定到命名空间,同时关联有关该Person对象的属性。与之对应的命名将没有属性。
与bind()方法不同,createSubcontext()方法创建一个新的对象,即一个新的上下文,该上下文将绑定到目录中,而bind()方法将给定的对象绑定到目录中。
要创建一个命名上下文,您需要提供给createSubcontext()方法要创建的上下文的名称。要创建具有属性的上下文,您需要提供给DirContext.createSubcontext()方法要创建的上下文的名称和其属性。
在继续之前:本课程中的示例需要您对模式进行添加。您必须关闭LDAP服务器中的模式检查或将附带本教程的模式
添加到服务器中。这两个任务通常由目录服务器的管理员执行。请参阅LDAP设置课程。
// 创建要与新上下文关联的属性 Attributes attrs = new BasicAttributes(true); // 忽略大小写 Attribute objclass = new BasicAttribute("objectclass"); objclass.add("top"); objclass.add("organizationalUnit"); attrs.put(objclass); // 创建上下文 Context result = ctx.createSubcontext("NewOu", attrs);
此示例
创建一个名为"ou=NewOu"的新上下文,在上下文ctx中有一个名为"objectclass"的属性,具有两个值"top"和"organizationalUnit"。
# java Create ou=Groups: javax.naming.directory.DirContext ou=People: javax.naming.directory.DirContext ou=NewOu: javax.naming.directory.DirContext
这个例子
创建了一个名为 "NewOu" 的新上下文,它是 ctx 的子上下文。
要销毁一个上下文,你需要向 destroySubcontext() 方法提供要销毁的上下文的名称。
// 销毁上下文 ctx.destroySubcontext("NewOu");
这个例子
在上下文 ctx 中销毁了上下文 "NewOu"。