Querying an LDAP from a jsp



我正在尝试查询LDAP服务器以返回基于用户提交的4个ID之一的目录条目。我创建了一个Info对象来存储LDAP数据,但是如何检索数据,然后将其以格式化的表形式输出给用户呢?

您应该使用JNDI来执行查询,一个简单的教程在:

http://www.stonemind.net/blog/2008/01/23/a-simple-ldap-query-program-in-java/

但这里是应该帮助你的主要部分:

        String url = "ldap://directory.cornell.edu/o=Cornell%20University,c=US";
        Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, url);
        DirContext context = new InitialDirContext(env);
        SearchControls ctrl = new SearchControls();
        ctrl.setSearchScope(SearchControls.SUBTREE_SCOPE);
        NamingEnumeration enumeration = context.search("", query, ctrl);
        while (enumeration.hasMore()) {
            SearchResult result = (SearchResult) enumeration.next();
            Attributes attribs = result.getAttributes();
            NamingEnumeration values = ((BasicAttribute) attribs.get(attribute)).getAll();
            while (values.hasMore()) {
              if (output.length() > 0) {
                output.append("|");
              }
              output.append(values.next().toString());
            }
        }

需要使用JNDI查询LDAP服务器。请看下面的例子。但是,请不要在JSP中这样做。这将需要Java代码,而jsp不应该包含Java代码。参见如何避免在JSP文件中使用Java代码?

同意,您不应该在JSP中使用Java,那是糟糕的形式。另外,我推荐UnboundID LDAP SDK胜过JNDI,它更简单、更快、更好、更清晰。

最新更新