LDAP是轻量级目录服务(Lightweight Directory access protocol)
JNDI是java命名和目录接口(java Naming and Directory Interface)
从名字应该能看出来吧
jndi提供了在LDAP上执行标准操作的方式)

解决方案 »

  1.   

    你该知道DNS把
    其实和ldap差不多的
    都是提供目录服务
    在java里你可以用ldap储存java对象
    这样的话需要一个ldap服务器
    在服务器上对象要有一个绑定名字,比如allen
    然后你就可以在java中通过这个名字获得和这个名字绑定的对象比如
    InitialContext ctx=new InitialContext();
    Allen allen=(Allen)ctx.lookup("allen");在new InitialContext()的时候一般需要提供一个包含ContextFactory以及ldap的地址如:ldap://localhost:port的Properties对象
    如:
    Properties p=new Properties();
    p.put("Context.INITIAL_FACTORY,"工厂的类名");
    p.pur("Context.PROVIDER_URL,"服务器地址");
    然后
    InitialContext ctx=new InitialContext(p);
    Allen allen=(Allen)ctx.lookup("allen");
    就可以得到这个对象了大致就是这样的
      

  2.   

    jndi不也是存储对象的吗?和ldap又有什么不同?
      

  3.   

    JNDI就象JDBC,JDBC是Java提供的连接不同数据库的统一接口,只要数据库供应商提供了实现这一接口的Driver. 而JNDI是Java程序使用访问名字目录服务(比如:DNS,LDAP等)的统一接口,正如上面3936525(笑苍天) 给出的,只要你给出ContextFactory以及服务器的地址,就可以访问这些名字目录服务了。具体请参考:http://java.sun.com/j2se/1.4.2/docs/guide/jndi/
      

  4.   

    也就是说jndi必须和DNS或者LDAP结合起来使用,单独使用LDAP是没有意义的?就像JDBC必须用在数据库上,对不对?