Java Naming Directory Interface,Java命名和目录接口,是SUN公司提供的一种标准的Java命名系统接口。通过调用JNDI的API应用程序可以定位资源和其他程序对象。JNDI可访问的现有目录及服务包括:JDBC(Java 数据库连接)、LDAP(轻型目录访问协议)、RMI(远程方法调用)、DNS(域名服务)、NIS(网络信息服务)、CORBA(公共对象请求代理系统结构)
JNDI包括命名服务(Naming Service)和目录服务(Directory Service)。
命名服务:一种通过名称来查找实际对象的服务。例如RMI中,Naming.lookup方法通过查找名称来获取远程对象的代理类
相关概念:
目录服务:是命名服务的扩展,除了提供名称和对象的关联,还允许对象具有属性。目录服务中的对象称之为目录对象,目录对象可以跟属性关联,一个目录是由相关联的目录对象组成的系统。目录服务提供创建、添加、删除目录对象以及修改目录对象属性等操作。
相关概念:
所谓上下文,是你当前执行程序的一个环境,存储了系统的一些初始化信息。
在学习Servlet时,遇到了一个ServletContext对象,这个对象被称为Servlet上下文。由于一个web应用程序可以包含多个Servlet,因此ServletContext对象可以看作是一个web应用中各个Servlet的共享资源。
JNDI也一样,提供InitialContext对象来为我们获取命名服务资源,提供InitialDirContext对象来为我们获取目录服务资源
命名服务在初始化上下文中,我们就用到了Context接口中定义的变量,分别用到了INITIAL_CONTEXT_FACTORY和PROVIDER_URL
INITIAL_CONTEXT_FACTORY:保存环境属性名称的常量,用于指定要使用的初始上下文工厂。该属性的值应该是将创建初始上下文的工厂类的完全限定类名。

PROVIDER_URL:保存环境属性名称的常量,用于指定服务提供者要使用的配置信息。 该属性的值应包含一个URL字符串

其次就是定义了很多对对象操作的方法,例如绑定对象、通过Name或Name的字符串来获取一个对象,像lookup、rebind方法
而目录服务用到的是DirContext接口,这个接口继承了Context接口

首先要开启一个RMI服务
