概述

Java Naming Directory Interface,Java命名和目录接口,是SUN公司提供的一种标准的Java命名系统接口。通过调用JNDI的API应用程序可以定位资源和其他程序对象。JNDI可访问的现有目录及服务包括:JDBC(Java 数据库连接)、LDAP(轻型目录访问协议)、RMI(远程方法调用)、DNS(域名服务)、NIS(网络信息服务)、CORBA(公共对象请求代理系统结构)

命名服务/目录服务

JNDI包括命名服务(Naming Service)和目录服务(Directory Service)。

上下文

所谓上下文,是你当前执行程序的一个环境,存储了系统的一些初始化信息。

在学习Servlet时,遇到了一个ServletContext对象,这个对象被称为Servlet上下文。由于一个web应用程序可以包含多个Servlet,因此ServletContext对象可以看作是一个web应用中各个Servlet的共享资源。

JNDI也一样,提供InitialContext对象来为我们获取命名服务资源,提供InitialDirContext对象来为我们获取目录服务资源

Context接口

命名服务在初始化上下文中,我们就用到了Context接口中定义的变量,分别用到了INITIAL_CONTEXT_FACTORYPROVIDER_URL

其次就是定义了很多对对象操作的方法,例如绑定对象、通过Name或Name的字符串来获取一个对象,像lookup、rebind方法

而目录服务用到的是DirContext接口,这个接口继承了Context接口

Untitled

JNDI—RMI代码示例

首先要开启一个RMI服务

Untitled