2011-10-24 20 views
1

ユーザーが提出した4つのIDのいずれかに基づいてディレクトリエントリを返すようにLDAPサーバーに照会しようとしています。 LDAPデータを格納するためにInfoオブジェクトを作成しましたが、データを取得してフォーマット済みのテーブルでユーザーに出力するにはどうすればよいですか?jspからLDAPを照会

答えて

3

あなたは、クエリを実行するために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()); 
      } 
     } 
0

あなたがする必要がありますJNDIを使用してLDAPサーバーを照会します。例hereを見てください。しかし、JSPでこれをしないでください。これにはJavaコードが必要であり、JSPにはJavaコードが含まれてはいけません。 How to avoid Java code in JSP files?

0

あなたがJSPでJavaを使用すべきではないという意見に同意します。これは悪い形式です。また、私はUnboundID LDAP SDKをJNDIよりも推奨しています。より簡単で、速く、より良く、より明確です。

関連する問題