在Apache目录服务器中存储Java对象,第2部分:(下) - 编程入门网
//Step 8:
String entryRDN = sr.getName();
System.out.println("RDN of the Searched entry: "+entryRDN);
//Step 9:
Attributes srAttrs = sr.getAttributes();
if (srAttrs != null) {
//Step 10:
for (Enumeration e = attrs.getAll() ; e.hasMoreElements() ;)
{
Attribute attr = (Attribute) e.nextElement();
//Step 11:
String attrID = attr.getID();
System.out.println("Attribute Name: "+attrID);
System.out.println("Attribute Value(s):");
NamingEnumeration e1 = attr.getAll();
while (e1.hasMore())
System.out.println("\t\t"+e1.nextElement());
}//for()
}//if (srAttrs)
}
}//if (ne != null)
} catch (Exception e) {
System.out.println("Operation failed: " + e);
}
}
public static void main(String[] args) {
SearchForAlice searchAlice = new SearchForAlice();
}
}
在Apache目录服务器中存储Java对象,第2部分:(下)(2)时间:2011-08-13 IBM Bilal Siddiqui清单 6 中的搜索应用程序包含 11 个步骤。前两个步骤您应该可以从 清单 1 中回想起来,即装入 JNDI 属性并实例化一个 DirContext 对象。 可以回想一下,在讨论 清单 1 的步骤 1 中名为 java.naming.provider.url 的 JNDI 属性时,我提 到过供应者的 URL 包含两个组件,其中一个是要操作的目录上下文。您可能已经注意到 清单 4 中 java.naming.provider.url 的值是 ou=system。ou=system 字符串可在其中进行工作的目录上下文。所 以,所有搜索操作实际上都是在这个目录上下文中执行的。 因为要在这个示例中执行搜索操作,所以可以把 ou=system 目录上下文叫做搜索上下文。现在来看一 下搜索应用程序的剩余步骤: 步骤 3. 缩小搜索上下文:已知 Alice 是一个用户,所以不必在整个 ou=system 搜索上下文中搜索 Alice,只需在用户的组织单元(即 ou=users)中搜索即可。 步骤 4. 创建搜索属性:将关 于 Alice 的已知信息作为搜索属性。因为知道 Alice 的 uid 和对象类,所以可以创建一个只有两个属 性的集合:uid 和 objectClass。可以在 清单 6 的步骤 4 看到这些。(从 第 1 部分 的讨论您应该可 以想起 uid 是 RDN 的组件,而不是属性。但在指定搜索参数时,JNDI 要求指定 uid 值,就像它是属性 一样。) 步骤 5. 执行搜索:在这里调用 清单 6 的步骤 2 得到的 DirContext 对象的 search() 方法。 search() 方法采用了两个参数:第一个参数是在练习的第 3 步创建的搜索上下文,第二个参数是第 4 步的两个属性的集合。search() 方法返回 NamingEnumeration 对象,其中包含搜索结果。 步骤 1 到 5 设置搜索操作。其余的步骤处理 NamingEnumeration 对象并提取搜索结果。 步骤 6. 提取搜索结果:清单 6 的步骤 6 中的 NamingEnumeration 对象包含搜索结果集合。集合 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |