本文目录
- JNDI的用途是
- 请举例说明JNDI是做什么的,有什么用
- jndi是什么
- JNDI是什么
- java jndi 是什么
- JNDI结构分为哪三个层次
- JNDI命名服务如何理解
- 什么是基于JNDI的应用开发
- 什么是JNDI的上下文如何初始化JNDI上下文
JNDI的用途是
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序。
JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。
请举例说明JNDI是做什么的,有什么用
JNDI是JAVA环境下和目录服务进行通讯的接口。就像JDBC是和数据库进行通讯。
目录服务是为应用软件提供网络资源数据的服务,在一些需要严格认证的行业网络应用软件中
外网上的应用多被http及webservice取代,主要还剩在内部网用...
jndi是什么
JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一,是一组在Java应用中访问命名和目录服务的API,是SUN公司提供的一种标准的Java命名系统接口,命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。-jndi
JNDI可访问的现有的目录及服务有:
DNS、XNam 、Novell目录服务、LDAP(Lightweight Directory Access Protocol轻型目录访问协议)、 CORBA对象服务、文件系统、Windows XP/2000/NT/Me/9x的注册表、RMI、DSML v1&v2、NIS。-jndi
JNDI是什么
JNDI全称 Java Naming and Directory Interface
JNDI是Java平台的一个标准扩展,提供了一组接口、类和关于命名空间的概念。如同其它很多Java技术一样,JDNI是provider-based的技术,暴露了一个API和一个服务供应接口(SPI)。这意味着任何基于名字的技术都能通过JNDI而提供服务,只要JNDI支持这项技术。JNDI目前所支持的技术包括LDAP、CORBA Common Object Service(COS)名字服务、RMI、NDS、DNS、Windows注册表等等。很多J2EE技术,包括EJB都依靠JNDI来组织和定位实体。
JDNI通过绑定的概念将对象和名称联系起来。在一个文件系统中,文件名被绑定给文件。在DNS中,一个IP地址绑定一个URL。在目录服务中,一个对象名被绑定给一个对象实体。
JNDI中的一组绑定作为上下文来引用。每个上下文暴露的一组操作是一致的。例如,每个上下文提供了一个查找操作,返回指定名字的相应对象。每个上下文都提供了绑定和撤除绑定名字到某个对象的操作。JNDI使用通用的方式来暴露命名空间,即使用分层上下文以及使用相同命名语法的子上下文。
jndi的用途:
1。你可以用jndi来得到object类的属性
如:Attribute attr =directory.getAttributes(personName).get(“email“);
String email = (String)attr.get();
2。你可以用jndi来搜索对象
如:foxes = directory.search(“o=Wiz,c=US“, “sn=Fox“, controls);
查找谁的名字叫Fox在wiz部门的员工?
3。你可以用jndi通过naming/directory服务查询像printers和databases的对象
如:查询 Printer
Printer printer = (Printer)namespace.lookup(printerName);
printer.print(document);
4。你可以用jndi列表出命名空间的特殊级别的内容
如:
NamingEnumeration list = namespace.list(“o=Widget, c=US“);
while (list.hasMore()) {
NameClassPair entry = (NameClassPair)list.next();
display(entry.getName(), entry.getClassName());
}
-jndi
java jndi 是什么
JNDI(Java Naming and Directory Interface)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI SPI的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。集群JNDI实现了高可靠性JNDI,通过服务器的集群,保证了JNDI的负载平衡和错误恢复。在全局共享的方式下,集群中的一个应用服务器保证本地JNDI树的独立性,并拥有全局的JNDI树。每个应用服务器在把部署的服务对象绑定到自己本地的JNDI树的同时,还绑定到一个共享的全局JNDI树,实现全局JNDI和自身JNDI的联系。
-jndi
JNDI结构分为哪三个层次
jndi(java naming and directory Interface)它提供了一套使用命名和目录service的接口。用户可以通过它来使用命名和目录服务。就像jdbc一样。jndi包括命名服务和目录服务两部分,其中目录服务包含目录对象directory object,它包含若干属性对象。提供了对属性的很多操作。
命名和目录服务: 命名和目录服务我们一直在使用,如操作系统的文件系统,它给我们提供对文件的操作,查询,添加删除等功能。DNS服务将url同ip地址绑定在了一起。命名和目录系统的最主要的功能是将name和对象绑定。在它的基础之上还提供更多的功能如lookup,search.而且存储的对象是有一定层次结构的。使用这样的服务我们可以对对象更加有效的管理和操作。
j2se为jndi提供了5个扩展包:
javax.naming;为访问命名服务提供的api
javax.naming.directory;为访问目录服务提供了基本的接口
javax.naming.event;支持命名和目录服务中的事件通知
javax.naming.ldap; 支持ldap的包,
javax.naming.spi;提供了不同命名和目录服务可以挂接他们的实现的方法。
context: context是一套name-to-object的绑定(bindings),可以理解为层次或目录,它还可已包括下一层subContext。在使用命名和目录服务时获得initial context是对整个名字空间操作的入口。在目录服务中是DirContext.
-jndi
JNDI命名服务如何理解
主要是实现公有资源的集中管理。比如说,用户这一块,不管你的哪个应用程序,都会调用到的,如果你在每个程序中都写一次数据查询,那不划算,那就可以把这类查询业务集中到一处,所有的查询都请求到这个地方来。而不必自己去实现用户查询。这跟SSO有点类似。
-jndi
什么是基于JNDI的应用开发
JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。
命名或目录服务使你可以集中存储共有信息,这一点在网络应用中是重要的,因为这使得这样的应用更协调、更容易管理。例如,可以将打印机设置存储在目录服务中,以便被与打印机有关的应用使用。
-jndi
什么是JNDI的上下文如何初始化JNDI上下文
命名服务是将名称与对象相关联。这种关联被称为绑定。一组这样的绑定被称为上下文,Jndi上下文可以用来查找,捆绑/解除捆绑,创建或者破坏绑定名称操作在JNDI中,上下文是使用javax.naming.Context 接口来表示的,而这个接口也正是与命名服务进行交互的主要接口。
Context 接口中的每个命名方法都有两种重载的形式:
lookup(String name): 接受一个字符串名称参数,查找绑定远程对象。
lookup(javax.naming.Name): 接受一个结构化的名称,查找绑定远程对象。
初始化上下文
InitialContext 是一个实现了 Context接口的类。使用这个类作为您到命名服务的入口点 。创建一个InitialContext 对象构造器需要采用一组属性,形式为java.util.Hashtable 或其子类之一,比如:代码范例5
Properties props = new Properties();
props.setProperty(java.naming.factory.initial, org.jnp.interfaces.NamingContextFactory);
props.setProperty(java.naming.provider.url, localhost:1099″);
要通过JNDI 进行资源访问,我们必须设置初始化上下文的参数,主要是设置JNDI 驱动的类名(java.naming.factory.initial)和提供命名服务的URL(java.naming.provider.url)。因为Jndi 的实现产品有很多。所以java.naming.factory.initial 的值因提供JNDI 服务器的不同而不同,java.naming.provider.url 的值包括提供命名服务的主机地址和端口号。
-jndi