欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年基于JNDI的应用程序开发Java教程.docx

    • 资源ID:62188567       资源大小:14.83KB        全文页数:9页
    • 资源格式: DOCX        下载积分:9.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年基于JNDI的应用程序开发Java教程.docx

    2022年基于JNDI的应用程序开发Java教程JNDI(The Java Naming and Directory Interface,Java命名和书目接口)是一组在Java应用中访问命名和书目服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。书目服务是一种命名服务,在这种服务里,对象不但出名称,还有属性。命名或书目服务使你可以集中存储共有信息,这一点在网络应用中是重要的,因为这使得这样的应用更协调、更简单管理。例如,可以将打印机设置存储在书目服务中,以便被与打印机有关的应用运用。本文用代码示例的方式给出了一个快速教程,使你可以起先运用JNDI。它:1、供应了JNDI概述2、描述了JNDI的特点3、体验了一下用JNDI开发应用4、表明白如何利用JNDI访问LDAP服务器,例如,Sun ONE 书目服务器5、表明白如何利用JNDI访问J2EE服务6、供应了示例代码,你可以将其改编为自己的应用JNDI概述我们大家每天都不知不觉地运用了命名服务。例如,当你在web阅读器输入URL,时,DNS(Domain Name System,域名系统)将这个符号URL名转换成通讯标识(IP地址)。命名系统中的对象可以是DNS记录中的名称、应用服务器中的EJB组件(Enterprise JavaBeans Component)、LDAP(Lightweight Directory Access Protocol)中的用户Profile。书目服务是命名服务的自然扩展。两者之间的关键差别是书目服务中对象可以有属性(例如,用户有email地址),而命名服务中对象没有属性。因此,在书目服务中,你可以依据属性搜寻对象。JNDI允许你访问文件系统中的文件,定位远程RMI注册的对象,访问象LDAP这样的书目服务,定位网络上的EJB组件。对于象LDAP 客户端、应用launcher、类阅读器、网络管理好用程序,甚至地址薄这样的应用来说,JNDI是一个很好的选择。JNDI架构JNDI架构供应了一组标准的独立于命名系统的API,这些API构建在与命名系统有关的驱动之上。这一层有助于将应用与实际数据源分别,因此不管应用访问的是LDAP、RMI、DNS、还是其他的书目服务。换句话说,JNDI独立于书目服务的详细实现,只要你有书目的服务供应接口(或驱动),你就可以运用书目。如图1所示。 图1:JNDI架构关于JNDI要留意的重要一点是,它供应了应用编程接口(application programming interface,API)和服务供应者接口(service provider interface,SPI)。这一点的真正含义是,要让你的应用与命名服务或书目服务交互,必需有这个服务的JNDI服务供应者,这正是JNDI SPI发挥作用的地方。服务供应者基本上是一组类,这些类为各种详细的命名和书目服务实现了JNDI接口很象JDBC驱动为各种详细的数据库系统实现了JDBC接口一样。作为一个应用开发者,你不必操劳JNDI SPI。你只须要确认你要运用的每一个命名或书目服务都有服务供应者。J2SE和JNDIJava 2 SDK 1.3及以上的版本包含了JNDI。对于JDK 1.1和1.2也有一个标准的扩展。Java 2 SDK 1.4.x的最新版本包括了几个增加和下面的命名/书目服务供应者:1、LDAP(Lightweight Directory Access Protocol)服务供应者2、CORBA COS(Common Object Request Broker Architecture Common Object Services)命名服务供应者3、RMI(Java Remote Method Invocation)注册服务供应者 l DNS(Domain Name System)服务供应者更多的服务供应者可以在如下网址找到可以下载的服务供应者列表: 特殊有意思的或许是如下网址供应的Windows 注册表JNDI服务供应者: 这个服务供应者使你可以访问Windows XP/2000/NT/Me/9x的windows注册表。也可以在如下网址下载JNDI/LDAP Booster Pack: 这个Booster Pack包含了对流行的LDAP限制的支持和扩展。它代替了与LDAP 1.2.1服务供应者捆绑在一起的booster pack。关于限制和扩展的更多信息可以在如下网站看到: 另一个好玩的服务供应者是Sun的支持DSML v2.0(Directory Service Markup Language,书目服务标记语言)的服务供应者。DSML的目的是在书目服务和XML之间架起一座桥梁。JNDI APIJNDI API由5个包组成:1、Javax.naming:包含了访问命名服务的类和接口。例如,它定义了Context接口,这是命名服务执行查询的入口。2、Javax.naming.directory:对命名包的扩充,供应了访问书目服务的类和接口。例如,它为属性增加了新的类,供应了表示书目上下文的DirContext接口,定义了检查和更新书目对象的属性的方法。3、Javax.naming.event:供应了对访问命名和书目服务时的时间通知的支持。例如,定义了NamingEvent类,这个类用来表示命名/书目服务产生的事务,定义了侦听NamingEvents的NamingListener接口。4、Javax.naming.ldap:这个包供应了对LDAP 版本3扩充的操作和限制的支持,通用包javax.naming.directory没有包含这些操作和限制。5、Javax.naming.spi:这个包供应了一个方法,通过javax.naming和有关包动态增加对访问命名和书目服务的支持。这个包是为有爱好创建服务供应者的开发者供应的。JNDI 上下文正如在前面提到的,命名服务将名称和对象联系起来。这种联系称之为绑定(binding)。一组这样的绑定称之为上下文(context),上下文供应了解析(即返回对象的查找操作)。其他操作包括:名称的绑定和取消绑定,列出绑定的名称。留意到一个上下文对象的名称可以绑定到有同样的命名约定的另一个上下文对象。这称之为子上下文。例如,假如UNIX中书目/home是一个上下文,那么相对于这个书目的子书目就是子上下文例如,/home/guests中guests就是home的子上下文。在JNDI中,上下文用接口javax.naming.Context表示,这个接口是与命名服务交互的关键接口。在Context(或稍后探讨的DirContext)接口中的每一个命名方法都有两种重载形式:1、Lookup(String name):接受串名2、Lookup(javax.naming.Name):接受结构名,例如,CompositeName(跨越了多个命名系统的名称)或CompondName(单个命名系统中的名称);它们都实现了Name接口。Compound name的一个例子是:cn=mydir,cn=Q Mahmoud,ou=People,composite name的一个例子是:cn=mydir,cn=Q Mahmoud,ou=People/myfiles/max.txt(这里,myfiles/max.txt是表示其次部分的文件名) Javax.naming.InitialContext是实现了Context接口的类。用这个类作为命名服务的入口。为了创建InitialContext对象,构造器以java.util.Hashtable或者是其子类(例如,Properties)的形式设置一组属性。下面给出了一个例子:Hashtable env = new Hashtable(); / select a service provider factory env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContext"); / create the initial context Context contxt = new InitialContext(env);INITIAL_CONTEXT_FACTORY指定了JNDI服务供应者中工厂类(factory class)的名称。Factory负责为其服务创建适当的InitialContext对象。在上面的代码片断中,为文件系统服务供应者指定了工厂类。表1给出了所支持的服务供应者的工厂类。要留意的是文件系统服务供应者的工厂类须要从Sun公司单独下载,J2SE 1.4.x没有包含这些类。表1:上下文INITIAL_CONTEXT_FACTORY的值Name Service Provider Factory File System com.sun.jndi.fscontext.RefFSContextFactory LDAP com.sun.jndi.ldap.LdapCtxFactory RMI com.sun.jndi.rmi.registry.RegistryContextFactory CORBA com.sun.jndi.cosnaming.CNCtxFactory DNS com.sun.jndi.dns.DnsContextFactory为了用名称从命名服务或书目中取得或解析对象,运用Context的lookup方法:Object obj=contxt.lookup(name)。Lookup方法返回一个对象,这个对象表示的是你想要找的上下文的儿子。 2022年3月28日 2022年3月28日

    注意事项

    本文(2022年基于JNDI的应用程序开发Java教程.docx)为本站会员(l***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开