课程提纲 口第一部分Java EE基础 ◆第2章JNDI/RMI/JDBC/A/s简介 口第二部分Java Web开发 口第三部分JSF框架 口第四部分EJB 口第五部分JPA 口第六部分SSH框架 JavaEE技术 ·1。西北农林科教大学信息工程学院本科生课程
课程提纲 第一部分 Java EE基础 ◆第2章 JNDI/RMI/JDBC/JTA/JMS简介 第二部分 Java Web开发 第三部分 JSF框架 第四部分 EJB 第五部分 JPA 第六部分 SSH框架 Java EE技术 •1 信息工程学院本科生课程
本章提纲 Java EE的基础服务概述: ●参考Word文档; 几个Java EE的基础服务: ●2.1JNDl(Java Naming and Directory Interface):Java命名和目 录接口; ●2.2RMl(Remote Method Invocation):远程方法调用; ●2.3JDBC(Java DataBase Connectivity):Java数据库连接; ·TH(Java Transaction API):Java事务API(留到JPA中学习); ●$(Java Message Service):Java消息服务(留到MDB中学习)。 JNDI/JDBC/JTA/RML/JMS简介 ·2。西北农林升教大学信息工程学院本科生课程
❖ Java EE的基础服务概述: ⚫ 参考Word文档; ❖ 几个Java EE的基础服务: ⚫ 2.1 JNDI (Java Naming and Directory Interface): Java命名和目 录接口; ⚫ 2.2 RMI (Remote Method Invocation): 远程方法调用; ⚫ 2.3 JDBC (Java DataBase Connectivity): Java数据库连接; ⚫ JTA (Java Transaction API): Java事务API(留到JPA中学习); ⚫ JMS (Java Message Service): Java消息服务(留到MDB中学习)。 本章提纲 JNDI/JDBC/JTA/RMI/JMS简介 •2 信息工程学院本科生课程
2.1基本概念-命名服务 命名(Naming): ●就是为计算机内的对象起名字; ●如文件名、数据源名、消息队列、对象名等。 ÷命名服务(Naming Service): ●一种针对计算机内对象的注册和定位服务; ●即将名字和一个对象相关联(绑定,binding.),通过名字可以方便 地找到对应的对象(查找,lookup); ●一个命名系统中所有可能的名字集合构成命名空间: ●一组名字到对象的邦定,称为上下文(Context)。 JNDI/DBC/TA/RMI/MS简介 ·3。品北农林科枝大学信息工程学院本科生课程
❖ 命名 (Naming): ⚫ 就是为计算机内的对象起名字; ⚫ 如文件名、数据源名、消息队列、对象名等。 ❖ 命名服务 (Naming Service): ⚫ 一种针对计算机内对象的注册和定位服务; ⚫ 即将名字和一个对象相关联(绑定, binding),通过名字可以方便 地找到对应的对象(查找, lookup); ⚫ 一个命名系统中所有可能的名字集合构成命名空间; ⚫ 一组名字到对象的邦定,称为上下文 (Context)。 2.1 基本概念 – 命名服务 JNDI/JDBC/JTA/RMI/JMS简介 •3 信息工程学院本科生课程
2.1基本概念-目录服务 目录(Directory): ●在命名(naming)的基础上,还具有对象的各种属性 (attributes); ●如同电话簿,除了用户名和用户对象之间映射(此即命名)之外, 还具有诸如具体的地址、电话号码(此即属性)等。 目录服务(Directory Service): ●目录服务器是提供命名和目录服务的系统。命名服务的扩展。可通 过名字来查找对象,也可以利用属性值作为搜索的过滤条件; ●目录服务器实际上是一种特殊的数据库,其结构为树状目录。目录 服务器特别适合查询多但更新少的应用。常见用途包括: √保存大型企业的用户和组织结构信息。 ●常见的目录服务包括:LDAP(轻量级目录访问协议)、DNS。 JNDI/JDBC/JTA/RML/MS简介 ·4。品北农林升教大学信息工程学院本科生课程
❖目录 (Directory): ⚫ 在命名 (naming) 的基础上,还具有对象的各种属性 (attributes); ⚫ 如同电话簿,除了用户名和用户对象之间映射(此即命名)之外, 还具有诸如具体的地址、电话号码(此即属性)等。 ❖目录服务 (Directory Service): ⚫ 目录服务器是提供命名和目录服务的系统。命名服务的扩展。可通 过名字来查找对象,也可以利用属性值作为搜索的过滤条件; ⚫ 目录服务器实际上是一种特殊的数据库,其结构为树状目录。目录 服务器特别适合查询多但更新少的应用。常见用途包括: ✓ 保存大型企业的用户和组织结构信息。 ⚫ 常见的目录服务包括:LDAP(轻量级目录访问协议)、DNS。 2.1 基本概念 – 目录服务 JNDI/JDBC/JTA/RMI/JMS简介 •4 信息工程学院本科生课程
2.1 JNDI (Java Naming and Directory Interface) ”回顾:命名和目录服务: ·命名服务将名称和对象联系起来,使得可以用名称访问对象; ·目录服务是命名服务的扩展。这里,对象还拥有属性; ●把名称同象关联起来,而不必知道如资源等对象的物理D; ·可以实现对分布式部署的、不同的对象或资源的统一、透明的访问。 Java命名和目录接口(JND): ●一组在Java应用中访问命名 和目录服务的API; JNDI ●通过JNDI可以连接到命名或 目录服务上,可以查找命名 Server 目录服务上的资源、对资源 进行操作(更新和删除等)。 J2EE Container JNDI/JDBC/JTA/RMI/JMS简介 5。 西北农林升教大学信息工程学院本科生课程
❖ 回顾:命名和目录服务: ⚫ 命名服务将名称和对象联系起来,使得可以用名称访问对象; ⚫ 目录服务是命名服务的扩展。这里,对象还拥有属性; ⚫ 把名称同象关联起来,而不必知道如资源等对象的物理ID; ⚫ 可以实现对分布式部署的、不同的对象或资源的统一、透明的访问。 ❖ Java命名和目录接口(JNDI): ⚫ 一组在Java应用中访问命名 和目录服务的API; ⚫ 通过JNDI可以连接到命名或 目录服务上,可以查找命名 目录服务上的资源、对资源 进行操作(更新和删除等)。 2.1 JNDI (Java Naming and Directory Interface) JNDI/JDBC/JTA/RMI/JMS简介 •5 信息工程学院本科生课程
2.1 JNDI API JNDI SPI JDNI API与JNDI SPI: API(Application Programming Interface).:面向JNDI应用开发; SPI(Service Provider Interface):面向JNDI服务提供商。 JNDI API独立于命名系统: ●将应用与实际数据源分离,不管应用访问的是LDAP、DNS、NIS、RMI、 CORBA,.还是其他的目录服务; ●即JD1独立于目录服务的具体实现,只要有命名和目录服务的提供 接口(或驱动),就可以使用目录。 NDI SPI独立于命名系统的具体实现: ●JNDI服务提供者按照SPI规范接口负责处理相应命名系统的实现细节。 JNDI/JDBC/TA/RML/JMS筒介 ·6。品北农林升大学信息工程学院本科生课程
❖ JDNI API 与 JNDI SPI: ❖ API (Application Programming Interface):面向JNDI应用开发; ❖ SPI (Service Provider Interface):面向JNDI服务提供商。 ❖ JNDI API独立于命名系统: ⚫ 将应用与实际数据源分离,不管应用访问的是LDAP、DNS、NIS、RMI、 CORBA,还是其他的目录服务; ⚫ 即JNDI独立于目录服务的具体实现,只要有命名和目录服务的提供 接口(或驱动),就可以使用目录。 ❖JNDI SPI独立于命名系统的具体实现: ⚫ JNDI服务提供者按照SPI规范接口负责处理相应命名系统的实现细节。 2.1 JNDI API & JNDI SPI JNDI/JDBC/JTA/RMI/JMS简介 •6 信息工程学院本科生课程
2.1JNDI架构 Java Application JNDI API Naming Manager JNDI SPI JNDI LDAP DNS NIS NDS RMI CORBA Implementation Possibilities Java EE:其他服务如 JDBC、JPA等,也是 采用类似机制。 JNDI/DBC/TA/RMI/MS简介 7。 西北农林科教大学信息工程学院本科生课程
2.1 JNDI 架构 JNDI/JDBC/JTA/RMI/JMS简介 •7 信息工程学院本科生课程 Java EE其他服务如 JDBC、JPA等,也是 采用类似机制
2.1JNDI工作原理与优势 JNDI的运行原理: ●1)Java应用程序调用JNDI API,命名目录和服务请求被发送给命名 和目录服务管理器(Naming Manager,NMW; ·2)由NM将请求发送给合适的JNDI服务提供者接口; ●3)JNDI SPI程序连接具体的命名和目录服务器,从而实现服务调用。 JNDI的优势: ●消除了不同命名与目录服务之间的差异。允许Java应用程序采用一 致的JNDI接口来调用各种命名和目录服务; ·Java EE)应用中,RMIl、JDBC、JTA、JMS等都将用到JNDI来实现相应 的命名和目录服务,为一个基础性服务(在Java SE平台中提供)。 JNDI/JDBC/JTA/RML/MS简介 ·8。品北农林升教大学信息工程学院本科生课程
❖ JNDI的运行原理: ⚫ 1)Java应用程序调用JNDI API,命名目录和服务请求被发送给命名 和目录服务管理器 (Naming Manager, NM) ; ⚫ 2)由NM将请求发送给合适的JNDI 服务提供者接口; ⚫ 3)JNDI SPI程序连接具体的命名和目录服务器,从而实现服务调用。 ❖ JNDI的优势: ⚫ 消除了不同命名与目录服务之间的差异。允许Java应用程序采用一 致的JNDI接口来调用各种命名和目录服务; ⚫ Java EE应用中,RMI、JDBC、JTA、JMS等都将用到JNDI来实现相应 的命名和目录服务,为一个基础性服务 (在Java SE平台中提供)。 2.1 JNDI工作原理与优势 JNDI/JDBC/JTA/RMI/JMS简介 •8 信息工程学院本科生课程
2.1 JNDI API类库 java.naming包,主要包括如下接口: ●Context:为主要接口。方法包括查找、绑定、再绑定、解除绑定、 修改、创建和删除子上下文; ●InitialContext:为命名和目录服务的一个开始点; ●NamingException:在执行命名和目录服务操作过程中的异常。 冬其他: ●java.naming.directory包:主要包括DirContext,InitialDirContext, Attribute,Attributes接口,以及SeachResult?和SearchControls类; ●java.naming.ldap包:支持ladp操作; ●java,naming.eventt包:支持NDI事件通知,包括EventContext, NamingEventNamingListener: ●java,naming.spi包:为提供给JNDI服务提供商的标准接口。 JNDI/JDBC/JTA/RMI/JMS简介 ·9。西北农林科大学信息工程学院本科生课程
❖ java.naming包,主要包括如下接口: ⚫ Context:为主要接口。方法包括查找、绑定、再绑定、解除绑定、 修改、创建和删除子上下文; ⚫ InitialContext:为命名和目录服务的一个开始点; ⚫ NamingException:在执行命名和目录服务操作过程中的异常。 ❖其他: ⚫ java.naming.directory包:主要包括DirContext, InitialDirContext, Attribute, Attributes接口,以及SeachResult和SearchControls类; ⚫ java.naming.ldap包:支持ladp操作; ⚫ java.naming.event包:支持JNDI事件通知,包括EventContext, NamingEvent和NamingListener; ⚫ java.naming.spi包:为提供给JNDI服务提供商的标准接口。 2.1 JNDI API类库 JNDI/JDBC/JTA/RMI/JMS简介 •9 信息工程学院本科生课程
2.1JNDI编程 JNDI编程步骤: ●创建Context对象:需通过构造Hashtable或Properties)对象来传递 Contexti对象的初始属性; ·调用Contextl的方法实现JNDI各种操作: √lookup (:根据JNDI名字查找被绑定对象; bind0:执行绑定; √unbind0:解除绑定。等等。 ●关闭Context。 JNDI编程示例: ●简单实例:课本p14-15。注:对应到JBoss。 JNDI/JDBC/JTA/RMI/JMS简介 10。品北农林升教大学信息工程学院本科生课程
❖ JNDI 编程步骤: ⚫ 创建Context对象:需通过构造Hashtable或Properties对象来传递 Context对象的初始属性; ⚫ 调用Context的方法实现JNDI各种操作: ✓ lookup():根据JNDI名字查找被绑定对象; ✓ bind():执行绑定; ✓ unbind():解除绑定。等等。 ⚫ 关闭Context。 ❖JNDI 编程示例: ⚫ 简单实例:课本p14-15。注:对应到JBoss。 2.1 JNDI编程 JNDI/JDBC/JTA/RMI/JMS简介 •10 信息工程学院本科生课程