创建和销毁子上下文

Contextinterface包含用于creatingdestroying a * subcontext 的方法, subcontext *是绑定在相同类型的另一个上下文中的上下文。

此处描述的示例使用具有属性的对象,并在目录中创建子上下文。在将绑定或子上下文添加到名称空间时,可以使用这些DirContext方法将属性与对象关联。例如,您可以创建一个Person对象并将其绑定到名称空间,同时与此Person对象相关联的属性。等效命名将没有属性。

createSubcontext()与 bind()的不同之处在于,它创建了一个新对象,即要绑定到目录的新上下文,而 bind()则将给定对象绑定到目录中。

创建上下文

要创建命名上下文,请向createSubcontext()提供要创建的上下文的名称。要创建具有属性的上下文,请向DirContext.createSubcontext()提供要创建的上下文的名称及其属性。


在 continue 之前: 本课中的示例要求您对架构进行补充。您必须关闭 LDAP 服务器中的 Pattern 检查,或者将本教程随附的the schema添加到服务器。这两个任务通常由目录服务器的 管理 员执行。请参阅LDAP Setup类。


// Create attributes to be associated with the new context
Attributes attrs = new BasicAttributes(true); // case-ignore
Attribute objclass = new BasicAttribute("objectclass");
objclass.add("top");
objclass.add("organizationalUnit");
attrs.put(objclass);

// Create the context
Context result = ctx.createSubcontext("NewOu", attrs);

This example创建一个名为"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

This example创建一个名为"NewOu"的新上下文,该上下文是ctx的子级。

该图显示了新的子上下文。

破坏上下文

要销毁上下文,请向destroySubcontext()提供要销毁的上下文的名称。

// Destroy the context
ctx.destroySubcontext("NewOu");

This example破坏上下文ctx中的上下文"NewOu"