📄 search.java
字号:
import javax.naming.*;//(1)
import javax.naming.directory.*;//(1)
import java.util.Properties;
import java.util.Enumeration;
class Search{
public static void main(String[] args) {
try {
/* 建立一个初始的环境上下文 */
Properties env = new Properties();
env.put("java.naming.factory.initial","com.novell.service.nds.naming.NdsInitialContextFactory");//(2)
env.put("java.naming.provider.url", "nds://NCLTREE/");//(2)
/*创建目录上下文*/
DirContext ctx = new InitialDirContext(env);//(3)
/* 建立搜索,找到在NCL中的所有人,他们的名字以admin或者Barabbas开头。 */
String base = "o=NCL";//(4)
String filter = "(|(cn=admin*)(cn=Barabbas*))";//(5)
SearchControls constraints = new SearchControls();//(6)
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);//(6)
NamingEnumeration results = ctx.search(base,filter,constraints);
/* 打印搜索结果*/
if (!results.hasMore()) {
System.out.println("Nothing found.");
} else {
/* 遍历找到的每个实体. */
while (results.hasMore()) {
SearchResult sr = (SearchResult) results.next();
System.out.println(sr.getName());
Attributes attrs = sr.getAttributes();
if (attrs == null) {
System.out.println("No attributes");
} else {
/* 实体的每个属性 */
for (NamingEnumeration ae = attrs.getAll(); ae.hasMore();) {
Attribute attr = (Attribute) ae.next();
String id = attr.getID();
/* 显示每个属性的值*/
for (Enumeration vals = attr.getAll(); vals.hasMoreElements();
System.out.println(" "+id + ": " + vals.nextElement()));
}
}
}
}
} catch (NamingException e) {
/* 处理命名和目录错误 */
System.err.println("Search failed: " + e);
} catch (Exception e) {
/* 处理其它类型的错误*/
System.err.println("Non-naming error: " + e.getMessage());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -