⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 search.java

📁 本套光盘提供了本书各章实例的所需的部分源程序文件以及数据库文件。读者 需要使用JDK 1.4(必需)版
💻 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 + -